LD40 - The good, the bad and the ugly
Hello everyone, I felt like I wanted to write a summary post of my experiences, things I learned and things I should've learned beforehand during the 40th Ludum Dare.
This wasn't the first time I participated, my first Ludum Dare was 3-4 years ago, and I tried to complete a game like 8 times so far. Of course, I couldn't finish them all, but this time I'm very proud of myself, because I could apply lots of things I experienced during these past events.
I will now share a few of my advices and experiences that helped me finish.
ALWAYS SLEEP WHEN YOU'RE TIRED
In my country (Hungary), Ludum dare usually starts at 3:00 AM. In the past I always went to sleep early, to be able to wake up at around 2 am, grab a coffee and hop on the IRC channel to get to know the theme early. This usually resulted in my bio-cycle completely being messed up, and in the days to come I found it very hard to stay focused.
This time though I went to bed at the usual time, and got up around 8:00 AM, and maintained my usual sleep-cycle during the 3 days. I was very much suprised how clear my mind was during all three days.
LEARN MATH
The first few times I was in high school, and had absolutely no idea how 3D graphics worked, how to do vector and matrix math. Now, after a year at university I have learned all of these basic skills in math, and lots of things I found hard to make were easy-peasy. There are plenty of online game development sources, from where you can learn these kinds of things, I would very much advise you do so, if you haven't already.
LEARN YOUR TOOL
I used libGDX for the 5th time I think at a Ludum Dare, so I knew it in and out ... at least I though so. Basic things, like sprite batchers, cameras, the weird coordinate system, application lifecycle were natural to me, but when I got to UI skining, it took me three times the time I estimated for it to take. I would advise you to use only the tools you know how to use, and learn new things beforehand, or after the Ludum Dare. 2-3 days are very short to know new design principles (conventional OOP design VS ECS in Unity for example), and technologies.
NEVER START WITHOUT A CONCEPT
Multiple times I failed, because I didn't have a concept from the first hour, and just started to write some boilerplate code, thinking that it would lead somewhere. SPOILER ALERT: It didn't. Always have a concept, and only start working on the code, or assets when you know exactly what you're going to create, and only minor things are left to be thought through.
I would also like to include some things I learned during this particular LD:
- When you're doing hexagons, do it according to the book. I started using my own coordinate system for hexagons, where the center tile was (0, 0), left from it were negative X coords, and to the right were positive coords. This led to some weird design choices, for example I couldn't just index my tiles, I had to store them in a simple List, and I had to do some not-so-optimal HashMap magic to be able to query a single tile at the given coordinates.
- If you're doing UI, don't start making your own UI framework, use the one provided. I made some ugly classes to represent buttons, and panels, but in the end I found myself replacing all of this code with the libGDX Stage system.
That concludes my thoughts about this particular LD, and in general. I hope I could give good advice to some new comers, and I wish all of your games the very best of luck!
If you want to, you can check out my game at https://ldjam.com/events/ludum-dare/40/dem-colors


