loading . . . I did Ludum Dare again A couple of weekends ago the 59th Ludum Dare game jam happened, and I took part in the Compo event where you have to make a game from scratch in 48 hours. The theme was âSignalâ, and I ended up making Connection 2559, a space shooter where you have to deploy comms beacons to connect two planets.
It turns out once again that, making a game in 48 hours is _difficult_. You have to come up with a good idea and then put it together in two days. And coming up with ideas was never really my strong suit. But I had an idea and decided to go for it anyway, since doing Ludum Dare is fun regardless.
I ended up using MonoGame for my game, for no particular reason other than it felt like it would work for my idea, and I didnât want to use GameMaker again. It was a good choice, although I did lose the ability to have a web version of my game, which is very valuable for a jam like this. C# is a nice language to work with, though I still greatly prefer everything else about the Java ecosystem.
Probably my favourite part of the game is actually the physics - being able to collide with objects and send them flying is surprisingly fun and satisfying. Naturally, this basically boiled down to just a few lines of code, but I was a bit surprised at how convincing it was despite the simplicity:
float massFactor = MathF.Min(1.0f, Mass / other.Mass); var mag = Velocity.Length() * massFactor; var newVel = (other.Position - Position); newVel.Normalize(); newVel *= mag;
I decided each entity would just have a single size field with their origins at the centre of the sprite, which meant every entity had a square collision box, causing problems for some things that werenât visually square, as I had to make their collision boxes smaller than the sprite. I also had to spend some time optimising the collision system as the sheer amount of asteroids could create massive performance problems; I ended up using 64x64 collision buckets and some tricks like not ticking asteroids when theyâre off screen, which got it to run adequately.
This also contains some of the best pixel art Iâve done - itâs still not great, but the smaller sprites look pretty good for me. The shop sprite sucks though, but itâs a big sprite and was a bit rushed. I did discover itâs difficult to draw a spaceship that doesnât look like a penis.
The enemy ship behaviour was also surprisingly functional for how simple it is, although they have absolutely no awareness about anything other than what theyâre chasing (the player) and will hit objects and each other without concern, only avoiding to hit the player.
My least favourite part⦠the game ended up being pretty simple. There is not a lot of content, you mostly just fly from sector to sector shooting enemies while waiting for beacons to deploy. There are only three types of hazard and basically two types of weapon. Coming up with good ideas for games from the outset is not really my strong suit it seems.
Furthermore, balancing games and tweaking the numbers is difficult. I didnât want the game to be too hard at the start and I didnât want it to be too easy at the end. Thereâs also a slight economy to it, as shops items need to be well-priced and killing enemies needs to give a reasonable amount of credits to spend. I think I made the beacon deployment time a bit too long which impacted the pacing of the game.
Oh, and I still suck at naming things. Yes.
Despite all that it was nice to create a finished product for once, despite any of its flaws. And whatâs even nicer about LD is getting to check out all the other games people make, which are always 10x better than yours. :D
If you want to play it, go to its Ludum Dare page or itch.io page. Compo rules require the source be made available, so you can gawk at its hastily written code if you wish. https://drinkybird.net/2026/04/ld59/