Whew. I’m experiencing a ludum dare hang over right now. I’m not pleased of the state of my game that I submitted. Too many bugs and too many glitches. But I had lots and lots of fun! And I made an RPG in 48 hours!
This is my third LD and I’m starting to get quite fast at pixeling sprites and tiles. I imposed the limitation of 4(+white) grey shades, a sprite size of 16×16 pixels and a window size of 160×144 upon myself for this Ludum Dare. The first artwork only took a couple of hours to make. The problems came when I had to do the details. I remember that I spend more than an hour on the sprite of the main character. Almost half an hour on the positioning of the hair. Overall I spend most of the time creating artwork and not coding, which is a good thing.
Tiled Map Editor and the AdvancedTiledMapLoader for Love were a huge help. I didn’t have to code a complete tile engine and could use such things as the properties of tiles for map connection and teleportation. This way creating maps was a fun and not so much a time consuming process.
All went well until I began with the “hero” class. I used humps classes for Löve which are great but my design of the class was very flawed. I should have implemented some kind of state machine for the behaviors of the character but now the classcode is littered with checkflags and “isBlabla” variables. This might be the first thing I’ll change if I get back to this project. I almost had to rewrite the whole thing, because of the movement bugs that I just couldn’t get under control, but there wasn’t enough time. I normally write my code in iterations: plan the class – try out this planned version – clean up – try out a refactored way – rinse and repeat until it does what it should and is still readable. This approach might not be very good for a ludum dare because it consumes too much time. I should stay away from lazy lazy instantiation and use strict.lua and write tests in the future to get my nilled objects errors under control.
The biggest problem was writing and designing the combat system. Originally I planned to make a half-action-timed battle system a la chrono trigger. The problem lay in the implementation. This is asked way to much to develop in 2 days and so in the end rush I kicked out a lot of the roundbased rules and only left in the “action points”(AP). To execute an attack you will use a certain number of AP. You can hot-trigger attacks via the C-V-B keys and open the menu via the X key. Since I originally planned to make the combat semi-automatic the standard sword attack involved moving character to the current enemy and back. This is were most of the bugs in the compo version happen. Sometimes the distance is miscalculated or references to the current enemy are lost and so the automatic movement goes berzerk. Again, If my code had been better structured I would have found the errors on time.
For inspiration I listened to a lot of music from Final Fantasy Adventure and I think you can hear this when you listen to my soundtrack. The creative side did go well this time. I had lots of ideas but not enough time to make everything happen. My programming performance on the other hand was very bad and I’m almost ashamed of the code that I put out there. But still I’m pleased that I made a (mostly) working RPG in 2 days. If you are interested I can keep you posted on future versions of this because I plan to work on this over the holidays(maybe even begin an iOS version?).