Gamepad support sounds simple on paper, unless you need to be the one to code it all. Getting it to actually feel good and work consistently across different setups has been one of the more stubborn challenges I’ve run into while developing Power Network Tycoon.
I wasn’t sure if the game should support controllers, but I wanted the game to be as accessible as possible. From my own personal experience I switch between keyboard and mouse, and controller, and I know others have a preference (depending on the game…), so I wanted to provide the option. Integrating proper gamepad controls into a UI-heavy, cursor-based management sim has been anything but plug-and-play.
I’ve tried many different approaches including addons to Unity to make it ‘easier’. For the Unity Devs out there, I use the ‘new input system’ although I’ve heard good things about ‘Rewired’. As I’m trying to set up my established game with a new system, I decided to stick with the unity systems.I’ve tried many different approaches including addons to Unity to make it ‘easier’. For the Unity Devs out there, I use the ‘new input system’ although I’ve heard good things about ‘Rewired’. As I’m trying to set up my established game with a new system, I decided to stick with the unity systems.
In recent years with development of products like the Steam Deck, controller support has become increasingly important, and maybe increasingly convoluted. Steam has their inbuilt systems for remapping controls, which would work for some, but for me it felt like an additional layer for complexity as my game isn’t the typical gamepad type game (eg a FPS, RPG etc) and at least for most city builders it’s mouse focused.
Some big challenges I faced were:
- Making navigation quick enough while there are many buttons on screen when fast responses are required
- Managing UI that wasn’t originally built for gamepad usage, such as clicking objects on a map rather than just buttons
- Finding a way to have dual use of buttons as there are less buttons than a keyboard, without overcomplicating it
- Navigating the camera movement including zooming
Thankfully through all this I was able to obtain feedback from players and tweak things to suit, but as a solo developer there’s no knowing if what you think is correct is the same as what your audience likes.
Gamepad support is still an ongoing part of the overall game development for me and is continuing to be a massive challenge, including obtaining full gamepad support and full Steam Deck compatibility, but I think it will be worth it in the end.
Like many aspects of software development and engineering in general, the right time to implement a change to a project is at the concept design phase, as late changes get expensive the further down the track you are. I would suggest that for anyone developing a game, think about gamepad support from the very beginning, even if you don’t publicise it’s there, as this will save you a lot of future headaches.