Sunset Post Mortem

January 14, 2008 at 7:06 pm

In August of last year, the iPhone dev scene was just getting started. Someone who hacked their phone had just released a "Hello, World!" app. Web apps were coming out daily, and launcher web apps were coming out even more frequently (go figure). Steve Jobs had not yet declared that there would be an SDK, so everyone was guessing and second guessing what Apple's stance was based off of various interpretations of everything that came out of every Apple spokesperson's mouth.

One thing that bothered me was how people were saying that you really couldn't do anything substantial with Javascript. I work with Javascript every day, and know from experience that you can make Javascript do pretty much anything you want, it just might not do it very quickly. For that reason, I decided to embark upon a project to push Mobile Safari as hard as I possibly could.

After a bit of idea tossing, I decided on doing a first-person RPG. Doom RPG was my initial source of inspiration, and I felt like I could probably pull off something similar. Interesting side note: while I was inspired by Doom RPG, I played neither it nor Orcs & Elves until about a month ago.

The early tech phase was an interesting time. I had written a raycaster before, so I had a vague idea of what I was doing. I spent quite awhile making tiny tweaks to the rendering algorithm to try to speed it up as much as possible, eventually settling on the game taking about a third of a second to render a frame. I had some indirect help from Apple, most patches resulted in a bit of a speed boost. 1.1.1 hindered me a bit, though, since it introduced a rendering bug I had to work around. I should probably file a bug on it.

The game's story changed a few times during development. Originally, it was going to have a rich story involving political tensions between three nations, with your character caught in the middle. Eventually, I decided that it would take too long to create all that content, and the amount of back and forth through the levels that the story would have called for didn't seem very fun, so I dropped that idea. I vastly simplified everything to have your character be some generic hero person who travels to several towns, helping the local population with some problem they're having before moving on. After I had finished about six or seven levels, I realized that I still had way too much content to create (the design called for twenty-one levels). By this point I had already given up hope on making my original planned release date of November 5, so I rebooted again, this time creating what was effectively a dungeon crawl with five levels set in a research facility.

What followed was two and a half months of what could be pretty accurately described as unyielding agony. I decided during this time that I'm a programmer, not an artist. I mean, my art is better than just stick figures, and I know I'm capable of far better art than you see in the game if I'm given more time and I'm motivated, but I really hated making all the art required. This contrasted sharply with the early, programming-heavy phase of the game, which was pretty much non-stop fun.

Last night, the adventure finally drew to a close. I transferred a copy of the final version of the game to its place on my web server, set up the link, and went about telling the world about this little game I made. I have no clue how everything's going to shake out from this, but I'm feeling a profound sense of accomplishment. It's not often that I finish a project of this magnitude in my spare time.

Some stats to wrap things up:

Lines of Javascript code: 4777
Number of images: 67
Size of the game: 1.5 MB

I need a vacation. I need something to help me unwind from all this. Strangely enough, I've started programming my next project to unwind. I'm using a development project to relax from another development project.

There's got to be something seriously wrong with me.

Colin

January 14, 2008 at 7:22 pm

have you ordered a free sample of coffee from dunkin donuts at their website, yet?

Jawatcheel

January 14, 2008 at 7:31 pm

I just posted your game on an iPod touch website.
Prepare for thousands of geeks.

@Colin: Yeah, I got my free sample, too! I don't think they're offering it anymore, though.

Jake

January 14, 2008 at 11:08 pm

nice work.

Jon Lebensold

January 15, 2008 at 12:30 am

What a great game. Good job. I'm looking forward to your next release :)

mathias

January 15, 2008 at 7:38 am

nice work! only javascript *g*

robzr

January 15, 2008 at 8:26 am

Great work! This takes me back to my wolfenstein 3d days...

Jonathan the Elder

January 15, 2008 at 4:51 pm

Congrats, Bro.

"...the early, programming-heavy phase of the game, which was pretty much non-stop fun."

I actually laughed out loud here.

nutmac

January 17, 2008 at 5:25 pm

I've finished the game in about 5-7 hours. Very enjoyable and I look forward to your future efforts.

I couldn't figure out how to enter couple of rooms, however. I am guessing one of these have the third weapon. Guess I have to play again!

Donald Hays

January 17, 2008 at 8:41 pm

Wow, 5-7 hours? I was estimating 2 1/2 hours for people who haven't played it before. I'm glad it lasted longer.

Yeah, there's a third weapon hidden in the game. I have a few ideas in mind for the game, including posting the game in zip form for local play, and maybe a walkthrough/tips section

jp

January 18, 2008 at 11:44 am

what are you supposed to do in central processing???

Donald Hays

January 18, 2008 at 12:10 pm

There's computer terminals on columns and walls. Press your use key to interact with these terminals. Central Processing is composed of a 3x3 grid of rooms, and the display on the terminals represents a connecting line, which unlocks the doors between the rooms. At the top of the display is up to four buttons. Tapping these buttons can change the link of the room you're in. The objective is to draw a white line from the beginning of the level to the exit. I'm going to get a walkthrough thing up in the next few days which will present the solution if you get stuck.

Mason

January 21, 2008 at 10:58 am

Donald,

This was great fun. You should know that all your hard work resulted in me having a nice 3-4 hour relaxing time playing this game.

Really incredible stuff. Can't wait to see what you come up wiht next.