13 ghoulish games to play, hack and slash this weekend 👻

Image of Lee Reilly

WARNING: This post contains zombies, werewolves, extra dimensional beings, mummies, and more! Proceed at your own risk.

Trick or treat yourself to some fangtastic Halloween-themed games this weekend. These were created for game jams, like Ludum Dare, JS13K, and our very own Game Off—all built in a variety of languages, and game engines. Some of these games were built in as little as 48 hours! Still, they all have one thing in common. The source code is available for you to explore, hack, and slash.

Evil Glitch (JS13K 2016)

► Play in your browser · Source (JavaScript)

Screenshot of Evil Glitch

Evil Glitch by @agar3s has it all: scanlines, CRT effects, and satisfying gameplay. As strange glitches appear in your dimension, you’ll need to stop them with a storm of bullets.

Fun hack: Comment out this line of code, and you will become invincible. Woo ha ha ha!

- if(killer)die(killer);
+ // if(killer)die(killer);

Chamber (Ludum Dare 47)

► Play on Windows or Web · Source (Heaps, Haxe)

Screenshot of Chamber

Chamber from @saint11 and @AmoraBettany received first place in the LD47 jam earlier this week. With the help of a friendly ghost, you must explore a mysterious template and plan an escape.

Sealed Bite (Game Off 2019)

► Play on Windows, macOS, Linux or Web · Source (Godot, GDScript)

Screenshot of Sealed Bite

Sealed Bite is a pixelated platformer from @securas where you are against the clock to find crystal shards that prevent you from turning into a werewolf. Sealed Bite was the winner of last year’s Game Off.

Fun hack: Are you finding the game difficult? Jump higher and/or make yourself invulnerable with these small changes to the code here:

- const JUMP_VEL = -150.0
+ const JUMP_VEL = -250.0 

and here:

func can_be_hit( area = null ) -> bool:
    if fsm.state_cur == fsm.states.hit: return false
    if fsm.state_cur == fsm.states.dead: return false
    if is_invulnerable: return false
    #print( cur_target, " ", area, " ", cur_target.get_ref().name, " ", area.get_parent(), " ", area.owner.name )
    if cur_target != null and \
        area != null and \
        cur_target.get_ref() != null and \
        cur_target.get_ref() == area.owner:
            return false
-   return true
+   return false

Retrohaunt (JS13K 2019)

► Play in your browser · Source (JavaScript)

Screenshot of Retrohaunt

Not everyone has the time, patience, or skill to create a puzzle game with just 13kB of JavaScript. Like my mom used to say, “If you’ve got it, haunt it.” @DennisBengs did exactly that with Retrohaunt.

Luna (Halloween Competition 2019)

► Download for C64 · Source (Assembly)

Screenshot of Luna

If you grew up with a Commodore 64, or are into retrogaming, you will love Luna by @smnjameson. Guide the witch through neverending caves, as well as faster and more challenging enemies and gameplay.

Of course, you will need a Commodore 64 emulator to run this. Thankfully, there are plenty of free and open source implementations to choose from.

Unnecessary Evil (Ludum Dare 43)

► Play on Windows or Web · Source (Unity, C#)

Screenshot of Unnecessary Evil

Unnecessary Evil from @Xenation, @Suliac, @Voxelse, and @evaabollivier has you alternating between five fearless fighters to find a way out. Be careful though. Sacrifices must be made.

Heaven Ascent (JS13K 2020)

► Play in your browser · Source (JavaScript)

Screenshot of Heaven Ascent

Heaven Ascent has you fighting demons, collecting stars, and battling angelic bosses that are preventing your ascent.

Fun hack: @Dhmstark thought ahead and added the ability to quickly give yourself infinite lives. To do so, simply change this line.

Blood and Volts (Ludum Dare 46)

► Download for Windows · Source (GameMaker)

Screenshot of Blood and Volts

Blood and Volts by @dev-dwarf, @Nolnad, and @LewmothMusic is perfectly named. Keep the power running and turrets firing as you invade a small planet and fight off the native creatures.

Baby Monster Delivery (Ludum Dare 46)

► Play on Windows and Web · Source (Unity, C#)

Screenshot of Baby Monster Delivery

No storks here. There are only pans partaking in Baby Monster Delivery, but beware of boobytraps. The floor is lava!

Tomb of the Mummy RL (Ludum Dare 47)

► Play in your browser · Source (JavaScript)

Screenshot of Tomb of the Mummy

Tomb of the Mummy is a roguelike game made by @eldarbogdanov for Ludum Dare 47. Some would-be treasure hunters have awakened you from your slumber and are exploring your tomb. A mummy’s gotta do what a mummy’s gotta do.

Death String (Ludum Dare 47)

► Play on Windows, macOS, Linux, and Web· Source (Godot, GDScript)

Screenshot of Death String

Demons have invaded your pink, pixelated world. You control the robot that banishes them with the Death String.

Shield Bearer (GMTK Jam 2020)

► Play on Windows, macOS, Linux, and Web· Source (Godot, GDScript)

Screenshot of Shield Bearer

Shield Bearer by @Geminimax has you playing the helicopter parent protecting your would-be adventurer son as he explores dangerous dungeons.

Cool hack: Maybe someone could level up this poor kid’s pathfinding?!?

Soul Harvester (Untitled Game Jam 8)

► Play on Windows, macOS, Linux, and Web· Source (Unity, C#)

Screenshot of Soul Harvester

In @JordyAaldering‘s Soul Harvester, you play as a young Grim Reaper, bouncing across randomly-generated levels, sending lost souls back from where they came.

I hope you find these games entertaining. Have a safe, happy, and healthy Halloween if you’re into that sort of thing!

Until next time, creep it real 🤟🏻


Hungry for more? These 13 fun, fiendish, and forkable games from last year should also entertain you.