Ludum Dare is Ludum Done, and there is a new game in the Smiling Cat library as a result.
The theme for Ludum Dare 29 was “Beneath the Surface”. I felt this was a very easy theme to come up with a game idea for, though I almost bit off more than I could chew. I had to pull out all of the stops, and really bust my hump to get this one done for the deadline.
What resulted is an Atlantean adventure that I’ve titled “City Beneath the Surface”. In this first-person adventure game, you set out to repair your broken-down submarine, but soon you will discover that there is much more going on beneath the surface. Strange, glowing orbs speak into your head, and the Greek gods are pleading for your help. Will you uncover the truth of what really happened to Atlantis? Or will you just repair your sub and get on with your day?
I was really pleased with how the mood of the game turned out. Between the music, sounds, lighting, and fog, I really managed to capture the feel of swimming around a lost, sunken city. I was also pleased with my 3D model for the shark, that, while not rigged and not perfect, really shows how much my modeling skills have improved. It’s the first actual animal model I’ve attempted since that dreadful hornet model from Thrust or Bust.
Judging will still be ongoing for the next three weeks. From the first feedback comments I’ve received, people really love the setting and mood, but are frustrated by the controls. I’ve taken some steps to correct that; unfortunately, I cannot update Kongregate until after the judging ends. Hopefully the game does well in judging in spite of that.
This is the first game by Smiling Cat to feature multiple cinematic endings. Whether or not you get the best ending will depend on who you help – yourself, or the gods. Anyway, you should make sure to check out the game on Kongregate, or download the Windows desktop build.
For more details, You can check out my development journal on the Ludum Dare site. Included below is my retrospective writeup from the event.
Ludum Dare 29: City Beneath the Surface – Retrospective
What Went Well
This time around, there was a very quick committal to a game concept after the game was announced. This may have been due to having others around as a sounding board when the theme was announced. This allowed actual work to commence a lot faster than in LD26, when over an hour elapsed before committing to a concept.
This theme was too easy. There was no lack of ideas: a city builder where you had to move humanity into an underground city, an anthill adventure, playing as a fish or octopus, a game based on fracking, an adventure beneath the surface of the skin. Any one of these could have been viable. Indeed, I am starting to see that many of these concepts have been done by others.
The procedurally generated buildings turned out great. By taking a few base components, and giving the basic instructions for building up one floor at a time and randomizing, I was able to have the game generate some complex building layouts. Sure, the architect of these buildings must have been crazy, but isn’t that the same for most games?
One area of player feedback from LD26 was that Dehoarder lacked some kind of finality for a full clear of the room. There was one goal end at 10,000 points, but that was just an artificial goal and was only celebrated by a single popup that was easily dismissed. For City Beneath the Surface, I set aside time to create two different endings that are definitely final. I even had time to make them cinematic. They were the second largest identifiable time cost in the game, at 7 hours, with much of that spent watching the submarine escape scene in 10x slow-mo to get the timings and measurements good.
All in all, I managed my scope well. I had intended to put a means of moving from floor-to-floor inside the building, but as Sunday afternoon loomed, I re-evaluated that feature and decided that it would not add much value to the gameplay that was there, so I axed it. (If anyone asks, the Atlanteans moved between floors on unpictured elevators built into the corner blocks on each building.)
Similarly, the original scope for the building generator had the engine building interior walls as well, sometimes making for multiple rooms per floor. This never got implemented, never even made the prioritized backlog, and honestly would detract from gameplay and make the game unnecessarily harder.
Blender and I have been getting along even better since our bromance started in LD26. The shark is my crowning 3D modeling achievement for this Ludum Dare. Maybe someday I’ll actually get better at rigging stuff, too, so that he doesn’t just move stiffly through the water, but stiff is fine for a 48-hour compo, especially since your back is to him while you’re running from him anyway =D.
Making sound effects for this was fun. Some basic stuff, like alerts, inventory feedback, etc., were done with sfxr, but other in-world sounds were recorded on a cheap mic on my laptop. I think the scream for the shark death turned out especially well. I got a kick out of using the bathtub to make the water sound effects. Luckily with the way my house is set up, the laptop could be kept safe behind a wall while the dispensable mic did all of the dangerous wet work.
The music that for the second time just happened was a gift from above. I fired up cgMusic like I did last year, and fiddled a bit with it. I wasn’t sure it was up to the task of creating the deep, warm, droning music I was looking for. Then I took a piece it had generated, deleted everything after the second part, and turned the tempo way down to 15 bpm. Voila! The perfect sound – slow arpeggio guitar melody over a glacial harmony by string instruments with bows that must be 5 feet long.
There was something just wrong about the input for much of the project. I was using a fairly standard move-mouse-to-turn model, but it just wasn’t working out well. There seemed to be a weird acceleration curve, and that movement control always confounds me once the mouse moves outside the game window. So I switched out the controls at the last minute, and fixed another latent bug in the user input code. I was very glad I took some extra effort to correct this, it made the controls much, much better.
At a few points this weekend, I took a step back, and wrote out a list of what remained to be done. Then I would quickly prioritize all items on that list 1-4, and then knock out the 1’s and 2’s from that list. I repeated this until I was done. This micro-agile approach seems to work great for compos, because it keeps the highest-risk, biggest impact work at the forefront.
Having some common code libraries harvested from prior projects was a big plus. Some basic calculations were just there without having to go to Google to look up algorithms. And being able to fit a bunch of re-usable polish trim right in place, like streaming loading, volume controls, scene transitions, and the like, helps me present my entry in the best way that I can.
It was good that I had blocked off the entire weekend for this compo, otherwise it would have been fail. I even took a day off on Friday to relax before the compo to make sure I was going in fresh and rested. That was a very good idea. It allowed me to put in 6 full hours the first evening of the compo. For the rest of the weekend, I had my support network in place, meals arranged, and everything planned out so that I could focus on Ludum Dare to the maximum, and I am very glad that I did. With 34 of 48 hours utilized for the compo, 3 hours spent preparing meals or doing chores could have made the difference between success and failure this time around.
What Did Not Go Well
A procedurally-generated level was the best choice for this type of game, and manual level design of this scope would have taken longer and required a lot more pre-planning. Still, the map generation code took much longer (about 9 hours, over 25% of the project) than was hoped. This put the project behind schedule early, and I had to work like the dickens to make up the shortfall.
I would have liked the game to be more playable in the early stages. While basic player input and physics were done early, map creation was a large obstacle to testing any actual gameplay. Thus, it was not until halfway through the compo that the game felt more like a game and less like a physics simulation and world generator. It was not until Sunday morning that the game was actually winnable. It was hard to know early whether the gameplay would actually work out or not, which is vital with a compo.
34 Hours was a little more time than I wanted to spend on my compo entry this weekend – that leaves only 14 hours for sleep, eating, hygiene, and not totally falling off of the world around me and into my own reality where it is only me and The Game. I am well aware that I picked a project that was almost too big to handle in 48 hours. Still, this means I pushed my abilities to their limits, so this could be considered a very good thing as well.
It seems that despite my best efforts, a lot of people are finding the controls for the game difficult and frustrating. One source of contention is the lack of an option to invert the camera pitch tracking. It seems the old fighter-pilot convention of up pitching downward and down pitching upward that I am used to is no longer the norm, so in the future I will be sure to provide this inversion only as an option. People also complained specifically about turning being too slow – the slowed movement was an intentional design choice to boost the mood of the game by making the player feel through the controls like they were moving through water. This does not appear to have been received well. These two points are the only specific feedback provided so far about the input issues. I retested, and could find no further issues myself.
What to Change
In future events, I will try to focus more on gameplay mechanics before world building. In the case of City Beneath the Surface, I would instead have created the mechanics of the prisons and keys and sub parts before creating the first building, making sure the game was winnable early on. I had done this with Dehoarder in LD26, and did not realize until I was deep in the rabbit hole that I was doing differently this time around.
I wish I could say I won’t try anything this ambitious in the future, but part of the good of these events is that they push me to my absolute limits. So I will likely take on ever more ambitious projects anyway no matter what I say here to the contrary.
Conclusion
This was another awesome event. Even though I was intensely heads-down during a large part of it due to early missteps, I managed to create something really cool that probably would have taken a couple weeks to a month without the pressure on. It was great to see exactly what I am capable of, and how much I’ve improved since my last Ludum Dare. I’m looking forward to seeing everyone else’s submissions in the coming weeks.