The game for reference - https://ldjam.com/events/ludum-dare/38/$18623
As always, Ludum Dare has been quite the challenge.
I completed the Compo track, 48 hours of complete isolation, alone and naked. Well... not so much naked.
It was a lot of work, crammed into a short amount of time. I put in about 22 hours total - Fri 3, Sat 11, Sun 8 hours respectively.
I wish I had better endurance, but my wrists can't handle much more than that.
I've done Ludum Dare a few times now, and I think this has been the smoothest run yet. I'm getting a better feel for my limits, and making better choices that leads me to a completed game.
This time around, I spent more time thinking up front. I didn't just dive into making the first thing that popped into my head. I thought hard about what would be interesting, and THEN chose the first thing that popped in my head.
The idea came from some banter in the IRC room. Somebody (sorry, I forgot the handles) said the idea of Sim ant, and I thought, no smaller! So I countered with "Sim sperm". To which someone replied, "The greatest game ever conceived".
... Ugh, why didn't I go with the name "Sim Sperm", is it too late to change the name?
So the concept was easy enough -- The victory condition: impregnate the egg. The failure condition: To not be the single winning sperm.
I didn't think of it until later, but this technically makes it a racing game. ... with jizz...

Something I did well this time around, was that I concretely defined my victory and failure conditions, and worked backwards. That is, within a couple hours of the first night I had a game that could be won or lost. It wasn't fun yet, but it was something I could technically submit.
The tech I used to create Sim Sperm is something I could talk for hours about. It's a framework I wrote called AcornUI. In fact, this is the first time it's been used in a jam.
Acorn is a game and application framework written in Kotlin. It targets OpenGL-based systems and can be compiled to either JVM bytecode or JavaScript. (And eventually LLVM deploy for iOS and console)
My framework doesn't have the visual tooling like Unity does, but it does support Esoteric software's Spine. This allowed me to create a weighted mesh for a spermatozoa and have the ability to blend animations for swimming. When the sperm turn, I mix the swim animation with the turn animation, giving me very fluid-like swimming. This skeleton style of animation means I'm not pegged to a framerate, I can have interpolated (smooth) transitions from one keyframe to the next.
It's impossible to show with a gif, but here's the tool I'm talking about:

For the graphic pieces, I used Adobe Flash. I know, Flash is dead, but the tool is still what I'm most comfortable in to draw. I'm really not much of an artist, so I make due with what I know. I have jsfl scripts that create pngs, which get packed into sprite sheets.
The music was improvised on the piano. I actually did that early on when I needed a break from coding. I have a digital piano, but the process of recording to mp3 is a pain in the butt. I keep having either clipping problems or a high noise floor. I bet some audio nerds out there could help me out...
For physics I'm using something simple I wrote. It's no Box2d, but it's much easier to use. There are really just two parts to it, a controller that handles positioning, velocity, acceleration, rotation, and rotational velocity. And a SAT collision algorithm, that resolves based on minimum translation distance. There's no friction, joints, or anything like that. Someday I might get a Box2d implementation into Acorn, but for now, I'm happy with home brew.
Doing jams in my framework is the best way for me to discover friction points using it. Every new project shows me areas to improve. Overall I think this one went very smoothly, but I wrote several TODOs and FIXMEs along the way.
What I think I need to improve on for LD39 -
- Spend more time in the creative zone. I very quickly got wrapped up in things like mechanics, physics, art, music, etc. In the end I was a little disappointed with the creativity. I thought the theme was cute, but in the end it was 'just a racing game'. I would have liked to be more innovative in the gameplay.
- I need to learn or create better tools for content creation. The map was created by placing objects in Flash and writing a script to tell me their position/scale/rotation, but Flash really sucks for maps like that... It starts to get glitchy on you when you get more than a couple thousand pixels in size.
- Don't add in a new game changing feature too close to the deadline. I added the immune cells (the green things that attack you) way too late. I like the idea, but they don't feel done.