13 tiny, terrific, and terrifying games to hack, slay, and play this Halloween 🧛🏻‍♀️

Some seriously spooktacular open source games for the web, Windows, macOS, and Linux with all sorts of fun hacks for infinite lives, invulnerability, and playing with time.

| 11 minutes

It’s that time of the year where I use Halloween as an excuse to share even more spooktacular, open source (or “source available” in some cases) games for you to enjoy—games built in just a few days by individuals or small teams for game jams, like Ludum Dare and JS13K. This post has games created with Unreal Engine, Unity, Godot, Phaser, JavaScript, Haxe, and, well, you’ll just have read on to see what else.

As a kid in the UK in the 80s, I was an avid reader of magazines, like Amstrad Action and Crash and their marvelous sections for cheat codes and “pokes.” There was no other feeling like opening up a game’s hex code and changing a value to make yourself invulnerable. I’ve tried to bring that spirit back to life with some quick little hacks you can make to give yourself infinite lives, freeze time, etc.

While they may not all be the AAA games you’re used to playing, I can assure you they’re entertaining, have very unique and interesting mechanics, and the source code is easy enough to understand.

I hope you enjoy reading, playing, and/or hacking!

Hack time in Charon Jr 🚕 ⚰️

Collect payments from the dead and escort them to the afterlife in this crazy taxi ride, formerly operated by Charon Jr.’s father. Just keep your eyes on the clock!

Hack: Need more time? Change the value for initialTimeRemaining on line #6 of hud.ts and you can go that extra mile for your customers corpses:

- private readonly initialTimeRemaining = 100;
+ private readonly initialTimeRemaining = 1337;

Now, who doesn’t like to hack time?!?

Hackerman hacking time.

Put a spring in your step in Nighty Night, Nosferatu 🧛🏻‍♂️ ☀️

Screenshot of Nighty Night, Nosefaratu.
Phaser JavaScript

It really sucks to be a vampire–hiding in the shadows and sleeping all day. Help Nosefaratu escape his inevitable doom by avoiding the sunlight and going from level to level.

Hack: Make this creature of the night a little faster by changing the value for player.speed on line 135 of props.js:

- "player.speed": [150, 1, 1000], 
+ "player.speed": [300, 1, 3000],

I love it when game developers add cheat codes, or suitably-named debug/god mode-style settings. Looks like @sartak was already thinking about us on line 147 of props.js. I wonder what changing that value to true will do!

Make yourself fireproof in Smack Demon ✋🏽 👹

Smack Demon is a turn-based strategy game putting you at odds with a pyromaniac demon.

Hack: This game will have you fuming every time you take some burn damage, so you’ll be stoked to discover that you can make yourself fireproof by removing or commenting out line 119 of player.cs:

- health--; 
+ // health--;

That’s pretty lit!

Editor’s note: Lee doesn’t actually speak like this in real life; he’s just going seriously overboard with puns in the post. You might say that he’s punstoppable.

Pwn zombies in Curse of Infinity 🧟‍♀️ 🍊

In Curse of Infinity a new curse is placed on you every 10 seconds–zombie hordes, killer oranges(!), drought, and famine. Very fun and very voxel-y.

Hack: Finding one of the curses too challenging? Just remove the call to GameOver() in the appropriate curse in GameManager.cs or in the collision code of Enemy.cs. For example, the following change on line 43 of Enemy.cs would make those zombies less bitey:

- GameManager.Instance.GameOver(causesOfDeath.zombie);
+ // GameManager.Instance.GameOver(causesOfDeath.zombie);

Bring a little light to the world in UNDERRUN 🏃🏽‍♂️ 🕷

UNDERRUN is twin stick shooter in 256 shades of brown. If you suffer from nyctophobia or arachnophobia then this game is probably not for you!

Editor’s note: we’re pretty sure that Lee is showing off that he knows looked up some “big words.” Nyctophobia and arachnophobia is the fear of the dark and spiders, respectively.

Hack: Lighten up the environment a little by updating the intensity value on line 14 of entity-cpu.js:

- push_light(this.x + 4, 4, this.z + 12, 0.2, 0.4, 1.0, intensity);
+ push_light(this.x + 4, 4, this.z + 12, 0.2, 0.4, 1.0, intensity/10);

Cheat death in CHOCH 🕷 👩🏾‍💻

If you didn’t get enough spiders in the game above, CHOCH gives us one more – a lil’ web crawler searching for a missing web page. Just watch out for the elaborate firewalls and intrusion prevention systems–they’re the same ones we use at GitHub!

Editor’s note: we fact-checked that last statement. We use different security methods.

Hack: If you look at gulpfile.js lines 11 and 18 you’ll see a DEBUG variable created, defaulting to true, but being set specifically to false in production. Are you thinking what I’m thinking? Simply run this locally or remove/update line 18 and you’ll be fast and invulnerable.

- DEBUG = false;
+ DEBUG = true;

Adjust your aim in Night of the Spook 🦇 🐀

Bats. Rats. Zombies. Skeletons. This gem has just about everything. Armed with your trusty Spookbuster you must banish the foul creatures. There’s just one catch: your Ghostbusters-style proton pack only fires every 10 seconds.

Hack: Is your aim not quite what it used to be? Give yourself a ridiculously wide beam by changing the value for baseSize on line 27 of Beam.cs:

- private float baseDamagePerSecond = 2.5f, baseSize = 0.25f, baseDuration = 1f;
+ private float baseDamagePerSecond = 2.5f, baseSize = 5.25f, baseDuration = 1f;

There are a few other values there that tweaking could lead to hilarious results.

Slow things down in Ghosts, ‘n Vamps ‘n Skulls 👻 🧛🏻‍♀️ 💀

Call your warriors to order and keep them in formation to take care of the incoming ghouls.

Hack: Game moving a little too fast for you? Slow things down by changing the value for fps at line #16 of fxj.js:

- var fps = 60, 
+ var fps = 20, 

Puts yourself. in Jekyll and Hide’s shoes 👨🏼‍🔬 🔪

Screenshot of Jekyll and Hyde.

GameMaker Game Maker Language

If it’s a game of Jekyll and Hyde you seek, you’ve found it! There’s no hiding from the fact that you’ve got a serious darker side as you search through 15 levels of laboratories for a cure.

Hack: A little too violent for you? Try changing the sprites a little. Turn the blood to slime, or say, a knife-wielding mad scientist to a Scottish pickaxe-wielding mediocre computer scientist. I’ve always wanted to be in a game!

Static sprite of Mr Hide Green plus sign @leereilly's GitHub avatar Red equals sign Animated GIF of Mr Hide merged with @leereilly avatar

Open up your favorite pixel art tools like Piskel, Aesprite, or GameMaker’s built-in editor. It’s easier than you might think.

Screenshot of Piskel.

Make yourself invulnerable in Death Rider 💀 💨

Everyone loves a good shoot-em up. In Death Rider, you control a goo-shooting, flying skull with a healthy appetite for souls.

Hack: Looking to make yourself invincible? Try commenting out lines 37 – 46 of Skull.ts and those bats and blocks will bother you no more!

-    if (layer == 2) {
-        emit("bonk")
-        this.death()
-        if (this.life--) {
-            await delay(2)
-            this.start(this.life)
-        } else {
-            emit("death")
-        }
-    }
+    // if (layer == 2) {
+    //     emit("bonk")
+    //     this.death()
+    //     if (this.life--) {
+    //         await delay(2)
+    //         this.start(this.life)
+    //     } else {
+    //         emit("death")
+    //     }
+    // }

Kick some butt in Tenjutsu 💀  🤛🏻

Screenshot of Tenjutsu
Haxe JavaScript

Speaking of skulls, kick the skulls out of the baddies that have just taken over your dojo in Tenjutsu. JUDO CHOP! whct-pssh

No hacks for the next three games I’m afraid. I think the difficulty levels are spot on for these ones.

Editor’s note: we’re pretty sure Lee just ran out of time and wanted to get this posted before Halloween.

Intomb 🪦 ⏳

You’ve been resurrected, but to escape your tomb you must flip back and forth between the astral plain and mortality.

Relics of Stone 🧙🏻‍♀️ 📜

Escape from the seemingly never-ending stone prison with the aid of a not-so-wicked witch and some ancient scrolls.


“Jam code” usually gets a bad wrap as it tends to be written very quickly, sometimes isn’t the most efficient, or there are bugs. Thankfully, shipping is more important than code quality in game jams–you can always refactor later.

Working with these games was a real pleasure. Jam code or not, they were all well organized with suitable function and variables names–unlike my early Perl and PHP code–making it easy to tweak gameplay here and there.

Editor’s note: Lee’s speaking from experience here. We’ve seen his early spaghetti code with $X, $Y, $Z, etc. Just horrifying.

Did you have fun hacking ⛏ on these Halloween-themed games? Would you like to take a stab 🔪 at building your own? Game Off, our monthly game jam kicks off on November 1. Join now!

GitHub Game Off logo.

Written by

Lee Reilly

Lee Reilly

@leereilly

Developer / Marketing / Community at GitHub. Twitter: https://twitter.com/leereilly.

Related posts

An illustration of two octocats repairing a robot.

Hotkeys and Wikis

Hey everyone, welcome to GitHub. Keep your feedreader pointed here for daily updates on new features, bug fixes, and general gitbauchery. First up: we just enabled hotkeys for trees and…

An illustration of two octocats repairing a robot.

The Blog Arrives

The blog is finally here. This is where we’re gonna drop all sorts of Git and GitHub related eggs of knowledge: new features, upcoming features, bug fixes, etc etc. Also,…

An illustration of two octocats repairing a robot.

One Thousand Strong

The first repository in the production db was created October 29th. The first private beta repository was created January 12th. The 1,000th repository was created today, Feburary 25th. (And yeah,…