Ludum Dare 47 is this weekend so I figured it was high time to publish my old write-ups.
If you don't know what it is : Ludum Dare is a video-game creation competition/event that takes place a couple time a year. It's been on my radar for years and I participated for the first time in Ludum Dare 42 summer of 2018 and a second time this April for Ludum Dare 46. The competition takes place over a weekend in two categories : Compo limited to single participants over 48 hours and Jam for teams, over a longer period and with more relaxed rules. Over the following month every participant is invited to grade the games of the other participants. Grades are given over different categories and games are only given a final grade if they have more than 20 evaluations. I did the Compo version both times and managed to get graded (your game is promoted when you grade others, it's give and take).
Here are links to my game entries and links to play them :
- https://ldjam.com/events/ludum-dare/42/escape-through-the-void
- https://e2tv.ixio.xyz
- https://ldjam.com/events/ludum-dare/46/theogenesis
- https://ixio.github.io/theogenesis/html5/index.html
This is a write up of my game-jam experience for both those games.
Ludum Dare 42 (11th-12th of August 2018)
Apparently this was the first Ludum Dare with Europe-friendly hours, this meant I could discover the theme when it got out. Usually it's at 3am where I live and that's not the best time for me. I followed some advice I found on the net: figure out a game idea and go to sleep. While waiting for the theme I decided to try out some game engines.
One of my goals for that first Ludum Dare was to pick up a game engine. I had been eyeing Godot and PhaserJS. I wanted to learn an engine that I could re-use later on for whatever game concept I might have and that was cross-platform : in particular for Ludum Dare I wanted an HTML export to make it easier to try out. I intended to try Godot with Python, or since I've been building my Javascript skills PhaserJS could've been interesting. I had been working with ReactJS the months before so I figured I'd use that as a last resort, probably for something like a grid-based game.
LD42: Figuring out the game
The theme was announced and I spent an hour coming up with a concept. I homed in on it pretty rapidly, I probably had pieces of it in my head when I read the proposed themes: like "Dying world", "Decay" and "Running out of space" (the chosen theme). I decided to go with a city-builder like experience on a grid with disappearing tiles. Happy that I had found an idea, I went to sleep. I wanted to be fully-charged on Saturday and I like the notion of sleeping on an idea, letting your subconscious work things out.
On Saturday morning I figured out what my game would be like : a possibly multi-level game where in each level the player would embody the hope of a civilization leaving a dying world through a portal, mining the in-between to open a new portal to an Eden-like new world. However the in-between is a wasteland in the Void, and mining it would cause the Void to reclaim the space: the player has to finish his infrastructure to build the new portal and escape before being lost to the Void.
I decided to aim for an MVP (minimal viable product) that I could later on upgrade incrementally. I wanted to avoid a final stress-filled rush without a finished product. I decided for an MVP where the player has a layout of barren-tiles on top of Void tiles, he can use minerals to build mines on barren-tiles to collect more minerals and also build more-costly power plants that generate power. The player wins when he has reach a certain amount of power which enables him to generate a portal to salvation. However barren-tiles are randomly eaten by the Void and slowly but surely the player loses buildable ground: when none is left he loses.
I thought I could upgrade the MVP to allow for different and bigger levels. I also wanted to be able to research the capacity building more stuff on a single tile, having a game where buildable space shrinks but you also get to progressively get more mileage out of each tile. Another direction I thought of was some sort of tower-defense element building turrets to defend against voidlings.
LD42: How I spent my time
Having kind of rushed my Godot and PhaserJS explorations I didn't feel comfortable using them, I didn't want to spend half my time discovering a framework only to realize I wouldn't have time to make my MVP. So I decided to try out something with Javascript and React. I didn't start very early Saturday but I spend most of my day working on the game. Probably some procrastination was involved but overall a very productive day. Sunday I spent only part of the day on the game, at most I spent a half-day on it : probably less.
Saturday I probably had about 80% of my MVP and Sunday I finished the mechanics to make it a real game and also worked on sound effects. I did sound effects by recording myself and transforming it with Audacity. For the music I discovered LLMS and manage to stumble through to an "MVP" result : I'm glad I managed to produce something but I feel pretty shameful not to have included a mute button on my game.
In the end I managed to publish a finished result : a fact I'm pretty proud of ! Not so much the game itself even though I stand by it for a weekend's worth of hacking. I mostly focused on game mechanisms keeping time spent on artwork and sound/music to a minimal. I didn't really get past my MVP stage so the game is little else than the bare minimum to qualify as a game.
Ludum Dare 46 (18th-19th of April 2020)
Since that first Ludum Dare I've wanted to participate again but I usually had plans on those weekends. Like many people for Ludum Dare 46 Covid-19 confinement made it a very interesting way to spend the weekend. This time the theme was announced American time so about 3am where I live, I decided I'd rather sleep and wake up fresh on Saturday. I decided to give Godot another go, I'm really fond of FOSS solutions and love the idea of Godot. Last time I wanted to try and make it work with Python since it's one of my favorite languages but this time I figured I wouldn't complicate my work and give GodotScript a try.
LD46: Figuring out the game
This time I didn't look at the proposed themes before discovering the final theme: "Keep it alive". I kicked around a couple of ideas in my head before finally settling on the idea of keeping a religion alive. I decided to go with a mechanic of recruiting followers around the country-side and converting cities. I really enjoy the game Mount&Blade and part of why I like it is the army-building system from followers you recruit, I've always wanted to make something similar.
Once again I decided to go the MVP route : here I wanted to have cities with a certain number of followers needed to convert it, a player token that moves on the map gaining followers, entering a city converts it if you have enough followers and once all the cities are converted your religion is then assured of being "kept alive" and you win. Originally I wanted some kind of particle system to litter the countryside with different intensities of followers but I settled for at first making followers small tokens you would pick up.
My upgrade ideas were for example a system for heretics to spawn from your followers like an unwanted mutation, creating a competing religion siphoning off your potential pool of followers. Another possible antagonist would be the king of your country finding your influence dangerous and sending the army to stop you, making enemy groups you need to avoid. Another possibility would be making named followers than can make their own group and helping you achieve your goal.
LD46: How I spent my time
I started Saturday morning thinking about the theme and deciding on the base of my game. After that I spent the rest of the morning going through the Godot tutorial, I decided this time I would go through with it and really give it a try. I had other plans early afternoon, in the end I got back to my jam only early evening. I finished the Godot tutorial and made a couple of commits to start my game.
Sunday morning I started late but then spent most of the day working on my game. I spent almost all of it coding (when not procrastinating) as I kept my graphics to the bare minimum, same for my sound effects and music. I spent even less time than LD42 on SFX, I re-used the voice idea and used the FOSS text-to-speech eSpeak NG. I think I spent about as much time as last time on music with LMMS : I made a longer track but had the experience of my first go around.
Like last time I didn't push further then the MVP stage, where I had the base game mechanics and a way to win the game. Still I felt good about the game and think I did better than on LD42.
Compared results
Theogenisis (1383 submissions)
Overall: 1011th (2.75 average from 20 ratings)
Fun: 835th (2.861 average from 20 ratings)
Innovation: 600th (3.194 average from 20 ratings)
Theme: 730th (3.444 average from 20 ratings)
Graphics: 1036th (2.083 average from 20 ratings)
Audio: 722nd (2.556 average from 20 ratings)
Humor: 744th (2.25 average from 20 ratings)
Mood: 934th (2.528 average from 20 ratings)
Escape through the void (1054 submissions)
Overall: 705th (2.452 average from 23 ratings)
Fun: 704th (2.175 average from 22 ratings)
Innovation: 590th (2.711 average from 21 ratings)
Theme: 488th (3.25 average from 22 ratings)
Graphics: 696th (1.575 average from 22 ratings)
Audio: 537th (2.184 average from 21 ratings)
Humor: 421st (2.083 average from 20 ratings)
Mood: 575th (2.25 average from 20 ratings)
Comparison
1011th on 1383 is about 770th on 1054 so I had a lesser overall rank even though I had a better overall rating. In fact I got a better rating in every single category. I think this April participation was pretty special with a big part of the world confined in the first wave of the Covid-19 pandemic, I think people had more time to spend on their games so the competition was tougher.
Next steps
I hope I'll be able to participate in more game competitions. For LD47 I have already plans for the weekend but maybe if I'm inspired I'll find time for a short game. I had fun with LD42 and LD46, I believe I have a lot of margin for improvements and I look forward to building better games.