Ludum Dare Post-Mortem: Four Hats

Ludum Dare is a 48/72 hour game making competition. The 48 hour comp is for the teams of one and the 72 hour jam is for larger teams or those who don't full follow the main comp rules. We entered the jam because we wanted to enter as a team.

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.

Process

Even though 72 hours is technically 3 days, the schedule below is broken into the 4 "days" or awake periods between naps.

Day 1

Setup

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.

The Reveal

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.

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

The Idea

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.

Day 2

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.

Day 3

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
  • Playtesting

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:

01 Room To Roam by The Four Hats

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.

Day 4

Level Building

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.

Playtesting

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

What Next?

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.

Conclusion

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.

#LD22 - Alone

Editor's Note: This post is in reverse chronological order. Apologies for any spelling and grammatical errors. Sleep tank is low.

FINISHED - Monday 7:50 PM EST

Done! We have submitted our entry to Ludum Dare. You can look at our submission here. You can check out our game info page for Four Hats here. We will write up a post mortem soon, but need a rest first. It was a blast and I am really happy we did it.

During the last couple of hours, we tweaked gameplay a bit, changed the subtitle, and polished random things.

Monday 4:40 PM EST

Some screen shots:

Monday 3:30 PM EST

Ooops... It has been awhile since the last update. Need to grab some sleep and get back to work. After waking back up and eating some food the rush was on. We still needed to finish level building, the intro cutscene, sfx, and the end of game screen.

I put my head down and pushed through until I wrapped all the remaining bullet points up. Luckily we have been testing and testing and testing the game between changes to the code and assets, so most of the odd bugs and warts have been removed.

What's Left

We still have a few art assets to put together in order to clean up a few of the screens. We also need to play through to hunt down bugs and add any extra polish we can squeeze in during the next few hours.

I would like for us to be done an hour or two ahead of schedule so we can put together our screen shots, put the app up on testflight, possibly record video, and submit the app before the LD servers get overloaded at submission time.

 

Sunday 9:41 PM EST

Some gameplay recording on my iPhone with my iPad. Low quality, but works in a pinch.

 Sunday 8:55 PM EST

 

48 Hours! LD48 has draws to a close in minutes but there are 24 more hours left to the LD72 Jam. If the Jam had the same schedule as the comp, then we would still have a game but with less content and polish than we would like. At this point we are in the polishing stage. The game is feature complete, but still has some rough edges. It will be interesting to see how far we can get in the last leg. Unfortunately we won't have as much time as during the past 48 hours.

Sunday 2:45 PM EST

Game Status:

 

  • Menu is functional
  • Start of the level nicely introduces the player
  • Need to continue level building
  • Add polish to various actions
  • Still need sound effects
  • Feels like a game w/ good potential. Fun to play
  • Music with lyrics under construction
  • Need intro cutscene
  • Need a way to pause

Our Status:

  • Breaking down the temporary joint office to prepare for rejoining the world
  • Continuing development remotely
  • After getting a more reasonable amount of sleep last night productivity has shot back up
  • We will likely have a lite-lite version ready by the buzzer
  • Not sure how to submit the binary, will likely use testflight
  • Want to record gameplay video, but need to do it off the device
  • As sane as we were when we started

Sunday 1 PM EST

We have an icon and a title screen:

Sunday 9 AM EST

Back awake and working. There are 12 hours remaining in the LD48 comp. Since we are doing the LD72 Jam we technically have another 36 hours. We already had Monday plans and obligations before we decided to jump in and do this, so we effectively have today. Tomorrow we will likely only have time to tie up loose ends.

What we have left:

  • We need better levels (we currently randomly generate them without much care to object placement)
  • Add "enemies/traps" to levels to make them more interesting
  • Visual fluff / polish: particle effects, button press down states, transition animations, etc
  • SFX
  • Pause/Resume, title screen, all that extra stuff that makes a game a product
  • An icon!

Sunday 1:30 AM EST

Introducing the band:

Sunday 1 AM EST

Took a break from 9 to 1230 to eat, rest, and socialize. We are back at it now. The instrumental version of the music is done. Vocals to be added tomorrow. It fits the game like a glove.

Now with music and the all important Taco Graveyard splash screen, we have something nearly resembling a game. Yes splash screens are that important!

Back to work...

Saturday 7:44 PM EST

Saturday 7 PM EST

Animated death sequence. Tweaked controls. Added more variety to backgrounds.

Currently working on:

  • Adding more variety to obstacles.
  • Animating end goal objectives.
  • Sketching traps / interference related objects.
  • Listing out everything that is left before we are done.

Saturday 5:36 PM EST

Saturday 4:24 PM EST

Basic parallax backgrounds in place:

Saturday 3:40 PM EST

We are 75% of the way through Day 1. In the wee hours of the night we got a bit worried because we hadn't built a platformer before, but things are shaping up well. We have a solid workflow going and are comfortable with our plan. We reduced the scope of the game a bit to simplify game play and make the timeframe manageable.

Latest screenshot:

Saturday 11:55 AM EST

Parker Levine - Rockstar - Lead Guitarist & Vocalist

Saturday 11:22 AM EST

Game summary:

Four Hats

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 to 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.

Saturday 11 AM EST

After some rest, breakfast and coffee we are back in it.

Saturday 5 AM EST

Starting to introduce typos into every other word. Time to nap and regroup. Game play is shaping up. Will detail exactly what that game play is in the morning (and by morning I mean when I wake up):

Saturday 3:00 AM EST

Tweaking controls until they feel solid. Animation is well under way. From sketches to Flash assets:

"Gameplay":

Saturday 1:55 AM EST

Working through basic game mechanics and character animations. Things are moving on screen, hopping jumping and running. Unfortunately at the moment all buttons, characters, etc look like:

 Mr. Blocky is happy because he is all alone in this universe of his.

Friday 11 PM EST

The theme of Ludum Dare #22 is "Alone".

Our main characters can never seem to get any alone time. They are forever in the pursuit of lonliness. Brainstorming:

Before It All Began

We just signed up for the Ludum Dare 22 Jam. We signed up for the jam rather than the comp because we wanted to do a collaborative project. We usually work remote, but we are going to be moving furniture around to construct a makeshift office for the next 48-72 hours.

We will continue to update this post as the Jam progresses. Can't wait to find out what the theme is.

We are going to try to complete the Jam and end with something that we will publish in the App Store. Real artists ship.

Ingredients:

  • Platform: iOS
  • Language: Obj-C
  • Frameworks: cocos2d, chipmunk, more depending on theme
  • Graphics: Photoshop, Flash, Wacom
  • Music / SFX : Mouth + mic, 8-bit magic box, telecaster, whatever else we can make noise with
  • Other: tacos, agua, pellet stove