Digging Through Ludum Dare 48

Nearly 4,000 games were built over one weekend for Ludum Dare 48, whose theme “deeper and deeper” pulled double duty: thousands of digging or falling takes, plus a wave of more creative twists. Below are our picks from the jam, which run the gamut from frantic action to puzzle-y distractions. The source of every game listed is in the linked repository — write-up authors used JavaScript, C#, Lua, Haxe, Rust, Kotlin, and GDScript across these submissions.

Descent Engines

We Have to Go Deeper is part of Ludum Dare ' submission list, letting you pilot a sub while a pushy professor looms overhead. You play an unpaid assistant keeping your cool. The mood channels grad school at a fraction of the cost. It ships for Web and Windows, where the Unity source (C#) is also easy to follow.

Screenshot of Ludum Dare 48 (LD48) entry "We Have to Go Deeper"

The well-liked Deeper and Deeper is a creature of two open-source tools: it runs on the Phaser JavaScript framework for browser play, and its levels were authored with the editor LDtk, which shares a maker with Dead Cells. New levels are on the table — the repository's assets/levels.ldtk is there to be extended.

Screenshot ofLD48 entry "Deeper and deeper"

Want more firefighting? Nuclear Blaze, also from the Dead Cells maker, mixes jokes, big particles, and a load of fires to tame.

Screenshot of LD48 entry "Nuclear Blaze"

Surface is a space-flavored gravity exercise: your ship floats in an argon-heavy atmosphere, making it too light to descend. Cargo — meteorites you shoot — adds mass, so the math becomes an obstacle in itself, right down to mixing the gas composition, your spacecraft's dimensions and mass, and the local gravitational pull. You need quite a few rocks.

Screenshot of LD48 entry "Surface"

GIF of complicated math symbols floating past man's head

If chess is your obsession, Chess Hellevator gives pawns free will: each turn you pick among three offensive moves. It runs on Godot and pulls no punches on the hell theme. The CGA-era web games that reference the Queen’s Gambit trend sparked a different fan project at kilobytes gambit.

Screenshot of LD48 entry "Chess Hellevator"

Step into a Broforce-style shooter in Fetal Fury, where you have 60 seconds to escape and every line is a pun. The HaxeFlixel build runs Web, Windows, and macOS.

GIF of LD48 entry "Fetal Fury"

Punch fish for cash in Fishing Trouble. It plays like a joke from the tutorial straight into a barrel (minus the barrel). Same engine family: built with Haxe.

Screenshot of fish being punched in punching in LD48 entry "Fishing Trouble"

Feeling nostalgic? Dwammings is a Lemmings-like with beer management: dig, mine, climb, break, and drink to survive. The Unity build lists Windows, macOS, and the browser.

Screenshot of LD48 entry "Dwammings"

For the energetic: Bunny Bunny Dig Dig gives you treasure-digging in an action-RPG wrapper with bats and bombs doing their worst. It's not alone in starring a rabbit.

GIF of LD48 entry "Bunny Bunny Dig Dig"

Into a skull-heavy descent? Drillmin pairs monochrome with a nonstop drill to the core while lava rushes behind. The game supports Web, Windows, macOS, and Linux.

Screenshot of LD48 entry "Drillmin"

Your platformer options: Ziggurat (beautiful pixel art and music, plus a rabbit guide into your own psyche) and Into the Castle, a jump-n-dash at everything the wizard-king throws at you, glasses included.

Screenshot of LD48 entry "Ziggeraut"

GIF of LD48 entry "Into the Castle"

Find recursive depth in Micronaut, a Rust-written maze where the mechanic pays off.

Screenshot of LD48 entry "Micronaut"

For the Sokoban set: Physics Breaking Boxes layers reusable boxes and recursion on top of the classic formula, and Inside the Box asks the same question from the inside.

Screenshot of LD48 entry "Physics Breaking Boxes"

Screenshot of LD48 entry "Inside the Box"

A nightmare goes light with Sweet Dreams, a Kotlin platformer by a first-time Ludum Dare participant where fear has a name. Similarly playful, Sleepie Cookie Eatie lets you dig and snack your way down a cookie mine — the more you eat, the sharper your shovel, thanks to Godot.

GIF of LD48 entry "Sweet Dreams"

Screenshot of LD48 entry "Sleepie Cookie Eatie"

Deep Divers

The underwater angle tunes into fewer absurdist notes. Sunk Cost sends a submarine deep into a hostile — suddenly angry — fish population, where hull integrity and pressure meters matter, all built in Unity.

Screenshot of LD48 entry "Sunk Cost"

Keeping the drill fueled just right to keep the seas safe is at the heart of Blue Cheese Lunar Descent, a lunar digging mission in Phaser and JavaScript. Expect generator runs, machine repairs at the drill, and the ability throw debris at aggressors while hunting for cheese on the moon.

GIF of Ludum Dare 48 entry "Blue Cheese Lunar Descent"

A tighter space: What Goes Up… was truncated; see Deeper and Deeper. Speaking of tighter spaces, the wave-based arcade action in Fetal Fury is the one to make 60 seconds count.

Source code from every project above is linked in the corresponding jam entry. The community runs on collaborations — good places to start if you'd rather bend gravity, time, lives, or health than start from scratch.

Staff Pick: Submarine Bean

Screenshot of LD48 entry "Submarine Bean"

Submarine Bean takes you on a gentle underwater expedition in a tiny submersible. It’s available to play in the browser or on Windows, and the full source code is on GitHub, built with Unity and C#.

This entry is notable as the first Ludum Dare for developer @IcosoDev. The fact that a first-time participant can produce a polished, charming experience like this says a lot about the jam’s accessibility. If you’ve been thinking about joining, the next competition begins October 1 — a good opportunity to give it a shot.

These picks represent just twenty of the 3,866 entries submitted this round. You can browse the full list of games and leave feedback for developers whose work caught your eye.

If you enjoyed this roundup, there are more open source game collections worth exploring: