Underverden – Post Mortem
So who ever came up with calling these analyses post-mortems? My project certainly isn’t dead. I certainly have a lot to say about it though. For reference, play it here. If you don’t care how I personally performed, scroll down to Product to hear my comments about the submitted game itself. For the Tl;dr, scroll all the way down to the conclusion. Otherwise, prepare for a wall of text!
Process:
What went right:
Using Flixel:
This is a powerful library that I encourage everyone to try. It’s especially suited for rapid development. It has many helper classes geared toward 2d game development and platfromers in particular, and since it’s based in AS3, web deployment is a cinch. Tutorials for the current version are a bit lacking but documentation is very good and accessible and there are numerous demos with source code available. I was able to build Underverden with the tools available: built in tilemaps, collision, input handling, etc is a HUGE benefit after basically writing all that for my last LD in pygame. There are some cases where I wish I had time to break open their black-box classes, but subclassing usually allows the needed flexibility. I’m not totally converted to Flixel over other options, but it is VERY impressive.
Preparation:
I took the time to get familiar with my development environment and starting a Flixel project from scratch. I knew I’d be switching libraries so I set up FlashDevelop, built a couple test games with flixel, and got used to the workflow. I also found a Map Editor (DAME) and practiced with it, as well as being familiar with Sfxr, FLStudio, and Photoshop, and having Dropbox ready to host my files. Know your tools! In my experience, it is almost imperative.
IRC & testing:
The #ludumdare channel is excellent. I was able to prototype ideas, brainstorm, and do playtests with ease. People are generally fun, encouraging, helpful, and insightful every time I’ve been on the irc. I can’t recall who did what, but a number of people were especially helpful. Someone hopped on a private channel with me and discussed gameplay with me. Someone else critiqued my control scheme and talked me into changing it for the better. A number of people mentioned the lack of support for Dvorak or other keyboard layouts, which I hadn’t thought of as a problem. Near the end of day 2, someone else gave me a boot in the rear that I needed to keep motivated. You guys are awesome! Thanks to all of you! If you were one of these people, please comment; I can remember names but not who did what.
Sleep:
This is a timed competition, but don’t cheat yourself of sleep. I did last time and that cost me more time than it saved. Though I stayed up late I made sure of at least eight hours sleep both nights. It was very worth it as I woke feeling rested and productive.
What went wrong:
Internet:
My internet died on Saturday. I spent a large portion of the day trying to get it fixed and being generally unproductive. I estimate I lost about 10 solid hours of work. Nothing I could really do about that, but still my biggest obstacle.
Time management:
I spent a lot of time just staring at the code trying to figure out how to make a certain thing work. I could have gone on to other areas. I spent too much time perfecting movement instead of leaving it alone until the rest of the engie was further along. I spent too much time looking up examples for a physics library, so much so that I never got to use that library in the end. I really need a better plan of action going into the LD. I had a good To Do list last time, but failed to do that this time. PArt of why that was lacking will be covered in the next topic.
Concept:
I did not have a solid grasp of my idea for the game I was making. As it was, I did not have a good plan of action. I had a lot of ideas, but no plan to actually realise them in gameplay. I thought this would become clear as I began to work on various elements, but in fact it obscured my original vision to the point where I had no idea what I was actually making. I asked someone in irc, “What is going to make my game fun?’ Part of this is because I had premeditated ideas before seeing the themes and since neither of them fit at all, I was at a loss for what to do. Since the various themes were so similar I had little inspiration. When I finally got an idea, it was unclear and not fully formed. In the end it would have turned out solid, but that solidifying needs to happen BEFORE I start coding next time.
Product:
What I liked:
Player:
I like my player sprite and his movement. I spent a lot of time on the movement, but fortunately not as much on the sprite. A lot of comments from friends and in irc have complimented this aspect. Thank you very much! It’s nice to have my opinion validated. I wanted the character to appear fragile and the player to feel wary about his movement. I had more steps in mind to achieve this, but the movement feels almost perfect at this point. I’m also glad to have drawn a character with much the same animation quite recently. It was very good to be able to draw the sprite quickly.
Bombs:
What can I say? Bombs are a heck of a lot more fun than I thought they would be. Excellent.
Tools:
These turned out just about how I wanted apart from some mechanics with the bombs that I’ll discuss below. Digging should feel heavy and difficult and it does. The functions of different tools on different surfaces is very near what I wanted.
What I lacked:
A point:
Obviously, you can’t win my game. This is sad because I had a decent story planned that I never had the time to create. It would have had added a lot of gameplay interest. (Stay tuned, this is coming!) As it is this is an aimless platformer with terrain destruction. I was waiting to make the goal until I had physics, since it relied heavily on destorying structures but this was a mistake. I could’ve added a simpler version much earlier and had an actual game. The level design goes along with this aspect. In the end I just scribbled in the map editor and called it a level.
Balance:
The bombs need balance. Originally you were to find barrels around the level, then place powder in them to make bombs. Powder would also be in limited supply. The bombs also blow up too much ground as I found out through playtesting. They’re really only supposed to let you destroy the foundations of buildings. You were also supposed to find your tools along the way, allowing for more exploration and limiting your progress. You were also supposed to take damage and die, and have a stamina that forced you to rest from jumping and digging.
Tools:
Originally I wanted a rope and a carried light source to be major elements. Luminescent mushrooms or crystals would grow in the cave and you could break them and take them with you to show the way. As it is, there is no lighting whatsoever. Rope would also save you from fall damage (which is not in anyway), but you would have to conserve it and use it wisely in order to retrace your steps.
Atmosphere:
I spent 3 hours writing music that I think is very good for the small amount of effort it took. It is very evocative and would have added a lot to a complete game. I also had sound effects and lighting planned but found the time for neither of them. Finally, my art lacked focus. The character is two-tone, the tools are detailed, and the terrain is halfway in between detailed and placeholder art. I think I’d like to develop the two-tone look as it would fit the atmosphere I wanted for this game.
Conclusion:
Let’s look at my definition of done…
- The story is narrated and the scene set – no
- Buildings/terrain can be destroyed – yes
- There are at least 3 objectives to destroy in different cities – no
- Healthy cave grows when objective destroyed – no
- There are intervening tunnels between objectives - no
- Equipment is functional – rope, pick, shovel minimum – no rope, but bombs instead
- The death mechanic is in functional (keeping it a secret) – no
- SFX are present for actions that need feedback – jumping, falling digging, etc - no
- There is at least one ambient music track – no; made but not put in
- Game can be won, restarted, saved and loaded – no
So is that a failure? Technically, yes. However. I learned, I had fun, I’m proud of what I did, and I’m going to continue it. I would call that a success. Thank you LD (and all of you in it), for teaching and encouraging.