8bitmatt

itty 8bitty Postmortem

itty 8bitty logo

Last weekend I participated in Ludum Dare for the second time. You can view my entry here, and play the game here. It almost didn’t happen. The week before, I kept telling myself I wasn’t going to do it this time because I’ve got a huge side project in the works (super excited btw!). Friday night I went to dinner with my cousin, still convinced I wasn’t going to even think about Ludum Dare. He ended up having to leave a little sooner than I thought so I was home and bored. I finally gave in and decided I should take a creative break from the side project and enjoy this weekend… and what better way to do that than spend the next 46 hours making a game. Yes I said 46. It was already 2 hours after Ludum Dare 23 had started that I finally checked twitter and the website to find out the theme was "Tiny World."

Friday

I came up with the idea for my game pretty fast (maybe 15 mins). I had a lot of goals in mind this time around. I knew I wanted to make this game more polished than my last entry. I wanted to have enough time to create music and sound effects. I wanted the game to be challenging, simple, and fun. I wanted there to be discovery and little to no instructions. To meet all these needs I had to stay away from creating a platformer or similar style game (I think that’s probably out of my skill range at this point and it would have eaten up all my time). That was fine with me. It helped me avoid a lot of cliche ideas about a tiny world. I decided to make a puzzle game. My initial idea was to have a tiny puzzle that the player had to solve based solely on feedback (if they made a correct move or not). I thought that would be too hard for most players to grasp without instructions; so, I decided the player should see the puzzle then it will shrink and they have to solve it from memory! Perfect.

I wrote down a few simple notes then started designing the first world in Photoshop at the NES resolution of 256px by 240px. By the end of Friday night all 10 worlds were designed and I had come up with the name "itty 8bitty". The game starts with memorizing an easy two moves. Each world adds two more moves. So the maximum number of moves a player will have to memorize is 20 (world 10). I played around with the idea of adding more moves per world but this number just felt right. The game didn’t get too hard too fast.

world 1 puzzle

I kept the graphics simple to have an artistic feel to them, save time for other things (like writing music), and to more importantly help the player focus on the puzzle. I tried to get across the idea of a player and goal with two colors. Blue is the player and green is the goal.

To solve two design problems I included one simple instruction before the first world. "Remember This". It’s just enough to help clue in the player to what’s about to happen. This also ensures that the player isn't expecting to interact with the puzzle during the "remember phase" (before it shrinks). The simple graphic style is really important during this first experience, because even with instruction the player has no idea what they are supposed to remember and why. I think more complex graphics could have gotten in the way.

arrows around puzzle

During gameplay, the arrows are positioned around the shrunken puzzle to indicate that they are related to it; they act as wordless instructions. If the player still hasn’t figured out what to do the arrows guide them; they’re the only thing on the screen for this reason (it also looks minimalist and awesome). I made the arrows clickable so they can be interacted with directly but the player can also use their keyboard keys, whichever is more intuitive to them. As a nice bonus, because the arrows can be interacted with this makes the interface perfect for touch devices. The Xs that appear when the player makes a wrong move are also positioned around the puzzle on purpose. They cannot be missed. They are supposed to distract the player. To make sure the game had good visual feedback (especially since sound wouldn’t always be available or turned on) I made the puzzle flash green or red for correct and wrong moves. This is more important for the feedback of correct moves since an X appears for wrong moves.

Another subtle part of the design is the "World" screens. I put the total number of worlds on each of them to remind the player the game is really short and they’re almost to the end! I think this makes people who would otherwise give up quickly keep trying.

To add some challenge to the game, starting at world 6, tiles around the main path are taken away. This does a few things:

  • distract the player’s attention while memorizing
  • appear intimidating / overwhelming
  • mess up certain strategies (like counting tiles around the path)

The further you get, the more tiles are taken away.

Saturday

Saturday morning, I started development. There’s not a lot to say here, you can view the source to see how it works. It’s really simple html and javascript. There’s no object oriented code, it’s all just kind of hastily thrown together. I used the Zepto.js library for convenience when manipulating the DOM. One interesting thing I did with the js is try a new technique called semicolon-less javascript. It’s neat. Makes js a lot more readable and enjoyable to write (I’ve been spoiled lately by using CoffeeScript). The reason this works is because automatic semicolon insertion is a feature in javascript. There’s no performance hit. Read more on it here.

Mid-day Saturday I took a break from writing the game logic to create the sound effects. I wrote everything in MML. Never opened GarageBand or any other sound app, just went straight into making sounds with MML. Took about 30mins to an hour of messing around to create everything and tweak them to my liking. Luckily they all sound like they fit perfectly over the music. In hindsight, I’d probably write the music first then design the sound effects to match; I’m lucky it just happened for me automatically. My favorite sound is probably the shrinking sound.

Title Screen Move

mml code for title screen move sound effect

Title Screen Select

mml code for title screen select sound effect

Shrink

mml code for shrink sound effect

Correct Move

mml code for correct move sound effect

Wrong Move

mml code for wrong move sound effect

Success (completed a world)

mml code for success sound effect

Late Saturday night I had the game finished, I think the last thing I wrote that night was a basic html5 audio implementation to get the sound effects working.

Sunday

I practically spent all day Sunday composing the music. It’s tough to write 4 small songs in a short amount of time that you don’t hate after a while. I wanted this game to feel like a real NES game so music was important. I threw away about 4-5 song ideas. I spent a good amount of time on each of them but they just didn’t "fit" the game.

Gameplay song

I don’t know why but I’ve noticed this similarity in a lot of old NES soundtracks; there’s always some jazzy/blues type song, so I needed one of those. That’s the song that plays during gameplay. The bass line is the only thing that really makes it feel bluesy. If you listen closely to the song you’ll notice some high pitched notes moving back and forth, it subtly represents a ticking clock. Makes it sound like "thinking" music.

Game Over

The game over song (if you can call it that) is a short tune that completes the blues musical idea. Just runs down a blues scale in a fancy way. Love the vibrato at the end.

Title Screen

The title screen song is a cheery tune. Similar in style to A LOT of NES title screen music. Kind of reminds me of "Donkey Kong Jr." or "Nuts & Milk" (style not melody).

The End

The ending song is one of those sad but happy songs. A song that might get you emotional while you reflect on your accomplishment. I doubt anyone has those feelings with my small game but you get the idea.

When I get some time I want to take these songs and write them in MML that way they really sound like the 2A03 and I can release a mini nsf soundtrack.

It’s difficult to talk about the music creation process. When I write music it’s more about feeling than anything. I never know what chords I’m playing, or what mathematically is "supposed" to complete the next phrase. I just feel it.

Conclusion

I’m really glad that I participated! Like last time, Ludum Dare challenged me and inspired me to work harder in everyday life. Some of my favorite moments include getting to watch people play for the first time. It confirmed my design decisions. Everyone is smart and can figure out what they’re supposed to do almost immediately. It was very satisfying to see that happen. I’d love to hear what you think of the game, and if you participated as well, go rate it!

Extras: Ludum Dare 23 was the 10 year anniversary of Ludum Dare! To celebrate this, I worked that number into my game: 10 worlds. Also, after world 6 the player gets 10 seconds to memorize.

As I’m writing this post, I just saw on twitter that "itty 8bitty" got a small write-up on indiegames.com! Rad. Check it out.

1 comment (Add your own)

1. Joe wrote:
Grimm, you are awesome. Just sayin'

April 28, 2012 @ 1:38 PM

Add a New Comment

Enter the code you see below:
code
 

Comment Guidelines: No HTML is allowed. Off-topic or inappropriate comments will be edited or deleted. Thanks.

© Copyright Matt Grimm 2014. All Rights Reserved.