“I like to jump. You like to jump. My mom likes to jump. We all like to jump.” – My 6th grade jump instructor

Little Loki Escapes from Hell, which I developed at Liquid Generation, was my first experience developing a reflex based platformer game. It was the result of a bit of brainstorming and a good deal of freedom during the calm storm between projects. It was the type of project I’d been wanting to develop for a while and I dived in. I invite you to read about a story of its development.

It went something like this…

My coworker, fellow blog editor Chris Rock, had lost his mind and decided to make a platforming engine. “What are you doing Chris?” I said, ” Have you gone mad?” Apparently he had and said he was working on a new philosophy. A new way of life. He named his creation the Liberty Engine. He worked on it diligently, obsessively, while I twiddled by thumbs and spun around in circles in my chair. When I regained consciousness I found a new file on my desktop. An early build of the Liberty Engine, eg “Rock’s Platformer Engine 29 – 2004.fla”.

So now that I had an engine I wanted to make something to put it to the test. At the time we were trying to figure out how we could work together to code projects, which Flash tends to make a bit more difficult than it has to be. I came up with the idea for the game while driving home from work one day. I wanted to make a game focusing on jumping – something that was simple to play because of one action button – jump! – yet challenging enough for the skilled. I sketched out some thumbnails to layout the idea visually and decided that I could make it work.

Ice Climber for NES

I was inspired by Nintendo’s Ice Climber, one of my favorite games growing up, and this simple-yet-addicting Flash game I ran into – and quickly became obsessed with. Having these games as inspiration made it easier for me to understand what I needed to do to make my idea work.

It only took me a day to get a prototype of the game up and running. I didn’t have a definite theme for the game when I started so I decided on the formatting of the game and used boxes to serve as placeholder artwork. I had to think about how large I needed to make the character to give the art-team the freedom to make a recognizable protagonist while still allowing enough room to have a good portion of the stage on screen at once to for the player to know what was going on.

Before Little Loki was Little Loki.

From the start I had a goal of making a game that made use of a level editor. It can be a hassle laying out stages within the Flash IDE so I designed and coded an editor within Flash. The product was a Flash program that gave you a drag and drop interface to design levels. It didn’t turn out as “user-friendly” as I wanted but it made level design a breeze. The editor exports the stage layout as a text string containing the X and Y of every object in the stage. I had issues with figuring out how to format the stage data so that I could move it from the editor to the game for testing and back into the editor for revisions but in the end I figured out something that worked.

“Jump Editor” – click to enlarge

After the editor was finished, development was practically a breeze. I had to do some fine tuning by adjusting heights of jumps, adding in new enemies and props. Experimenting with levels and finding out what sorts of ideas worked – and what kind of bugs popped up.

The artwork came in after the game was basically completed. The artists had an easy time putting it together because I laid out an Adobe Illustrator file that served as a template for the game, with the dimensions for every asset. The green blocks became much prettier stuff and the transformation of the game was almost instant. The gameplay was exactly the same but the new artwork gave it a feeling.

Art Assets

While the Liberty Engine was a blessing, it was also a curse. Curse is a strong word, let’s say minor inconvenience. Early on there were a lot of problems that I was having from adjusting variables and tweaking the code for my game. It was the first time it was being used outside of the original development environment so I ended up discovering bugs that I prayed that would just go away. But it was convenient to have the author sitting at a computer next to me that I could whine “fix it!” at whenever my character fell through a platform or I needed some feature that wasn’t in there yet.

This project helped me to realize how much more fun you can have when you have a lot of the groundwork done already and can build off of earlier, or another’s, code. This game was done OG styles in Actionscript 1 but now we’re looking for ways to save and reuse code by using Classes in Actionscript 2.

Related

Bryson is the guy behind all of the Sokay creations. Heading artwork and development, he's determined to make sure each game has a "distinctively Sokay" quality to them. He's always looking forward for a chance to experiment with new technologies to explore exciting ways to achieve fun.

That’s a good postmortem. I feel a great sense of nostalgia seeing those pictures again, especially the image of the test version of Jumper, when it was all blocks and the little red rectangle would spin around when he died. You know that you have a fun game, when it’s enjoyable to play even without any art or music. Of course, art and music really pumped up the experience, the suspense. A simple reliable game with simple reliable appeal.

I like hearing about myself like I’m a mysterious programmer. I want to be like RacerX. People will make games and get stuck, they’ll be so close to winning the race, but so close to losing as well. I will arrive out of the blue and say “Here, this class file will help with your collision detection” and I will ride off into the shadows. “Oh! How can I ever repay you RacerRock?” They’ll say, and my voice will echo throughout the canyons, “Race, Speed! All I ask is that you race!”

It will be a memorable and magical moment. Programmers will forever wonder “What race is he talking about?” and “Who is Speed?” My lone finger rests upon their lips, “Shh, ask not young programmer. Ask not.”