Godot 4.7.2 InputMap.xml, InputEvent.xml, InputEventKey.xml, Input.xml, input_map.cpp, input_event.cpp |
The remapping API, which key field to store, IsMatch comparing the receiver's own field, 4.7's keyboard (16) and mouse (32) device ids |
Controllers, gamepads and joysticks, drivers/sdl/joypad_sdl.cpp |
SDL3 for desktop controllers since 4.5; GetJoyInfo keys, ids as strings; no repeat events from controllers |
@GlobalScope.xml JoyButton, SDL's controller_list.h |
Buttons by position (A is the bottom button, Nintendo's "B"); Microsoft, Sony, Nintendo and Valve vendor ids, Steam Deck's product id |
| Steam Input (concepts, action sets and layers, activators, mode shifting, IGA file, action manifest), ISteamInput, gamepad emulation best practices, Steam Deck recommendations |
Actions instead of buttons, glyph functions, a virtual pad that looks like an Xbox pad, switching prompts only on a click or key, Deck Verified requirements |
| GodotSteam input, Steamworks.NET (MIT) |
Steam Input from Godot, in GDScript or C# |
| Kenney Input Prompts 1.5 (CC0) |
Folder and file names of the prompt pictures |
| Xbox Accessibility Guideline 107, Game Accessibility Guidelines |
Remap everything, labels follow remaps, hold-or-toggle, no simultaneous presses, one input method for menus and play |
| Forgiveness Mechanics (Seth Coster, GDC talk on Levelhead) |
Coyote time, the jump buffer, hold-to-confirm restart and fall-through resets with their windows; Example.Core/Platformer/Forgiveness.cs |
| Building a Better Jump (Kyle Pittman, GDC Math for Game Programmers) |
Launch speed and gravity from a designed height and distance, heavier fall and release gravities, an exact step instead of Euler (10.7 px of apex error at 60 Hz); Example.Core/Platformer/JumpArc.cs, math |
| 50 Game Camera Mistakes (John Nesky, GDC, probably 2014) |
The look stick's place among a third-person camera's priorities: the player's turn beats avoidance, hints wait after it, pitch eases into its limits; camera, Example.Core/Feel/OrbitCamera.cs |
Accessibility Best Practices: Mobility Considerations (Karen Stevens, GDC 2021), Godot 4.7.2 core/input/input.cpp |
Adjustable and axial deadzones, sensitivity both ways per axis, stick swap, fewer buttons, vibration levels; how GetAxis and GetVector apply per-action deadzones (StickSettings) |
AAA Gaming While Blind (Karen Stevens, GDC 2018), Godot 4.7.2 Input.xml, core/input/input.cpp, drivers/sdl/joypad_sdl.cpp |
Rumble patterns that carry information, per-player vibration levels and strength, a cue on menu wraps; which motor is which, and that out-of-range magnitudes are ignored (Haptics, LinearMenu) |