Tuesday, February 1, 2011

Design Post-Mortem

Here's my thoughts on how we fared with our 48 hour endeavor. My viewpoint is that of designer, programmer and I guess a bit of producer. I'll do design first because that was my primary task.

After hearing this year's theme and drawing complete blanks for a while (at least I did), a bunch of us decided to set up a brainstorming room for coming up with game ideas. I feel this was essential to our success and being able to bounce ideas around with others certainly improved them. The idea for Hamsters and Plague started forming from a combination of bunnies, copulation and game of life. Yes, our original idea had bunnies instead of hamsters. In its raw form the idea was this: the player forms pairs of bunnies and when they copulate, avoids spreading the population near bunnies killed by a plague. If you've read the present abstract, you will notice that the core idea remained the same.

The exact method of manipulating bunnies had not formed 100% clear in my mind yet so I left that one open to experimentation. When I started to think about how to prevent bunnies from breeding immediately after being spawned, I ultimately came up with the idea of having them grow up from babies to adults and eventually die away. This was all during Friday. At this point there were also tombstones in the design, left behind by dead bunnies. Tombstones would also vanish after a while. After this the design was not very lively, it stayed essentially the same with some changes made during development and initial testing. The project was called RuttoPuput when it started.

During development there were some slight changes. Like changing bunnies into hamsters. There are two problems with bunnies and squares: ears. The shape of the head with ears is too tall compared to its width. Well, no problem there, enter another animal that copulates like no tomorrow: hamsters. After thinking through some different manipulation techniques, I decided to try a 2x2 rotator first, and as we can see from the final game, it was a hole-in-one. At this point we decided that the player cannot move plague victims or tombstones. After trying this, the tombstones went flying straight out of the window, because they made the game almost impossible to play. So no graves for old hamsters, not even a moments peace - the new generation will mercilessly breed upon their remains.

Actually one of the latest things to decide was the game goal. There were several options: fill a number of tiles with hamsters, breed a number of babies in one cycle and finally, the one we ultimately selected after playtesting, survive a number of cycles. At first the cycles went by wicked fast (2 seconds) and plague destroyed the poor hamsters every time. We slowed them down to 5 seconds per cycle: enough to do some damage control, but certainly not enough to solve every problem at once. The player needs to identify the most critical spots and focus attention there. Another small tweak was in spawning: initially, we had a spawning sequence of male, female, male,... with doctor as last (tenth) in the sequence. This made the game a bit too predictable, so it was changed to random, retaining the distribution.

We also experimented with having some hamsters born as teens instead of babies to combat the "single generation tactic" (where all your hamsters would be of the same age, except the one cycle when some are old and others are babies). However, this made survival too random, and ultimately I decided to hinder that tactic with level design. I don't know if that's even the optimal tactic but it does make the population more manageable.

With all these changes the game started to suddenly become a bit too easy. Keeping the hamster population low was manageable and they got nowhere near the plague in our test level. Enter scoring! To promote risk-taking, I decided on an exponential scoring formula: number of babies each cycle, to the power of two. Finally, we had enough time to make multiple levels, so we could also make them game harder with level design. Unfortunately we did not have enough time to test these levels so much (I managed a couple of play-throughs for our nine levels), and the difficulty curve ended up rising a bit too slowly. Fortunately, it's a jam, and we're not supposed to have a fully polished game.

Overall, I must say it would've been really tough for us if the initial idea had not turned out to be as good as it did. Since I was doing programming and design, there was not that much time allocated for design what with all the small programming details. If the idea had turned out to be not-so-great, we would've either been stuck with it or made a game that would be far less complete than what we got now. On the other hand, doing design and programming has certain benefits: fast test cycles. If I wanted to try something, all I needed to do was to get into the code, tweak and run.

Lessons learned:
- Group brainstorming is good, don't let the competition aspect get in your way.
- It's really hard to design difficulty curves when you're the only one who can test majority of changes.
- Being designer-programmer has its pros and cons. Less time for design, but faster test cycles.
- Certain aspects of design will only emerge through prototyping, so prototype early, prototype often! That is, unless you are Reiner Knizia who apparently plays his games inside his head.

No comments:

Post a Comment