Wasting the Night
The Tower. Seemed pretty straight-forward, but I still googled it for inspiration and to see what possible alternative meanings there are. I saw something about a tug boat, as in “someone who tows”, and thought that was sufficiently out of the box to be considered clever, and would allow me to make a game that really stood out from the rest since it wasn’t about a big circular stone building.
After considering boats dragging other boats, an idea formed about a space game in the style of Elite 1 / Wing Commander, where you played the role of a Tower responsible for rescuing stranded ships. I had some vague ideas about trading as well.
Instead of going to bed after seeing the theme as I had promised myself, I stayed up another three hours, building a first prototype of the game (you can try it here). I didn’t go to bed until I realized there was no reasonable way I would be able to finish the game with all the art it would require.
Starting the Game
After some six hours of sleep/dreaming about a new game idea, i suddenly woke up and realized what direction I wanted to take.
Just before I woke up, I half-dreamed about the Yoshi’s Island title screen, and that type of rendering would fit perfectly with the code I already had. I had the code to render hundreds/thousands of z-sorted sprites fast, and I had the basic code for mouse interaction and applet support. I also knew from earlier that I could do tiny pixel art fairly successfully in short time.
It seemed a game like The Settlers would fit fairly well in that style, so I took the obvious route and decided that the task was to build a huge tower. I mean, it WAS the theme after all, so why not just slap one in there? I made some art, did some basic interaction, and coded together a horribly hacky Job class for giving the peons tasks, and things were going great.
Fixing the Balance
Of course, by now the game was horribly unbalanced, and there was no win condition, not to mention that The Tower wasn’t all that central at all. I thought about having higher tower mean you could have a higher maximum population, I thought about having a timed game that rewarded points for how fast you could finish the tower, but nothing really worked. And there were no enemies!
But then it hit me. Why not have the tower spit out the enemies? Then the task would become to bring the tower down, and there would be a natural way for the game to become more difficult as you came closer to your goal (the tower would spit out more and more enemies). I decided to keep the time based scoring, and went with this idea.
Unfortunately, random maps would have to go. There was no way for me to be able to write a good enough level randomizer that made playable maps in the short time I had left, so I kept the hand drawn test map I had made and kept the randomizer using the fixed seed I had used for testing. This really helped a lot for making sure all users had a similar experience.
I toyed a bit with the idea of having the user read some instructions before starting the game, but since most people just click past those and the fun in the game was mostly about trying to tame the very peculiar AI, I skipped that and just added tool tips to the houses. I chose not to mention how to Break the Tower since it had the same color as the rocks you were already trained into mining, and I figured that clue would be good enough.
Then there was pacing and balance testing, and heaps and heaps of tweaking.
Adding the Polish
As final polish, I finished up the intro screen and added a win screen. I decided against a loose screen, as detecting when the player had lost (out of rock and no barracks? no more peons and no residences?) was too hard, and in reality the player would’ve lost long before those conditions happened, and the besides, the game was simple enough that the player would rarely lose once he had built some momentum.
I like that, by the way. Games don’t have to be hard, as long as they’re interesting. There’s really not that much interaction in Breaking the Tower, it’s mostly about taking care of your little ant farm of tiny pixel people, and it seems to work fairly well.
With just a few hours left, I decided to add sound. 22KHz, 8 bit mono sound, for maximum retro feeling, all generated in run time. Surprisingly, it went really well, although in retrospect the death sounds are confusing and sound too similar to the spawn sounds.
I had estimated the play-through time at about 30-60 minutes, and decided that was good enough, so I packaged it and released it.
Morting the Post
* One very nice thing with making games for a competition like Ludum Dare is that you know exactly who the target audience is.. it’s yourself. It’s people insane enough to write a completed game in 48 hours. This makes it a really fun experience. Instead of asking myself if the player would appreciate some detail, I just asked if I would.
* I probably should’ve spent more time on the pathfinding. Right now, it’s
10 Walk towards target
20 If not collide, goto 10
30 pick random direction, walk for a second
40 goto 10
And that’s obviously not very advanced. It works surprisingly well most of the time, though, and it does give the peons some apparent personality.
* Making the houses give out jobs to peons in sight works OK, but it would’ve been better to build a big global task list that free peons pick jobs from. I realized this far too late in the development.
* Many people don’t get how to Break the Tower. I should’ve made it more clear that you have to use masons. And some people take over 1.5 hours to beat the game, which feels like too long.
* The art direction was perfect for the duration of the competition and the level of my art making skills!