Archive for December, 2006

Cacodemon Test Builds

Saturday, December 16th, 2006

Pluto's Nasty Emperor Cacodemon’s Barbecue Party in Hell is on the verge of a new release! But before I release a new version of the game I’d really love to hear your comments about few gameplay tweaks that I have done. These tweaks where born from the great discussions on the Cacodemon’s Barbecue Party post. So big thanks to everybody who commented.

New players ahoy I need your opinions and feedback. If you haven’t played Cacodemon’s Barbecue Party I really need you to test out the game and tell me what you thought of it. I’d really appreciate it and you get to influence the gameplay of Cacodemon by your comments. If your a new player I want you to run the “cacodemon_test1.exe” or the “cacodemon_test2.exe ” first (the download and installation instructions are below). And after you’ve tested it please let me know if the game was too easy or too hard and any other suggestions and ideas that you came up with playing the game. You can test the original game by running the “cacodemon.exe” and let me know which one them was the best and why.

I’d also love to hear from the old savvy Cacodemon players, what you think of these new gameplay modes and which of the plays the best and why.

So here are the test builds and installation instructions.

1. First you have to download the Cacodemon’s Barbecue Party (5.2 Mb) (release 1).
2. Then download the file (includes two .exes) and extract it into the same folder where the “cacodemon.exe” is located.
3. Then run either “cacodemon_test1.exe” or “cacodemon_test2.exe”.

The test #1 was actually released originally in the Cacodemon’s original blog post’s comments. It has the per kitten scoring enabled. Meaning that you only get a score if you manage to throw the kittens into the oven. This was enabled after the discussion that the oven was basically useless in the game.

The test #2 has the time released kittens mode coded into it. Now the kittens are also released after twenty seconds. So it’s possible to play around with multiple kittens at the same time. And you’ll get a double score for doing that.

In related news I have been working on the high-score list and it will be included in the new release of Cacodemon’s Barbecue Party in Hell and Pluto Strikes Back. The bad news is that when I’m not doing rapid game development, the engineer in me pops up and I end up over engineering my code. So the high-score list feature turned into a obsession of updating my game engine to handle it’s resources in a smarter way. I was a little afraid that something like that might happen. Good news is it is almost done, the bad news is that I’m really busy next week.

In the other news grapefrukt has just released his new cool game called Eater Of Worlds. You should check it out.

Postmortem: Pluto Strikes Back

Saturday, December 9th, 2006

A little bit over month ago I released my third experimental done-in-under-7-days game: Pluto Strikes Back. The game has gotten a very good response from players and it’s a game that even I still enjoy playing. Here are some of things I learned from the development of the game.

What Went Right

1. Toy First
Building the toy first turned out to be a very good idea. I created a very ugly physics toy, where I had some planets (blue circles), the bat (blue square) and I could launch asteroids (smaller blue circles) by a click of the mouse. And I used this toy to prove myself that the core mechanics where fun enough to build a game around.

I then spend almost half of the development time lubricating this ugly bugger so that it was even more smooth to play with. And toy turned out to be surprisingly fun to play with, unlike the toy that I created for Slimy Pete’s Singles Bar.

I then wrote down all the things that felt satisfactory to me in the toy. Like hitting a planet really hard so that collided with the other planets or managing to strike an asteroid so that ended up orbiting a planet. Then when I started working on the graphically intensive version of the game I made sure that the player would be awarded when he managed to perform these activities. The awards where in the form of sound effects, scores, animations and bonuses.

2. Juiciness
The game feels quite juicy. Credit for this goes to the fact that I did spend quite some time working on the basic strike an asteroid hit a planet sequence. I wanted it to feel very juicy. So I created a very simple spring system to pull the planets back to their original positions. This really did boost up the game and I think it’s the most important part of the juiciness factor.

Here’s a list of things I added to make the hitting of a planet feel really extra juicy.
Elements of juiciness in Pluto Strikes Back

  • The already credited spring system
  • The Candid Camera sound effects (when you hit a planet it sounds like it)
  • Rising score message
  • Running score counter
  • The big bonuses that you get almost every time you strike an planet

Also the background song, which I encountered by pure accident, brings it unique flavor of spinning goodness to the game.

3. Let my baby take it’s course
The first two games that I did, I really prototyped the original idea that I had in my head. I didn’t want to change it or tweak it on the way, because basically I was creating a prototype of that idea. It felt like I would cheat if I changed my mind during the development. Pluto Strikes Back was different. It was much more like a series of prototypes than a one big one.

In terms of gameplay there was very little progress. The original gameplay idea turned out to be very fun so I kept it pretty much intact. Although all the bonuses where developed during the prototyping.

The story did change a little. As the original idea was from a weird dream I had. The player would defend Earth against an asteroid attack by swinging a baseball bat. But that really lacked a reason to try to aim the asteroids to something. Then I figured that maybe Pluto should play the main part, because of the all media coverage. That then quite easily turned into a game that was only about Pluto getting it’s revenge.

I think it’s good to let go of the original idea and let the development take it where ever it is going with it. Clinging too much to the original idea can really kill a good game.

Things That Went Avery

1. No real play testing
Unfortunately I couldn’t afford to use a industry leading QA department to test out my game. I mainly balanced the gameplay based on my own experiences. I should have used couple of friends as testers. In the past I have learned a lot from watching other people play my games.

The biggest problem was the too high gravity of Pluto, that caused some of the new players to get frustrated trying to get the asteroids out of Pluto’s gravity field. I didn’t realize that this was a problem until people started reporting about it at various game development forums. I then dragged a friend who had not played the game to my house and watched how he played. And that’s when I realized that maybe the Pluto’s gravity field was a bit too heavy.

After that I released a quick patch that fixed some random bugs, made the bat controls a bit more firm and eased on the Pluto’s gravity. The new players praised the new patch, but the hardcore players felt that it made the game too easy. Well, you cannot please everybody.

2. Bugs
There where some nasty bugs left in the game. The cause of this basically the same as the last items: no real play testing. The bugs where of that kind that the player would get unrealisticly big scores. Luckily it was quite easy to fix, but unfortunately it really twisted the comparing of the scores.

3. I ran out of time
With Pluto Strikes Back I really did run out of time. Luckily I managed to implement all the important features for the gameplay that I wanted (not including the destruction of planets). But some of the small things that I would have liked the game to have, I could not do in the 7 day limit.

Pluto Strikes Back was a prototype to prove that the core mechanics could work and where fun to play. Right now I don’t know what future holds for Pluto, but I would definitely like to continue the development of the game. Hopefully I have time to release a new version of the game that would include the much needed and desired highscore list.

Btw. Big thanks to everybody who downloaded and played the game. And even bigger thanks to all of you who took the time to write comments and suggestions about the game. The comments really motivated me (and still do) to work on the game further from it’s initial release.

Cacodemon’s Barbecue Party in Hell

Friday, December 1st, 2006

I proudly present my fourth done-under-7-days game: Cacodemon’s Barbecue Party in Hell. Actually it’s my first Game-In-A-Day (GID for short) game. Not surprisingly, the idea of GID is to create a game in day. To be honest I did cheat a little, I created the game in the course of four evenings and the total time spent on the development is 23 hours 30 minutes. So in theory its done in a day. Well anyway it’s done in under 7 days and that’s what matters to me.

Cacodemon’s Barbecue Party in Hell

Screenshot of Cacodemon's Barbecue Party in Hell Screenshot of Cacodemon's Barbecue Party in Hell Screenshot of Cacodemon's Barbecue Party in Hell

Download (5.2 Mb) (Release 1)

Mr. and Mrs. Cacodemon are organizing a barbecue party in hell. Unfortunately that means there’s some work to do. You play as Mr. Cacodemon and you have to pluck and grill the kittens.

To pluck the kittens you have to spin them in the air rapidly. After all the hair is gone, throw the kitten in the hell grill (the opening in the left side of the wall) for even better score.

Esc – Will quit the game.
Alt + enter – Will toggle fullscreen.

Game Design, Code & Gfx: Petri Purho ( petri.purho (at) )
Music: Evil Horde – Hangarmageddon (e1m1). Big thanks to Evil Horde (Janne Roivainen) for letting me use his song for the game.
Sound Effects: kitten_burn.wav: The Recordist and the rest from Noise Collector’s aNiMaLs -collection, licensed under a Creative Commons Sampling Plus 1.0 License.

Physics model is based on Markus Ilmola’s tutorials.
Inspiration source: Experimental Gameplay Project.
Cacodemon’s Barbecue Party in Hell uses: SDL, SDL_Image, SDL_Mixer and SDL_RotoZoom