April 7th 2022 by SDGNelson
I am really excited about the Steam Deck both as a developer and PC gamer. When they were first announced I placed a reservation, but did not request a devkit because I knew Unturned has a long way to go before it will be a seamless experience.
As far as the Steam Deck itself: performance-wise it runs Unturned reasonably well, and emulates most of the PC inputs nicely e.g. thumb trackpad to control the mouse in menus. Enabling ultra graphics except landmarks, dual-render reflections, dual-render scopes, and speedtrees achieves 50-60 FPS. (Each dual-rendering setting almost doubles the draw time, and the speedtrees ought to be replaced with manually-created models sooner or later anyway.)
On the game's end, however, the lack of built-in controller support is badly noticeable:
- Menus do not support the D-pad nor the accept/back face buttons.
- Text inputs do not open the on-screen keyboard.
- Key prompts are formatted into text by name, e.g. "Press [Tab] for inventory".
- Far more inputs than controller buttons. Even with a keyboard this is becoming problematic because there are no keys left for new features.
- No aim assist.
Currently the game supports enabling either of Unity's older UI frameworks: IMGUI (oldest) or uGUI (newer). uGUI has gamepad support, but none of the game's menus have those navigation links configured. Further complicating matters is Unity's newest UI framework "UI Toolkit" which is not fully recommended by them yet. Until UI Toolkit is stabilized the game needs to work around the lowest common denominator of supported features. For example I am not sure if we can even safely abstract setting an up/down/left/right navigation per-element across all three.
In a similar vein, for the key prompts it would be helpful to format a glyph (button icon) into the rich text, but it varies by UI framework: IMGUI does not support this, uGUI supports inserting sprites with Text Mesh Pro, and I have not looked into it for UI Toolkit yet. As a shorter-term goal it should be doable to add controller icons alongside some existing menus, but that also depends on direct controller support rather than emulating key presses.
Built-in controller support is again complicated by Unity's new Input System. I would be hesitant to convert the project to use it directly in case it gets replaced again. It would also be great to integrate Steam Input, but Unity's new input does not use it. For these reasons I plan to go the same route as the UI: supporting multiple implementations (Unity legacy, Unity new, and Steam Input). Back in the early years of Unturned I probably would have chosen exclusively Steam Input, but nowadays I am gradually working towards the goal of a DRM-free version to help with preservation and compatibility of old builds.
Adding quality of life features like aim assist should be relatively straightforward, at least for the vanilla enemies like zombies and humans, but will depend how this gets prioritized compared with other goals for this year.
To summarize: the Steam Deck is really cool, and there are a lot of great games that work well with it. Unfortunately Unturned is not one of them yet (my bad), but ideally the game can slowly be refactored to work better with Steam Deck and gamepad/controllers in general.