Godoku v0.3.2


Update

We jumped up to 0.3.0, because this update is a lot more exciting and user-visible. You'll have lots of new dials to play with!

You'll notice that we're actually at 0.3.2, because our testers suggested a few great features we could implement immediately before posting a devlog.

  • We implemented gamepad controls! They were technically in before, but the new shortcuts are a big improvement. We're quite pleased with the rhythmic feel of hopping back and forth across the play field.
    • Use triggers LT/L2 and RT/R2 and Square / X to jump around the play field and entry pads.
    • Use LB/L1 and RB/R1 to highlight different numbers on the play field.
  • We added input remapping as well! From the settings menu, you can set separate action maps for keyboard vs gamepad inputs.
  • Based on the great work by https://github.com/Pennycook/, we have action prompts that dynamically match your current controller. Try alternating between gamepad and keyboard to watch them go!
  • Using those new prompts, we've added button hints around the play field so you can see your input options at a glance.
  • We unified the modal menu system back in 0.2.4, and combining that with the above action prompts, we standardized the buttons and labels across all modal menus. That will make options on each menu more obvious.
  • We added input repeating to gamepads, making traversing the play field a little more convenient.

Godot Development

  • One of the big challenges was getting repeating inputs on gamepad the way people expect on keyboard, e.g. in Windows. This comes built in with Godot for keyboard, but somehow not for gamepad! We had to build a rudimentary delay and repeat system that monitors all gamepad inputs, filters out other devices, and runs repeat timers for whatever the last direction was. It's not a hard class to write, but it is surprising that they didn't already have it as an option.
  • Input remapping is a fairly easy problem, in theory, but this required understanding both methods of processing inputs. Both the _input / _unhandled_input methods as well as Input.is_action_just_pressed() have exclusive information and sometimes *both* methods have to be checked in the same function.
  • We've gotten more comfortable with Godot's UI theme system. In this case, we used a GridContainer for both the numpads and now added the GridContainer managing the input remap menu. We couldn't find parameters that worked for both, so the Theme Type Variation system allows us to have different styles for different GridContainers, both stored within the main UI theme file.
  • InputMap holding the actions and events during runtime seems fairly obvious, using code to pull up the default input settings as we defined in the editor was more obtuse. Every project setting property is stored according to a string key, which is somewhat difficult to research in the docs. As a developer, you have to engage in filthy string manipulation to arrive at the right key, which is quite brittle if either you or the engine maintainers changes either end of the key.

Files

Godoku_0.3.2.zip 47 MB
Apr 22, 2024

Get Serene Sudoku

Leave a comment

Log in with itch.io to leave a comment.