I’ve known about LD for a few years, but have never participated before. On Friday I asked Steve if he would be interested in being sleep deprived for the entire weekend and he was! Once we decided to join we anxiously awaiting for the theme to be announce and couldn’t focus on much else.
We added an extra layer of challenge beyond building a game in 72 hours. We wanted to try and build a lite version of a game that we could submit to the App Store. Going into it we knew it was a crazy and foolish idea, but we wanted to push our abilities and focus to their limits.
Even though 72 hours is technically 3 days, the schedule below is broken into the 4 “days” or awake periods between naps.
Normally Steve and I work remotely, but we live close enough together that face to face meetings are possible. We decided to setup a joint office for weekend so we could brainstorm efficiently and motivate each other. I setup a folding table next to my desk and he lugged all of his stuff over.
Steve worked on OSX using Flash, Photoshop, and a Wacom tablet. He sketched out a lot of art on paper prior to working in Flash to make sure we nailed the look. I worked on OSX as well using XCode 4, Texture Packer, Particle Designer, Audacity, GIMP. We were targeting iOS so I worked with cocos2d-iphone and chipmunk. We were both very familiar with the tools and frameworks that we were using so we didn’t waste a lot of time learning our tools.
Every LD has a theme and this year it was “Alone”. We were ready to shout out ideas but when we saw the theme all we heard was crickets. “Alone” was one of the themes we were interested in but we knew it would be tricky coming up with a good game. Luckily the silence soon ended and we started brainstorming.
Everyone started throwing out ideas and Steve scribbled them down. Whenever we would get stuck we would read through the list and try to go further with an existing idea or try to take it in another direction. We initially approached the process by trying to come up with a story or situation that fit the theme. This generated a lot of ideas but it was hard to come up with a game mechanic out of many of them. Here are some of the ideas we had:
- Ghost who wants to be alone and tries to evict the living
- A mute and deaf person (possibly blind?) who is alone in the world and needs to find a way to communicate
- Stuck in space
- Stuck at sea
- Buried alive
- Post-apocalyptic survival
- Famous and trying to buy friend
We ended up expanding on the idea of someone who wants to be alone and can’t seem to get away. We decided that our protagonist would be a rockstar who was being chased by a horde or adoring fans and the player would guide them along a platformer-esque level to the tour bus.
The rockstars would be members of the four person pop group The Four Hats. Their debut album Hat Tricks is also introduced in the game.
The Four Hats in “Room to Roam”: Rockstars have it hard. Millions of adoring fans, mountains of cash, and no alone time. How is a musician supposed to write new music when chased by the paparazzi or the hordes of adoring fans? In order to find the solitude that you crave and unlock your inner muse, you must outrun fans and make your way to the studio. Don’t get caught by the paparazzi on your way there or your creative energy will be sapped dry.
The initial idea included having all of the members of the band as playable characters with different abilities that would allow you to navigate the levels in unique ways. The levels would take the band through multiple eras of music to provide variety. Clearly that was biting off a bit more than we could chew in the time that we had.
Why rockstars and music? We had at our disposible a very talentled musician who has written music for our other projects. We wanted to work on a project that showcased his strengths as well as ours. He could easily do the creepy music that would accompany the ghost story or the stifling silence of being buried alive, but who doesn’t want to be a rockstar for a weekend.
Flesh on the Bones
Next we started to flesh out the idea. We worked on the sound, did sketches to get the look, settled on the mood, and worked out the details of the mechanics. Once we were on the same page and understood what we were making we each started working on our own parts.
Getting the style and animation of the first character to match what we were aiming for brought Steve to our first nap break. During that time I got a basic prototype working of some platforms, and obstacles, the controls, and a horde chasing you.
On Day 2 we started adding actual art assets into the game. I had put together a basic animation system on top of the existing system in cocos2d while Steve finsihed up the animations. We had also settled on a naming convention and system of organization to simplify the code and avoid rework.
Once we had the character in game, Steve moved on to background elements, obstacles, and other art assets. At this point our pace matched up really well. Art and code were never too far ahead of each other.
As the day drew to a close we had all of the basic gameplay in place with art assets and an awesome instrumental version of the music. We did some playtesting and identified the pain points to work on the next day. One of the issue we had was that the obstacles weren’t interesting enough to make the game varied and interesting. We had a few ideas for “traps” or “enemies”, but hadn’t added them into the actual game yet.
Sunday was a busy day and by the end of it we had a game. Even though we were not in the 48 hours contest, it still felt good to have a complete game by the 48 hour mark.
A few things that we worked on:
- Everything else: menus, icons, etc
- Level loading, gameplay tweaks, enemies
- Writing and recording vocals
- Writing and recording menu music
Up until this point we had been randomly generating levels, which worked for testing purposes, but it led to uninteresting levels. We decided to switch over to hand built levels.
The best part of the day was that we had the final cut of our main gameplay music. “Room to Roam” is a track written, produced, and performed by The Four Hats. You can check it out on soundcloud:
If you need music for your game, we can put you in touch with negapixel (or The Four Hats) as he is available for contract work.
Building the level was a lot of fun. It also gave me a lot of time to play test the game and burn off a lot of warts. Building the level by hand gave the game a good pacing and slowly introduced elements in a balanced way. Since we didn’t have time to build level selection screens, or other elements that would create a polished multi-level game, we made sure the level was decently long and ended with more challenging play.
Building and playtesting the level took a lot of time. I had been storing the level config in a plist, which is not at all visual, and definitely added some friction to the process. After reading other LD post-mortems I realized we should have been using a pixel map. It would have been a quick way to implement a simple visual level editor. It is definitely a technique that I will be using in the future.
Polish / Cleanup
We finished the basic game and added a lot of polish ahead of schedule. We knew we didn’t have time to add additional characters or levels so we focused on wart removal and polish. We spent time putting together sound effects, button states, an intro cutscene, and particle effects.
In the final hours of the competition we were as ready to submit we were going to be. We continued to playtest the game because we were addicted. It was a great feeling to realize that we were no longer playing to test, but because it was fun.
What Went Well
- Came up with a fun concept that excited us
- Balanced work, sleep, and breaks to stay productive
- Familiarity with cocos2d and tools
- Great teamwork
- Music, art, and gameplay meshed together into a consistent experience
- Had time to add a lot of the polish we hoped for
- Reduced scope to make schedule realistic and focus on quality
- Time constraints focused the project
- Lots of testing
What Didn’t Go Well
- First time building a platformer. Learned that realistic physics didn’t equal fun.
- Took a bit longer than expected to get gameplay feeling right
- Took too long to build level
- Didn’t choose a good format for level editing
- Wasn’t familiar with any existing level editors
- Should have used a pixel map
- Took longer to animate initial character than expected
- Had to redraw some frames a few times to make the action smooth
- Had to reduce the scope of the game
- The kittens we rented ended up mostly causing a distraction when we didn’t need them for the theme
- A few minor bugs slipped through (expected given the time restraints)
- Building an iOS game for LD has caused fewer people to be able to play than if we built a flash game
We are going to submit Four Hats to the App Store after Apple’s holiday break and will continue development on additional levels and characters if people enjoy the game. We originally pictured a much bigger game, but the 72 hour time limit restricted what we could build. In the full version we pictured:
- Four playable characters each with a special ability
- Switch between characters to work through levels
- Multiple eras of music by the Four Hats with levels to match
- An EPIC sound track
Prior to submitting the free version we will fix a few minor bugs that we missed in our initial testing. This should only be another hour or so of work.
Ludum Dare is awesome! We would definitely do it again. We are happy with what we managed to build in a weekend.
It would be great if there was an iOS focused version of the contest. I am not sure how to solve the distribution issue, but if all the participants had iDevices it would expand the audience.
Building a polished app in a weekend is extremely difficult. We already knew this going into the process, but we wanted to challenge ourselves. What we found is that it is possible to build a fairly well polished prototype or lite version of a game, but adding in the extra content required for a full featured game takes a lot of time.
See art, video, and photos from the project on our live blog post from the event.
Check out our page for Four Hats here.
Cross posted on our blog.