Now that the madness has moved from the dev's programming caves, to the Ludum Dare voting pits, and finally out of the voting pits, everyone has had some time to evaluate his participation in Ludum Dare 32. And indeed, so have I. In this post I'll talk about some of the cool stuff, some of the less cool stuff, and an outlook on the next gamejam. Read on!
The thing I'm most proud of this gamejam is my scripting interface. You read it right! In 48h I created my personal little scripting language, specifically for my game. It uses json so I could use a json loader for parsing, and is space-delimited where parameters are needed. It felt so cool to start with a little parser/interpreter, spend almost a day on it, and once finished crank out a game in about ~10 hours. It's not perfect and some constructions leave stuff to be desired (like conditionals - implementing them backwards was the cause of lots of copy-pasting -_-'). It's been on my mind for a while and I'm glad I finally found the opportunity to implement it. After my json-powered omnilang follows my first hands-on experience with Inkscape. The things I actually produced probably made most people cringe and run away crying. And they should! I know I can't art, but that's why you practice right? Inkscape had also been on my mind for quite some time so it was nice to finally go ahead and do it. I think the most interesting part is that you can actually see me improve the further you progress into the game, heh. It's been an interesting and fun experience, I will certainly use it again. The last awesome thing about the weekend was that Walnoot participated with me, which meant I got to distract him with pointless Inkscape questions every 5 seconds and cooking pancakes together! Thanks for the cool weekend, Walnoot 👍👍!
Now, not everything is roses and pizza. However proud I am of my custom scripting language, it still needs to be said that making a scripting language feels like a lot of overkill. I probably could've gotten away with leaving only the styling/markup in the json files, and doing all the logic in the code. It was a lot of fun and I learnt a lot, but I'd like to avoid massive technical timehogs next time. If I had saved time on the scripting backend, I would've had more time for sound, gameplay, and maybe some backstory. This is relevant for the second thing I'm less happy about: I finished really close to the deadline. This was mostly because in the end I had to finish up lots of little things: finishing touches to backgrounds, simple gameplay triggers, the final scene (very important, lol), main menu, fade-in/-out transitions, that kind of stuff. It was all really easy because of the scripting language (!), but the last hour felt like a stressed-out hell. I usually manage to avoid this, so next time I'm going to be extra careful to make sure I do.
A big reason for me to participate in this Ludum Dare besides the jam was using a few custom tools (see the Pre-Mortem for more details). I'm mostly pretty happy with how that worked out. capjam.py (the tool that takes screenshots, webcam captures, and keeps track of various statistics) worked pretty well. Sometimes ffmpeg would hang, resulting in some missed frames and needing to restart the script. This was probably a problem with my webcam however, I hope updating my drivers will fix this. TinkyWinky worked pretty well also (it didn't even crash onde a playlist!) and nicely played most things I threw at it. It was kind of clunky here and there so I'll have to improve it for practical use. For a 48h-jam it turned out to work good enough though! Regarding Nuts 'n Bolts, ofcourse I discovered lots of shortcomings and deficiencies. As usual. This is actually not bad - it means I have stuff to work on, which is always a good thing :) It also didn't impair me too much so it wasn't a big nuisance.
Now, what's gonna happen next? I'm getting used to working with SDL2 and 2D games, so I'm thinking of expanding to OpenGL and 3D. I'm going to keep using SDL2 for windowing and events - it really got that stuff nailed down good. Ofcourse I'm going to keep working on NnB, and make sure it has lots of facilities for OpenGL! I'll probably improve capjam.py a bit more (but not too much! It's actually mostly finished, it turns out) and make TinkyWinky a bit less clunky to work with. I'm actually quite suprised they both worked so well - turns out simple tools are not that hard.
Oh, and maybe I'm gonna try and not invent a programming language for a gamejam. Or maybe I will. Who knows (:
P.s. You might be looking for a rad timelapse! It'll be here Soon™. I just need to finish up some stuff to actually turn all that screencaps and statistics into a video, heh. It shouldn't take too long but don't hold your breath.