First off: Wow. What a weekend. So many thoughts I want to share. So many emotions flooded out during the experience. Let’s see if I can try and compose this a bit.
LD Entry URL: http://www.ludumdare.com/compo/ludum-dare-16/?action=rate&uid=1277
Time Lapse Dev Log: via YouTube, via MobileMe
My high-level plan for the weekend was:
- Friday: Prove out key tech elements needed for the game concept.
- Saturday: Build the game. Make it playable from start to finish. Get to “content complete”.
- Sunday: Polish, Tune, add the nice-to-haves.
I’m glad to say I was more-or-less able to stick to this plan.
Friday – Concept Discovery:
The Ludum Dare theme was announced at 6:00 P.M. on my way home from work. “Exploration” was not the theme was I was planning for so I immediately panicked. I figured I’d try and explore a concept of “limited visibility in an environment”. There was a small problem with this… I hadn’t yet figured out masking in Flash.
Friday – Tech Prototyping:
Being able to mask areas of a layer was going to be key to my game concept so I spent a large portion of Friday night focused on prototyping technical implementations. Thankfully I was able to figure this out within a couple of hours and I had my first build showing a bitmap with a sprite masking it. I was able to addChildren to the sprite to get the dynamic effect I was looking for.
The rest of Friday night was spent shoehorning some of my tile engine code into my game concept. I called it a night at midnight.
Saturday – Fleshing out the Concept
It’s amazing how your dreams change when you are up to your eyeballs in a project. I was able to focus in on my game concept a bit better with a night’s sleep worth of brain parsing. I decided to scrap my idea of doing a platformer due to unnecessary risk. I focused in on the concept of a bat (easy to draw & animate) trying to find his way through a cave.
Saturday – Building the Content
I had to force myself to stop playing with my tech at noon on Saturday and start focusing on building game content. This is where I encountered my biggest stumbling block. My tile engine code was great at loading an overly verbose XML data file. But this XML file was not ideal for rapid prototyping. I ended up deciding that Excel would be an ideal level editor. So I rebuilt my tile engine to load a .csv file. While this was indeed a big stumbling block, it only took me an hour or two to resolve. And in the end, the time saved by being able to edit levels in Excel was well worth the investment.
Building the levels was very straightforward and it didn’t take long at all to build all 5 levels of the game. I focused on a learning arch that would guide the player through the experience. The game peaks in difficulty in level 4 then eases it’s way down to the end. By 7pm I had the game playable from start to finish. This was a huge accomplishment and really put my mind at ease. The rest of my time could be spent tuning, tweaking, and polishing.
Saturday Night – Audio
I spent about an hour in GarageBand putting together a straightforward audio track that would serve as the atmospheric backdrop music. Nothing special – but it certainly added something to the experience. CFXR (a Mac port of SFXR) was the tool of choice for the sonar sound effect. Since I knew the player would hear this sound a lot, I made 3 variations of it that played at random. This partially minimized audio strain.
Saturday Night – Sleep
I called it a night at 1am quite confident in my progress. Trying to sleep was next to impossible. It appears that after 18 hours of straight game developing my mind and body started acting weird. My brain wouldn’t calm down as it continued to parse through a backlog of thoughts and ideas. My body felt like I was going through withdrawal. I was breathing weird, my heart was racing, everything hurt. It was a very very odd experience and it took 3 hours to get to sleep.
Sunday Morning – Book ends
Saturday night I came up with an idea for the game’s ending. I decided to invest a lot time Sunday morning building this out. I really really like how it turned out. A good chunk of time was also spent on the title screen which led to me changing the fonts throughout the game.
Sunday – Final tuning
Once of the last decisions I made was to remove the timer system from the main play-through of the game. I felt the timer took away from the feeling of solidarity and exploration. I wanted the player to explore with no pressure the first time through. I did however add the functionality so a second play-through (during the same game session) would trigger the timer and allow the player to race against a par time for each level.
I submitted the game at 3:00 P.M., very pleased with the final result.
Thoughts & Conclusion:
I’m very conservative in my development style. I’d rather focus on something small and polish it than stretch my time too thin. EchoExplorer was no exception to this rule. I cut many elements very early in development that I felt were not critical to the core gameplay. But even with this small core I attempted and succeeded with many new things this project:
- This was the first time I’ve made a game with “levels”
- I built a .csv parser so I could build levels in Excel. I’m so impressed with how well this worked.
- I got alpha masking working.
- I created a really cool ending sequence with dialog, timed sequences and camera panning.
- I made my most polished and awesomest game to date.
I wanted to create a small but polished experience. The game can be completed in as little as 2 minutes but there are lots of little things that I feel make this a richer game experience. I like the pacing. I like the graphics I was able to put together with my limited ability. I like the story and emotion the game delivers. I even think the difficulty and frustration is nicely tuned given the short length of the game.
What would I have done differently?:
I had a lot of time to be a bit riskier but I chose to err on the side of caution. Next time around I may loosen up a bit and try to bite off more. Though next time around I should also be able to progress faster from the tech-side. (I still spend a lot of time looking up Actionscript code as I write)
The bottom-line is there will be a next-time. This was my first “proper” LD. It will not be my last.