I’ve been looking at the LD compos for a couple years now, always wanting to do one, but due to various life events (generally, caring for my toddler) I was unable to join in. This year was different. We were on vacation, and would be driving home on Saturday. This gave me 5-6 solid hours in the car to work on it, so I figured, why not!
Once the theme “Escape” was given, I was instantly unable to figure out anything. I knew I didn’t want to do a standard, expected type of game… something predictable. And I knew that I would be writing it for iOS, meaning that basically 98% of the reviewing audience would likely not be able to rate it, instantly guaranteeing that I will not come anywhere near placing… which is fine. The reason to do this is to do it… to get my brain working… to get something accomplished… and I did.
I started thinking out of the box a little. Journey had an album called “Escape”, containing the hit “Don’t Stop Believing”. Seems like a good point to start with. But honestly, I didn’t really settle on this until Sunday morning.
I spent Friday night thinking about something to do, a game mechanic or somesuch. I also got the git repository started up, and came up with a codename for it in my current codenaming theme, cheeses. ”Raclette”.
Personally, I find that I can’t get started on a project until I have a name for it, and can start the source repository… so I started using code names with a cheese theme. It works for me. It let me get the project going, and got the process of naming it out of my head so that I can just start working on it.
Saturday afternoon, in the car, first I made an icon for the game, a fancy “R” for Raclette. I know this seems like the wrong order to do things, naming it then giving it an icon, but it was necessary for the way my brain works.
Next, I started up the Xcode project. OpenGLES template project, removed GLES2, added BL2D (my 2D sprite and tilemap library, released last fall), did other general GLES2 cleanups. Then I brought in the hooks for the BL2D engine, cleaned up the sprite and tilemap PNG spritesheets to bring them back to “font only” condition, to satisfy the rules of the compo.
Note: all of this is visible in the following timelapse video, 0:00 thru 0:23 or so.
One of the other things I added in the car ride was the game state engine. After working on “The 7th Guest: Infection” I came to realize that for the way I work on games, having the state engine in place earlier rather than later is very much welcomed. I had worked on a state engine for a game last week, so I essentially worked out a new version of that from scratch.
At this point, about 6 hours of work in, we got home. I spent much of the evening helping out around the house and unpacking. I got a few extra minutes in to integrate the tile/sprite engine a little more. I
Sunday, I was able to spend a lot of time in the afternoon to work on it. I managed to somehow clean the entire house, and play with my kid beforehand as well, so that was nice. While doing all of this, I thought about a game mechanic that involved clicking or drawing on the screen, and it color cycling. I wasn’t sure where it would take me, but I felt it was an ok place to start. It was also about this time that I almost gave up completely, feeling unable to finish in the time available to me.
Then it hit me. The lyrics to the song were the basis for the game. E5c4P3. Don’t Stop Believin. Streetlights, People. Escape the streetlights. You’re Steve Perry.. too specific. You’re Perry. Got it. People attracted to streetlights like moths. When you hit some streetlights they go out. There we go. Run around, hit streetlights, people attracted to them will scurry away.
I then spent a lot of time getting simple cheesy people graphics and a horrible streetlight graphic worked out. Horrible graphics are better than no graphics. By the time dinner rolled around, i had the basic mechanic of the game working, but no real goals or score or anything. My wife suggested that the guy gets zapped from the lights. Danger! Great! Then I added health bar in a half hour. Added a few more states to the game state machine for “died”, hook the state paths around, and i have a basic, mostly feature-complete game!
The initial engine effort i made was essentially abandoned, but I did use a remnant from it to do the color cycling background for the intro screens, so all was not lost.
So what’s left for it? I want to get it into the App store asap, so that people have more of a chance of trying it out. After judgment period, I’ll be adding in things I ran out of time to do: sound, progressively harder levels, more clever people, graphics for the “street” rather than just black, a time limit, and perhaps high score saving.
I know it’s not the best game ever, but I made it. I made it in about 16 of the alotted 48 hours to do it. I know I could do better, I know I have done better, but I started it, I did it, and I got it done. And I think it’s a fairly amusing stretch from the song.
And here’s the gameplay…
Link to the compo page for “Streetlights”. To build it, you’ll need Xcode 4 with the iOS SDK (included with Xcode 4).