Victory! was a game developed over a 48hr span of time for the Ludum Dare #21 competition.
As is the tradition in Canada I’ve written a bit about how the weekend went.
The Theme & My Idea
Ludum Dare 21′s theme was “Escape”. I was really hoping for “Dreams” but “Escape” was close
enough. I wanted to play more with platforming mechanics so I knew at the very least what I was going to make genre wise. I also really wanted to do something creative and a bit cerebral like I did with Abarrane. The core “escape” game concept came to me at 9pm on Friday. Platform “levels” with walls closing in on you. I also decided that my secondary “escape” concept would be about the constant pressures of life, releasing burdens, blah blah blah.
The remaining details all came organically throughout the development.
I’m very pleased with my overall take on the theme. While the artsy-fartsy-ness of it is a bit heavy handed, it has some nice touches given this was a 48hr affair.
I kept to my standard Ludum Dare time structure more-or-less. I wasted a few hours Friday night fighting with Flixel 2.55 but I did manage to have a core skeleton of a game with crushing walls and crate mechanics working before bed. I spent a lot of time on Saturday polishing the game well before I had even started on the main content. By end of day Saturday I had only completed half of the game levels (the easy ones). But those levels had a very good difficulty curve that some folks in IRC were kind enough to test and provide feedback on.
Sunday was a bit of a rush to complete the last 10 levels, add spike logic, add “pill” logic, write the “story” and polish a bit more before release.
In the end, my time was crunched but I did not have to make many sacrifices to get the game done in time. I had 2 healthy 8hr sleeps, did not work past midnight on Friday or Saturday and made it to my movie-date with Melinda on Sunday (which forced me to submit 2hrs prior to cut-off).
I knew I was going to be a bit rusty this compo. I hadn’t fired up FlashDevelop in months and haven’t really written any serious code since Abarrane in December.
Mistake #1: Downloading Flixel 2.55 for the first time ever at comp-start. I really wanted to use the latest and greatest of Flixel, but I grossly underestimated how ingrained I was with Flixel 2.35. For hours I fought with stupid things (like bringing up the Debug overlay). This was not a smooth compo start. Thankfully AdamAtomic (the dashing gentleman that he is) has a wealth of knowledge in his open-source-code examples. I used Mode, Grave Robbers, and other Flixel example code to get my inertia going again.
Mistake #2: I wanted some nifty cut-scenes for Victory and Failure. Vector animations were ideal for what I wanted so I figured it would be easy to just whip this up in Flash Professional. Ok so #1, my Flash Vector drawing skills have LONG since atrophied. It took me a stupid amount of time to do a simple shape tween animation. #2, fucking Flash and importing .swf files into ActionScript projects. You’d think Flash would be smart enough to listen to timeline actions on the imported .swf. Well no, apparently it just treats the .swf as a sequence of frames that it auto-loops over and over and over. *twitch* had to hit the forums to find a code solution. Very inelegant. Wasted wayyy too much time on those Victory and Failure screens.
The original game concept was going to be grayscale again. The 50s color palette evolved over time (thank you ColorLovers.com). I stuck with the autotiles in Flixel, but just recoloured them. The character has no animation. So yeah, overall I stayed very conservative and within my artistic comfort zone. The game looks pretty good if you ask me but again I just tried to stylize the minimalist art I could muster.
I haven’t had many opportunities to design levels but really stretched myself to build 20 for Victory! I used the .png TileMap importer in Flixel and did all of my level design in Photoshop. This worked out really well and I’ll definitely be leveraging this workflow again. I spent about 8 hours on level design this weekend (just over 25% of my total time) and I’m very pleased with the difficulty curve.
I again like to focus on new things I got to try this weeend.
- Built 20 levels of platformer/puzzle content
- Upgraded to Flixel 2.55
- Embedded .swf vector animations
My coding style was really bad for Victory!. Almost all of the code is contained in the gameloop class PlayState.as. I also had to hard-code loading each of the levels. As a post-compo exercise I’d like to break apart Victory! and try to come up with a more sane architecture.
Victory! came together quite well though. I definitely felt that this game evolved on it’s own this weekend and that’s not a bad thing.
I <3 Ludum Dare. I always have such a blast.