Rusty is a game developer and filmmaker. Creator of Box Cat.

Find him on Twitter. His favorite color is blue.

Angle Isle Postmortem

Angle Isle logo

Angle Isle is my second Ludum Dare game. Here’s how it happened.


The theme “Tiny World” arrived at 6pm PST. After throwing out the first 60 minutes of work on a bad idea, I started sketching in Photoshop for inspiration. Soon after I developed a 45 degree angled art style. It seemed interesting enough, so I spent the rest of the evening creating tilemaps and characters.

The angled tiles


During the morning shower I tried to figure out what the hell I was making. I liked the world, but most of the characters didn’t fit. I only liked this angled bird and before I dried my hair, the bird became the hero.

The hero

After a quick cup of coffee I started the code. Angle Isle was coded in Flash Builder on top of the excellent Flixel engine. I don’t have much experience with Flixel or Actionscript, so I was often reading Flash Game Dojo and the Flixel documentation.

I hoped to create the levels in Tiled Map Editor, so I first worked on importing TMX files. This took longer than I anticipated. By the time I got a test level loading, I needed to break for lunch.

In the early afternoon I coded and animated the player. The desktop playtesting was done with an Adaptoid and my original black N64 controller. Once the bird’s flapping felt pretty good I started thinking about levels.

A large chunk of time was then spent on level transitions. I could have made it simple, but I wanted the levels to change dynamically. The player would seamlessly fly between one level and the next. It took awhile, but I think it was worth it.

At this point it was late. I needed to start designing levels, but there was much to tie up including touch controls, the breeze, and the shark. (More on this later.) I was delirious by 4am and went to bed a half hour later.


I slept two hours and awoke a bit groggy, but anxious to start. First task: writing music. The gameplay theme was written in Textmate with MML. The tunes didn’t flow, but In four hours I had a passable melody.

Your browser does not support the audio preview.

I moved on to sound effects and finished them with six hours remaining.

The levels still weren’t designed. I set a twenty minute repeating timer and tried to make, playtest, and finish each new level before it went off. This was a tall order. I spent extra time in the early levels trying to figure out what the player should experience and learn. I also found the tileset incomplete and had to spend more time adding tiles.

Halfway through level design I stopped to create the title and ending screen. This took another hour. When it was time to submit I had squeezed in 8 levels.

What Didn’t Happen

I had started to add an antagonist to hunt the player in later levels. The shark would jump out when the player was trying for the lower hanging berries. But time grew short and the shark was cut.

I also hoped to add a continuous day-night cycle with parallax stars. Ran out of time.

Clearer Communication

When the player collects more than half of the fruit on a level, a wind appears to the right and the player can ride it to the next level. A bird chirp sound effect signifies the “exit wind” is available. Although I like the chirp sound, it doesn’t communicate a connection between the berries and the wind. I should have used a wind visual and sound effect instead.

Mobile Port

I submitted an iOS port to Apple the morning after Ludum Dare. But as I’ve been playing it more, I’m less satisfied with the performance on older iOS devices. Instead I’m looking into porting to Axel or perhaps Objective-C for the post-compo version.

UPDATE: It’s now on the app store!

Angle Isle app icon


Ludum Dare is awesome. I’m amazed by the results of some good ol’ pressure. Angle Isle blew away my previous entry and I’m pretty happy with the results.

I’d love to hear your feedback. If you entered the competition, please take a chance to rate my entry.

Tagged with games Ludum Dare iOS music
  1. vincewilcox reblogged this from rustym
  2. rustym posted this