Developing your first game is like walking into uncharted waters. You might read up a lot, but you will still encounter some problems that will be avoided on your next game. Here’s what I’ve noticed while working on my first big game.
Error Handling and Reporting
What seems like a luxury at first, quickly becomes a necessity when your game goes live. Build your system with that in mind. Steam offers a good error reporting service in case the game crashes, but it needs the data to send. In my case – I hold the stack of function calls and some arguments (about 10 entries) so there would be at least some information on when the game crashed. It’s not always enough, but it’s better than nothing.
Savegames
You ought to start thinking about implementing savegames at once. The more your game grows, the more data is added (i.e. player in my game had no need to save an army at first, but it became a must later on). The longer you wait, the harder it will be to implement. When I realized that I needed map savegames in Blades of the Righteous (already when the game has been released), I had to drop everything and work 3 days, 12hours nonstop just to implement and test everything. The rush and stress could have been avoided had I planned it right at first.
Literals
Sure, sometimes you just want to make a button and hardcode “Start” on it. My advice: don’t. Move all the string literals that you have in codeĀ (those that are visible to your users) into an external file. That way when you want to translate the game, the process won’t be painless. Right now I’d have to rewrite everything if I wanted to translate my game (I might actually do this).
Screen Resolution
Especially if you are working on 2d game. Read up on how others solve it. I had to realize that it’s the problem only after release (when people started explicitly asking for fullscreen). I’ve intended the game to be windowed, like “Knights of Pen and Paper”, first part (Awesome game, love it). However, I’ve been getting lots of requests to support fullscreen. In this cases, you can stick to your opinion (“Working as intended!”) or actually listen to people and their wishes. Making good resolution support also makes your game much more easier to record for letsplayers.
I think that’s all I can remember for now. If you have any similar experiences and things your are paying attention to – feel free to share them in comments.