Halloween jam games you can actually hack
The spookiest time of year is also one of the best for game jams, and this year's crop of Halloween-adjacent entries spans everything from Godot platformers to 13 KB JavaScript experiments. The games below all shipped from Ludum Dare, Godot Wild Jam, js13k, and similar events — and they all have public source repos, so you can dig into the code and tweak things to your liking. Many run right in the browser, perfect for a quick break between commits.
Ciara and the Witch's Cauldron
Ciara and the Witch's Cauldron took first place in Godot Wild Jam #53, and it's easy to see why: a young girl seeks a cure for her bedridden mother by venturing into the unknown to consult a witch, and the puzzles en route are genuinely clever. The final level pushes your patience, though. If you need a way through, try pressing down, right, left, left, up, right, left, up, right, down, right, up, left, down, left, up, left. Alternatively, tweak Player.gd at line 145 so movement is more forgiving:
- number_of_tiles = free_spaces[direction]
+ number_of_tiles = 1
for element in elements_carried:
if element.get_free_spaces(direction) < number_of_tiles:
number_of_tiles = element.get_free_spaces(direction)
Though I Walk

Though I Walk is a Godot entry from Ludum Dare 54 that plays with perspective in an unusual way: you guide both your body and your soul through the shadow of death, collecting chalices and solving platforming puzzles that require you to think about where each part of you is positioned.
Yamsylvania

The world has been overrun by Yampires and Yampire Bats, but you're a farmer who refuses to stop selling yams — and those yams double as your only defense. Yamsylvania is a Haxe-built Ludum Dare 52 entry with randomly selected levels and a strict rule: don't run out of yamunition.
Norman the Necromancer

In Norman the Necromancer, you play a renegade necromancer learning to reanimate the dead while villagers chase you down. It's a TypeScript game built for js13k, and it packs a surprising amount of spellcasting into its size budget. Want to take out more villagers with a single spell? Edit game.ts line 151:
onCollision(target: GameObject) {
for (let behaviour of this.behaviours) {
behaviour.onCollision(target);
}
if (this.despawnOnCollision) {
- game.despawn(this);
+ // game.despawn(this);
}
}
If you're curious how the whole thing works, developer @null-bot9875 wrote an in-depth write-up on the game's internals.
Ghost Snap

Ghost Snap started life as an entry for A Game By It's Cover, a jam that asks developers to turn fictional cartridge art from the My Famicase Exhibition into playable games. The result is a short Godot game about the only profession that makes sense for ghost photography: snapping them.
Silver Bullet

Silver Bullet placed 6th in graphics and 13th overall in the 2022 GitHub Game Off. You have one pistol and one silver bullet as you sneak through a train full of vampires, which means stealth isn't optional — every shot has to count. It's built in Unity with C#.
Brains

Brains is a rhythm-based puzzle-adventure from Ludum Dare 52 featuring zombies that are somehow adorable. The game asks you to move to the beat while chomping through puzzles, and the Godot-written codebase is approachable if you want to make the zombies even cuter — or give yourself more time to nail the timing.
Big Black Book of Magic

Big Black Book of Magic is a Godot platformer with a spellcasting system that isn't just point-and-click. You defend your castle from monsters by combining words from a magic book, which makes the combat feel more like a puzzle than a brawler. Just don't mispronounce the incantations — unless you want a "noodle" situation.
Deliverance: SOUL REAPER

Deliverance: SOUL REAPER is a Unity FPS built for speedrunners. It placed 11th in Ludum Dare 53, and the entire game is about collecting souls as quickly as you can. The question isn't whether you can finish — it's whether you can do it in under a minute.
Boo! Bark!

In Boo! Bark! from Ludum Dare 54, you're a dog whose human is being haunted by ghosts. Your job: bark and chase them away before they do too much damage. It's a Unity/C# game with a simple enough loop that the whole concept clicks in the first ten seconds.
WitchCup1276
If you grew up on Super Off Road or Micro Machines, WitchCup1276 will feel immediately familiar: four witches race on a top-down track, dodging low-flying brooms and thrown jinxes. It's a js13k entry written in JavaScript, and if you want to skip the obstacle course entirely, edit witches.js line 876 so your witch can simply pass through solid objects:
- let hitObstacle = hitsAnything(this.game, newP, this.isPlayer);
+ let hitObstacle = false;
if(!hitObstacle) {
this.p = newP;
this.rot += r;
if(r != 0) {
this.speed *= 0.5;
this.acc *= 0.1;
}
return true;
} else {
addCollisionParticle(this.game, this.p, 1);
}
Dante

Dante is a js13k game from 2022 that flips between top-down and first-person perspectives as you guide Dante past obstacles and deliver lost souls where they belong. The JavaScript codebase is small enough that switching views mid-level feels like less of a trick and more of a treat.
Fort Knight

Fort Knight drops you into a land of skeletons and goblins, tasking you with guiding a hero across 10 levels. There's no storm and no 99 other players — just straightforward platforming. If you open hero.js lines 22–39, you'll see a series of powerup defaults. The property isGad looks suspiciously like isGod, and flipping it to true makes the journey considerably less perilous.
// PowerUps
this.powPlus=0;
this.defence=1;
this.speed=0;
this.attackTime=0;
this.renderPower=false;
this.facing=lastDir;
this.attackOver=false;
this.dance=false;
this.axePower=1;
this.hammerPower=1;
this.castleDst=0;
- this.isGad = false;
+ this.isGad = true;
All of these games are free to play, and their source is open — which is the real treat. Whether you want god mode, infinite ammo, or just a look at how a js13k game fits into 13 KB, there's something here worth forking.



