I was excited and nervous heading into this Ludum Dare, as usual. I was excited to see my jam group again, and to work with Britt as my graphic artist since he's been cranking out game projects like crazy for the last 4 months. He did an amazing job on our Mini LD submission Terrarium, too. I always go into jams feeling nervous, too - nervous that as a programmer I won't be able to deliver on the designs we come up with. Time pressure forces tough decisions, and some of my toughest calls during jams so far came while working on our most recent jam, Strider Submerge.
When the theme "Beneath the Surface" was announced, we kicked around a few ideas about being underground, underwater, or beneath the surface of someone's psyche. The psyche idea was super interesting, but we ultimately decided that it was too abstract for a rapid prototyping exercise. Britt wanted to have something with an underwater bubble city. Having mostly programmed platformers so far, I wanted to expand a bit and try something top-down. Our first night's build was a sort of shooter where the player commanded a submersible dome city covered in tentacles.
To drive home that you were a moving city, we thought it would be interesting to incorporate resources for the player to manage, including food, oxygen, and energy. We ended up simplifying the resources to only include energy (and health), and threw out the city idea entirely. One of the hold overs from that is that the healing items in the game are fish you have to catch by submerging into the ocean, which is kind of funny when you're just a spaceship. We were left with a submersion mechanic that expressed the theme strongly enough for us to run with it.
The submersion mechanic itself was something we struggled to make relevant. Most enemies can't submerge, and so their missiles won't hit the player if he/she is submerged. We eventually changed mines so that the player could swim under them, and made coral pieces that would allow the player to fly over, but not through them. This worked pretty well with our energy resource limiting how long the player could stay beneath the surface. We also added submerging enemies that could follow the player as they tried to hide, which feels pretty interesting but caused a lot of problems.
We also wanted a reason for the player to kill the various enemies, since submerging and going right past them was a viable option. I'd never made anything resembling a skill/tech tree before, but that was just the thing that would make killing enemies and earning credits interesting. Unfortunately, most players never get to see the upgrade screen - the game has only one level and we had intended for upgrades to happen in-between missions.
The single level that made it into the game was a dummy run intended to demonstrate and test the various enemy behaviors. We had planned out at least 4 levels, but ran out of time before we could implement any of them. Since the one that remained was not really designed with care, it ended up being way too difficult. The tutorial levels preceding it were put in early, which I'm happy about. Unfortunately, the submersion tutorial level is the only place you'll see the a bridge implemented because, again, we ran out of time to build levels. Part of this reason was performance issues…
When working with Flash, it's tempting to use color tinting, alpha fading, and crazy particle effects. I worked with Britt previously on a game called Terrarium that made the same mistake - the game looked amazing for about 4 seconds before becoming incredibly choppy. Performance is a major issue in Flash, especially when constantly changing multiple levels of alpha for various actors. The diving enemies gave us a lot of problems. They were animated with the same splashing and color tinting effects as the player, which became an issue when 6 of them popped into the screen. On top of that, enemies would sometimes try to dive on top of coral. This wasn't normally a problem, but when two pieces of coral are too close to one another to allow the ship to fit between, the ship gets stuck in a collision problem and crashes the game. A couple of methods were tried for detecting coral beneath the diving enemies, and eventually one worked well enough to prevent about 90% of these crashes.
Despite the problems we had, we ended up with a game that I like quite a bit. I enjoy the mechanic and feel like there might be something there. Also, I love that we got voiceover for the boss fight and menus. Will Bucknum nailed the '80s action hero vibe we were going for. The controls are a bit off, though - I intended to use WASD and force-based movement, but forgot about that as the weekend marched along. I've been working to improve the Strider Submerge's performance in a separate upload from that submitted for the jam, and intend to build out those levels too. Moving the upgrade screen to right after the tutorial also does a better job of showing off all the hard work I put into making that work, so if you get a chance check out the original upload as Strider Submerge, then go try my current build: Super Strider Submerge.