Ludum Dare 31 was last weekend, the theme was “Entire Game on One Screen”. My entry is called “Scan Lines”. This was my 6th official Ludum Dare entry. It placed 47th overall out of 1365 entries and 15th in the innovation category. Postmortem and download after the jump.
- Scan Lines – Enhanced Version – Post compo version with many improvements
- Scan Lines – Official 48 Hour Version – The original prototype for Ludum Dare 31
- My Entry’s page for Ludum Dare – Official judging results and comments
- Source Code Viewer – Full source tree and revision history for my entry
Friday – Concept
When the theme was announced Friday night I was at my company holiday party. I was fairly distracted throughout the night with social interactions and alcohol. At that point I wasn’t officially sure I would participate, but I thought about the theme and discussed it with some friends. Some of the game ideas I pondered were…
- A reverse Katamari Damacy where you start big and get smaller as the screen zooms in. Going with the theme, you can see everything on the initial screen but some of it is so small that you don’t know what it is until you get to that point.
- A game where you can somehow change in size to explore small areas, with the entire world visible when you are full size.
- An arcade style game from before they had scrolling screens.
- A fast paced action game where the world is being rapidly rebuilt front a fixed camera as the player navigates around the changes.
The main idea that kept coming up was something with the world changing like the Pokemon Stadium level in Smash Bros. I also remembered this game called Minimalismism another Ludum Dare game, that was a really cool idea but froze the player in place when the level was changing. I started thinking about how the level could change while the player was still moving around and interacting with it. By the time I went to sleep well past 2 am I had a rough concept of a scan line building the level and how the underlying tech would support it. All other aspects of the game were still pretty vague.
Saturday – Primary Mechanic and Core Gameplay
I started by implementing the scan line idea I had from the night before with my open source game engine The Frank Engine. The engine is not really designed for this kind of game so I had to make a few low level changes to support it. For compos like this I always create a separate branch so I can make any crazy changes I want to get it working as quickly as possible. Eventually it came together and by mid afternoon the level transition scan line effect was mostly working.
I spent the rest of Saturday working on the platforming mechanics. I’ve implemented that kind of thing many times now, but it is always a challenge getting everything properly tightened up. I also drew up a sprite for the main character with a basic run and jump animation. I wanted at least a little bit of sprite work to push it more into the surrealist territory rather then pure abstraction and give it some personality. Making a snowman just seemed like the right thing to do, though it took a few iterations before I decided to introduce more classic snowman features.
I ended up spending a bunch of time working on stuff that didn’t ultimately matter. For example I had planned to have the player have a weapon that could shoot enemies and also destroy tiles. I also wrote functionality to show many levels ahead with decreasing alpha, but ultimately decided to show a preview of only the next level to simplify level design and reduce player confusion. I also played around with an idea that would show tiles differently if they were going away on the next level, as a warning to players that they would be removed, but again it was too complex or not presented well enough to work. It would have been better to focus on proofing the fundamentals before adding extra stuff.
Sunday – Level Design and Polish
First thing Sunday I implemented save points. I knew these would be essential for focusing the level design and helping to show players where to go. I was still experimenting with the player having a weapon similar to Mario’s fireball before I made the decision to cut combat for scope concerns. I think it could be cool to have a weapon that destroys the level only to have it rebuild by the scan line, but there wasn’t enough time to explore that.
Most of Sunday was spent creating the level design. I found it very challenging to make a smooth flow with the way the primary mechanic works. I played around with things for a few hours before I had large enough idea pool to start building the full world. Also I ran into several weird bugs that needed to get fixed. By the end if the day I was running out of time and had to stop it at 30 levels. In the last hour I scrambled to add sound effects with BFXR and attempted to add music but had problems recording from line in. There really wasn’t much time left at that point though.
What went right
- My game engine served me well and the lighting system worked great.
- I chose an interesting primary mechanic to implement and play with.
- Keeping simple graphics and gameplay is always a good idea.
- Pushed through the concept to a solid prototype.
What went wrong
- Spent way to much time working on stuff that didn’t end up in the game.
- Underestimated the time that would be necessary to polish the level design.
- Should not have waited until the last minute to add music. Also before the comp it is important to check that your music production pipeline is ready to produce.
- At first I was play testing with keyboard but than on Sunday I started using a 360 controller to play. Then I introduced a bug with the keyboard controls and didn’t notice it until well after the deadline. I should have play tested more with keyboard because that’s what the majority of people play with.
This was a successful Ludum Dare for me because I tried out a fun idea and didn’t spend every minute of the weekend working on it. Overall not my most polished entry but I’d rather have fun experimenting with a new concept. I think I will continue to work on this one a little more and polish up the level design. There are many other awesome and weird games for Ludum Dare 31, check them out on the Ludum Dare compo site!