What went right:
- Postnatal: I spent most of the time building the engine, and even though some shortcuts were made (mainly the Level Design one below), a lot of aspects of the engine were quite robust and really nice to work with. If you get this right, adding a diverse set of game elements is easy (for instance, the concept of potions took me 5 minutes too add, including making it something monsters can drop and making it available in the town store. I guess my point is that if you take too many shortcuts, when LD48 ends, that will be the end of your game, you’re never going to want to touch that code again. If you make more of an effort to build a sturdy system, the 48 h session might just be the birth of your game and your post-mortem examination will instead be a postnatal one. I’m pretty pleased with my game in this aspect, but there are many improvements I can make until next time.
- Smooth sailing: I like building everything from scratch, so I only had 160×120 pixels to work with, and I did all the pixel manipulation manually. Sure, this meant implementing for instance alpha composition from scratch when I wanted to have that, but I think those things are fun so I didn’t mind that. This also meant that after the canvas was set up, I had complete control of everything. Getting stuck on API stuff can be frustrating, so I’m glad I was able to keep that to a minimum (I got screwed over on sound though, check below).
- Fun factor: I know the fun factor is quite limited, but there were some shimmers in there, and I did catch my girlfriend playing the game several times on Monday (quote: “Okay, this time I’m going to try to complete it with only a steel sword”). I’m really pleased with the enemies and how much technique counts. Also, even if you know the best technique, it still needs precision and skill to carry out.
What went wrong:
- Sound: My sound threads were piling up on me, causing the game to crash. I eventually had to take it all out, even though all sounds were ready. Lesson: make a more thorough warm-up round if you’re using unfamiliar tools.
- Level design: I didn’t have any software for this, and even though the forests are generated, I wanted to create the city and the houses myself. It was either going to be an image or a text file. I went with a text file, so I could easily throw in some some additional information, etc. Much more familiar with text parsing in Python than Java, I decided to just go ahead and acknowledge that some shortcuts have to be made, so I wrote the parser in Python and made it spit out Java code. It was fast, but now afterwards I feel really dirty generating Java code. Lesson: Take some shortcuts, but not major ones like this. It made me feel less proud of my final product, no shortcut is worth that.
- Name: With 700 entries, you have to be more original than “Leave me alone!”. Also, I must’ve been crazy thinking I had a pretty original idea when I decided to have a person who wanted to be alone (as opposed to the more obvious not wanting to be alone).
- Time for final touches: It was really hectic at the end, and I left a few things hanging. The houses in the city are completely undecorated, even though I even had made at least a bookcase sprite that never made it into the game. Adding them is a matter of minutes, but the final hour stress got the better of me. I also had 4 ready sprites for a bomb that never made it into the game, even though it probably would’ve taken like 10 minutes. I also had a lot more in mind for cool effects. I had for instance written a blur effect, that could’ve been used as scene transition, when hurt, or something like that. It was all ready to be used, but you forget all about that when time is up. Lesson: Leave more time at the end! Or at least, if you make an effect/image that you’ll “put in later”, just put it in right away instead. I even had a 10×10 pixel kitten that I forgot to put in! FUUUUUUUU