Game Release Miscellanea
Over the years I’ve accrued an informal list of miscellaneous gotchas and pitfalls for game releases & game maintenance, but I’ve never actually written them down… until now!
This is straightforward stuff and likely things you already know, but perhaps there’s tidbits you may find helpful. I hope it helps.
1. Keyboard layouts
Some keyboards use WASD keyboard layouts. Some use AZERTY or other layouts. I hardcoded my controls in some of my earlier work… I don’t recommend it!
2. Decimals parsing
Decimals are parsed differently depending on the region. Example: seven and a half is sometimes 7.5 and is sometimes 7,5
3. Save folder
To the best of my knowledge there still isn’t a universally agreed-upon place to put save files, and every location has pros and cons. For Windows I’ve settled on %appdata%\YourGameName and it seems to work fine.
4. Crash reporter
Some time ago I started putting a crash reporter into my work. It puts the crash callstack text into a Google Form, and then the player clicks the form’s Submit button to send it to me.
5. Code comments
I sometimes hear the adage that truly elegant code doesn’t need comments… I disagree!
I think comments are great, and I add comments pretty aggressively. Largely because when I need to re-visit code 10 years later for an update or patch, it’s very helpful to read past-Brendon’s helpful notes, know exactly what something does, and get a fix done in a few minutes instead of a few hours.
6. Build documentation
Related to above: I find it helpful to write “how to make a build of the game” documentation for myself. When you need to make a new build 10 years later, there’s a chance you may not remember all of the arcane build steps, tools, and little details.
7. Profile folder (Steam)
For the Steam build, save files inside a sub-folder that uses the player’s Steam ID number. Example: the save folder will end up something like: %appdata%\YourGameName\77901231231233301
This allows multiple Steam profiles to use the same computer without overwriting each others’ files.
8. Tags (Steam)
In the Steam backend, add tags (i.e. Singleplayer, Short, Action, Puzzle, etc) to your game. Might be superstition, but I believe developer-added tags heavily weight how the game is surfaced in the store.
9. Separate video settings (Steam)
My take is that video settings should not be saved in the cloud. The main reason being that if someone is swapping between different machines (i.e. desktop computer and Steam Deck), you generally do not want video resolution/quality/etc shared between them.
10. Messageboard setup (Steam)
I like setting up the messageboard in such a way that disallows posting in the ‘default’ landing page. Skin Deep example: https://steamcommunity.com/app/301280/discussions
This results in directing players to post in specific subcategories and prevents the landing page from becoming a dumping ground for everything.
Et Al
In short: it’s a miracle that any game actually works.