Engine Deep Dive: Input Rebinding
How we built a rebinding system that survives gamepad hot-swaps without losing the player's muscle memory.
Input rebinding sounds like a checkbox feature until you actually try to ship one.
We started with a simple key→action map and immediately hit three problems: gamepad hot-swaps reset half the state, the UI lagged behind the actual bindings, and Turkish-Q keyboards mapped ı to slots we didn't expect.
The fix was reframing the layer as a binding intent rather than a direct key reference. Each action declares what it wants (dash, jump, interact), and the resolver picks the best concrete input every frame.