About Controllers & Keybindings

Slipstream

Arcade-style racing game inspired by the spirit of the early 90s, with drifting mechanics and exotic tracks.

Some people wrote to me asking various things about controller support and keybindings, and since I never documented this feature very well, I'll try to do that now and maybe answer other potential questions. Keybinding (hopefully) works as you might expect: you select an action, press a button and that button is mapped to that action. But there are a few quirks I'd like to explain in more detail. [list] [*] The new keybidings start working [b]immediately[/b], as soon as you map the new key to an action, it is the only way to perform that action. So if you rebind menu actions like up, down, confirm or cancel, the only way to exit the menu is to use the new bindings. [*] Keyboard and Gamepad work slightly differently. [list] [*] On the keyboard, confirm and accelerate are always mapped to the same key, and so are cancel and brake. So the menu keys and game keys are always the same. [*] On the gamepad, "menu keys" (confirm and cancel) and "game keys" (accelerate and brake) are treated as different groups. You can map one action from each group to the same key. For example, you can have accelerate + confirm mapped to the same key, or accelerate + cancel, but obviously not accelerate + brake. One car action + one menu action. You can also, of course, map each action to a different key, as is the case with the default configuration: RT and LT for the car actions, A and B for the menu actions. [/list] [*] I tried to make it impossible to get completely stuck on the menu with the keybidings, the game tries to prevent all contradictions I could think of, BUT if you manage to get stuck with unusable keybindings, hard-reset to the default settings deleting the "controls.dat" file located at [list] [*] on Windows: [user home]/AppData/Roaming/ansdorGames/Slipstream (the AppData folder is hidden by default) [*] on macOS: ~/Library/Application Support/ansdorGames/Slipstream [*] on Linux: ~/.config/ansdorGames/Slipstream [/list] [*] Key configurations are stored in a per-model basis, so if you have two identical controllers with the same internal ID they will necessarily share the same bindings. This may be an issue for some of you but I couldn't think of a solution that would not make the internal system a lot more complex (and prone to bugs) than it already is, so I left it that way to avoid other, worse possible problems. This will probably never be changed. [*] The game currently does NOT update the key icons for rebound keys on the UI. I might change this in the future but right now it will always show A/B as the default confirm/cancel buttons. This is merely a UI issue, it does not affect the actual controls. [*] If your gamepad doesn't work or is not recognized, there isn't much I can do. Slipstream provides gamepad support via an open source gamepad library called [url=https://github.com/williamahartman/Jamepad]Jamepad[/url], which itself uses the libSDL [url=https://github.com/gabomdq/SDL_GameControllerDB]gamepad database[/url]. I have no control over which gamepad models they support. I can only offer official support for the Xbox One controller, so if you have problems with this model, contact me. Otherwise I suggest using an xbox compatibility layer/emulator. Gamepads are not all standardized and it's impossible to provide support for all of them, even for big companies, let alone a solo indie developer. [i](Off the record: I have, however, personally tested the game with the Xbox 360 Wireless Controller, Razer Serval, Sony DS4 and 8bitdo SF-30 pro (on Xinput mode), and they all worked out of the box on Windows and Linux. So if you have one of these there's a good chance it will work, but I can't guarantee anything)[/i] I guess that's all. If you have any further questions, send me an email. Happy new year everyone!