Game Development Tips for Faster Testing

Written by Dean Edis on .

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!

Adding Intuition to Lunar Panda

Written by Adrian Killens on .

In all its iterations Lunar Panda seems to have suffered one particular problem in that if you've never played that other game that's a bit like Lunar Panda (you know the one) then chances are you won't know what you're doing straight away. I saw this quite a bit at various expos. Players of Lunar Panda were often divided into two camps, people that knew how to play it straight away or spent a bit of time working it out and those that had no idea about Mr Panda's objectives. I saw plenty of people picking up a controller, blast him into space, look confused and walk off. Occasionally I'd intervene and explain how the game's played at which point a new player would quite happily spend some time working there way through a few levels.

So! What's to be done? The answer 'hopefully' is four things.

Firstly. we've now added a tutorial to the menu, for those diligent enough to peruse that option. This is a still scene with just enough information to explain the aim of the game but not so much that we bore the player.

Secondly. Upon starting a level for the first time, the view scrolls from Mr Panda to the landing pads and back to Mr Panda again. Some players didn't realised that there were landing pads below some level starting positions. It's also a great way of giving the player a quick overview of the level and a chance to devise a potential strategy.

Thirdly. An overlay is displayed briefly the first time you play one of the levels on the first planet, with some animated fingers showing you how to rotate and thrust.

And last but not least. The first time you ever play one of the levels on the first planet you'll see some animated text telling you to "Land here...but gently" linked to a landing pad.

Lunar Panda

It sounds like a lot but their all quite minimal changes that are displayed to the user just enough to get the information across without being patronising or taking focus away from the game. Next step will be to put this new and hopefully more intuitive version into test with some people that have never played the game before to see how they do. Fingers crossed.

 

Adding Level Menus to Lunar Panda

Written by Adrian Killens on .

The level progression of our previous incarnation of Lunar Panda played like an old school video game where you worked your way through the various acts and planets sequentially. This time around we thought it'd be better to add some menu screens a bit like the ones you get in most popular mobile games like Angry Birds etc. So with that revolutionary idea in mind we set to work designing our very own level menu.

We divided the menu into the various planets that make up Lunar Panda and as you complete all the acts that make up each planet then the next planet unlocks. The acts that make up each planet can be completed in any order and the player is free to go back and play levels from previously unlocked planets. To give it a bit more sheen we've also added a little Polaroid graphic for each act along with that levels current high score. The player's progress is stored locally on the device but can be cleared at any point via another menu option if required.

Check out the results here:

The Evolution of Lunar Panda

Written by Adrian Killens on .

 Lunar Panda

It's been in the making for a while but the mobile port for Lunar Panda Deluxe that Dean and I have been working on is now around 99.9% complete. So I thought I'd take a moment to reflect on the awesome "learning journey" that Mr Panda has taken us on these last few years.

Way back in 2012 this thing called a Raspberry Pi emerged and Dean and I thought it would be jolly good fun to write a video game for it which we could release it on their, now defunct, Pi Store. After some amount of brainstorming we came up with the idea of creating a Lunar Lander clone but with a Panda, hence Lunar Panda. At the time we found this play on words quite amusing but it's become slightly less funny with each passing year. Anyway! After a bit of research we opted to write Lunar Panda in Python using the Pycharm library because that's what everyone else seemed to be doing and writing it in assembly would have been pretty tedious. Somehow we also managed to persuade an actual proper artist, Jose Cubero, to work with us and create artwork for us.

The game design itself was pretty easy and once we'd got our heads around Python and its crazy indentation rules we were away. The game didn't really stray that far from the original Lunar Lander, the landscape was randomly generated on each level and once you'd safely landed Mr Panda a new level was generated and you started all over again whilst racking up high scores and honing your landing skills. We gave the game away for free on the Pi Store and due to the lack of competition on there we did pretty well download-wise. We even gave away the source code along with some tutorials to help others and someone even used our code to create a Dr Who Tardis that played Lunar Lander.

Next up came Indie Game the Movie. After watching that we were pretty confident we could replicate the success of Super Meat Boy by simply porting Lunar Panda to the Xbox 360. Things didn't quite reach those levels of success but we had fun developing the new version of Lunar Panda that we re-wrote from scratch using C# and the XNA library. This one had an actual story line, level design, different planets, homing mines, force fields and all sorts! We called the end product Lunar Panda Deluxe, from which we drew influence from the title Asteroids Deluxe.

Then came Game Maker and everything got a lot simpler. A lot of the complexity we experienced with our previous technology choices didn't really exist in Game Maker and once you'd got your head around how to deploy to an Apple and an Android device you were good to go. So we set about creating a brand spanking new version of Lunar Panda Deluxe for the mobile market. We've had a few distractions along the way. Due in part to the fact that it really is very easy to turn a simple idea into released game with Game Maker. So we ended up taking a few breaks from Mr Panda to work on other shorter games such as Gimpy Bomber, Gimpy Defender and New York Toy Fair: The Game (Which got a glowing review from Pat the NES punk).

Fast forward to 2017 and we're finally back on track, focusing all our energy on getting a mobile friendly version of Lunar Panda Deluxe completed. There's been quite a bit or work done around the control mechanics, save states, menu screens and other such things that compliment mobile games. The game has evolved quite a bit since the Raspberry Pi version five years ago as we've made improvements and tweaks and we're excited about finally getting this version out into the wild and seeing what people think. It's been a long time coming.