Level Design

Written by Adrian Killens on .

I’ll be honest with you, the new Lunar Panda game is my first ever attempt at level design, the existing Python version didn’t really require a lot of effort in this area. We essentially 'borrowed' the main concept from Lunar Lander and each level is randomly generated. This was how a lot of games worked back in the day. Think Asteroids or Space Invaders. You have a simple idea for a game and you basically repeat that idea for each level with a possible increase in the speed of the enemy with each iteration.

However the new Panda game we’re working on now for XBox and PC does actually have levels designed by hand and even a plot that weaves its way through the game via the talking Panda screens. So I thought I’d talk a little bit about designing the new levels.

General Thought Process
Here at Gimpy Software we’ve played a lot of video games in our time, both old and new and so the first thing we did before starting work on the next Lunar Panda game was to think about similar games and how the mechanics worked in those. Two games that sprung to mind were Lemmings and Angry Birds. Both of which have simple gameplay that you’re introduced to via some very easy levels to begin with and then as the games progress you’re introduced to more obstacles and more taxing level designs. So with this in mind we knew we’d have to create some obstacles for Mr Panda to deal with and also give ourselves the ability to hand draw the landscapes rather than having them randomly generated.

Sketches
Early on we began to sketch out some level ideas on graph paper. Here’s one for the force field level that we implemented not too long ago.

What are we doing now?

Written by Dean Edis on .

The development side of Lunar Panda is slowly but surely coming to an end now, in preparation for the official release. We're tidying up a few loose ends, planning the 'Grand Finale' outro sequence, and putting some finishing touches to the level design. This is particularly challenging for our artist, Jose Cubero - Thanks Jose!

We're actually playing the game more than ever to try and find any last minute quirks, and will hopefully have a 'soft release' of the game to some friends and colleagues to gauge a more 'public' opinion and gather feedback.

We've also added a Store section to the site. A few people asked about the Lunar Panda T-Shirts that we had made for ourselves a little while ago, so if you want one you can now buy one. All profits will made go towards pizza and random software licenses!

Watch this space!

Arcade Antics

Written by Dean Edis on .

Around the beginning of the year, shortly after we decided to create Gimpy Software and start writing Lunar Panda on the Raspberry Pi, I was getting so nostalgic for the 'good ole' days' of gaming that I decided to build myself a MAME arcade machine. Being married with kids, I knew that a full-size arcade cabinet would both be frowned upon, and be too tall for my children to use easily, so I decided on finding out more about 'bartop' arcades.

There are a few good websites out there which I used for research, and the most useful was Project MAME. This site has free downloadable plans for cabinets of various different sizes and designs, as well as helpful instructions on how to build them. I decided the WeeCade was the one for me, so off I went to the local hardware store and bought up a few sheets of MDF.

The next couple of months had me sketching/planning/measuring/drawing/cutting/gluing/un-gluing/gluing again/sanding/assembling/more sanding/painting, and finally GAMING! Maximus Arcade provides the graphical front-end, and my hardware is an old Dell P4 3Ghz machine.

I've now got a decent collection of ROMs running on the machine (MAME, NES, Sega Genesis), and discovered my 5 year old son is turning into a surprisingly proficient 'power up' thief in most games. Lunar Panda plays perfectly with the 'retro' arcade controls!

Check out my pictures below. We even had Mike Montgomery from the Bitmap Brothers playing on it at one of our retro gaming events! Playing games like Xenon 2 was one of the reasons I got interested in programming as a kid!

If anyone has any feedback and/or questions on the build, just drop us an This email address is being protected from spambots. You need JavaScript enabled to view it.!

[widgetkit id=1]

Speculator

Written by Dean Edis on .

Speculator In my years a software developer I've set myself many projects and goals. Writing a ray-tracer was particularly enjoyable - You'd be surprised how easy it is to get some quite impressive results. (I might even release my source code at some point. Watch this space!) Another one of my 'projects' was to write a ZX Spectrum (48K) emulator. That's the machine I first learnt to code on, spending hours and hours typing in BASIC code from a book, and then tweaking the result to change how the program ran. Reminiscing about the 'good old days' is one of the factors which motivated a few of us to get together to form Gimpy Software!

So 'write an emulator' I did! My goal was to get it to the point where games such as Manic Minor, Jet Set Willy, and Horace and the Spiders would work, plus have support for BASIC. I chose to write it in C# because I wanted to become more proficient in that language, having previously focused mainly on C and C++. I think that shows in the coding style I used - I've since learnt much more about C# so if I were to do it again there's definitely some changes I'd make.

You can download my code from this site, build it using Visual Studio, and use it more-or-less as you see fit. The sound emulation was quite tricky to implement, and wasn't quite 100% perfect, so I have excluded much of it from the download. The code hooks are still there, so if you're up for a challenge and want to implement it yourself feel free, and let us know how you get on! The Z80 CPU emulation is (in my opinion) fairly accurate! Some of the less used interrupt modes are in a 'TODO' state, but for most purposes the emulator as it stands works fine. There is also a built-in CPU debugger available, as with most of the functionality, using a right-click menu in the application.

To avoid any legal issues I've deliberately not included the Spectrum's 48K 'ROM' file. It is, however, a quick 'Google' away and can be downloaded from many sources easily. If we get much interest I'll write another blog going into some detail about how emulation works. In the meantime I recommend reading this site for an intro into writing an emulator (in Java): http://www2.sys-con.com/itsg/virtualcd/java/archives/0707/surdulescu/index.html