Want to know what we do to make testing our games as quick and efficient as possible? Then read on...
We are now in the final stages of testing our new game - Lunar Panda Deluxe. We have release builds for various mobile platforms, and (along with some help from other Gimpy Software friends) are testing the product as much as we can. Just because we’re a small Indie Dev company, it doesn’t mean we should skimp on testing...
So as you can imagine we have played our own game A LOT. Each and every level (We have many!) requires playing several times with various tactics - The combinations all add up! This means that, where we can, we have to make testing as fast and targeted. Here’s some pointers on how we do it.
1) During development we add the splash screen, menu screen, help screen, and credits screen last.
Some of these stages just aren’t needed until the end of development (E.g. The gameplay will change during development, so no point adding a Help screen too early), but adding a Splash screen too early can add a big overhead to development. Anything that gets in the way between launching the game and playing levels gets implemented last.
2) Add a mechanism for jumping straight to any level.
It sounds obvious with hindsight, but implementing this feature early on can save hours of time. If your game is for mobile devices only then you have the option to use keyboard shortcuts to skip levels (when testing on a desktop machine, anyway). If you’re serious you could also add an in-game command-line console (RememberQuake?) or debug screen. Note: Be careful about adding ‘debug build’-only changes to your code. Giving yourself infinite lives in debug builds can be handy, but the more ‘conditional’behaviour you introduce the more likely it is you’ll miss in a bug in the release build.
3) Restarting levels, Instance health, and Invincibility.
...plus anything else you can think of! One of the most useful in-game shortcuts we added to Lunar Panda Deluxe is the ability to kill your velocity. In the game your character, Mr Panda, needs to land gently on a landing zone without running out of fuel. Being able to kill your velocity means we can thrust at break-neck speed to the landing zone, halt at the last-minute, and then test the landing code. A great shortcut, and looks cool too!
4) Slow Mo
This one is tricky to add, and may be especially difficult if added too late in your development cycle. It can be a real bonus when it comes to looking at animation and collision detection, but it is easy to get wrong. Unless your engine has good support for variable time between game events (E.g. ‘ticks’, game steps, etc), changing the speed can change runtime behaviour. Think of a game like Pac-Man. If your character is moving one pixel per frame then collision detection is relatively straight forward. If he moves three pixels per frame then you could get stuck in a wall.
I hope that gives you some ideas, and helps in some way to make your development and testing process a bit smoother!