Good evening, fellow bee lovers!
Today's update brings in a couple of big changes. The most important of which is a first pass on custom key/mouse button bindings. To get this up and happening, I wrote a quick little side project called Binder, which takes some binding definitions with default values, loads any stored custom values from file, and sticks all of that into Godot's InputMap action list. It can also generate a UI for displaying those, adding and removing bindings, and saving that all out to a configuration file that's separate from the game's normal config file (so if a busted bindings file is somehow crashing the game in a way that makes that UI inaccessible, deleting that file is a low-impact way of resetting it).
I think that longer term, I'd like to make Binder into something that other people can use, but it needs a bit more polish, and that'll have to come after Hive Time is released. One piece of important Binder polish (and one that Hive Time will need) is a warning for when bindings conflict, so keep that in mind for the next couple of builds!
Another important change is a change to the user data path. This should now be directly in the US user data folder. On Linux, that's ~/.local/share/hivetime, on MacOS, that should be ~/Library/Application Support/hivetime, and on Windows, it should be %APPDATA%/Roaming/hivetime (I haven't yet double checked that on Mac or Windows builds, so apologies if that's incorrect). You should be able to copy your saves and config.cfg across to this new path without any issues. If you get stuck, just give me a nudge and I'll sort you out.
The number one change that is going to let me sleep at night is moving in-game music onto its own bus and controlling the volume of that rather than the volume of the music player directly. This doesn't stop the popping from occurring (best I can tell, that's a Godot bug that's beyond my ability to troubleshoot at the moment), but it does mean that I can have the bus muted at the point that it can potentially occur - it's intermittent, but only happens when a new track is started, and seems to happen within 0.01 seconds of the track starting.
I came across the idea for this solution when I was testing the game with the music muted (it still plays in the background so that if you turn the volume back up, it'll be where it's meant to be without having to track how much time has passed, etc.), and the popping was still occurring, leading me to speculate that if the pop isn't coming from the AudioStreamPlayer node, then it must be happening at the bus level. That's all boring stuff for you, but it's a big weight off my mind.
Last, but not least, I've finally gotten around to tweaking the Beesitter decline notification threshold so that it'll only trigger if the population has gone down over three 30 second samples in a row. This sits on top of the other metrics I was using to calculate the projected number of deaths/Beesitter births, so I still need to do a touch more tuning before I'm happy with it, but this should decrease the noise levels a bit in the meantime.
- Added music audio bus
- Added WIP version of Binder for saving custom key/mouse bindings and loading them as InputMap actions
- Added default bindings for for quick_save, quick_load, pan_modifier, pan_up, pan_down, pan_left, pan_right, toggle_inspect, zoom_in, zoom_out, zoom_way_out, pan_to_centre, repeat_build, select, and leave_menu
- Added custom key/mouse binding UI to controls settings
- Added activity notification for quick saves (Ctrl+S) and autosaves (default every 10 minutes)
- Refactored music handler to control bus volume rather than audio player volume (seems to fix that popping!)
- Refactored input handling to use InputMap actions
- Removed Godot default bindings for zoom_in and zoom_out
- Updated user folder to be in user data folder (not under godot/app_userdata anymore)
- Updated near clipping plane
- Updated antialiasing dropdown text
- Updated beesitter population decline activity notification to only trigger when population has declined for three successive samples (on top of other checks)
- Fixed zoom stutter when zooming in/out before previous zoom had finished
- Fixed camera rotation not being reset when zooming out to the menu/returning from menu
- Fixed cooldown cost sometimes showing negative values
- Fixed potential crash when loading a broken save where hex type IDs are out of sync
Get Hive Time
Leave a comment
Log in with itch.io to leave a comment.