Hack & Slash

// how it was made

A top down action game in a small dark world. Three dungeons corrupt it, each marked by a beam of light visible from anywhere on the map. Clear all three. It still does not have a name, which tells you roughly how finished it is.

Play it →
3Dungeons
35Enemies in the world
4Swords
1Secret word

How to play

Move with the keyboard, aim with the mouse, click to swing. Space dashes and makes you untouchable for a quarter of a second, the only real defence because there is no block. One key throws a firebolt, another sets off a shockwave centred on you. On a phone you get a thumb stick and buttons instead.

Landing the sword on anything builds a combo. Reach five and your damage goes up by half, but let 2.4 seconds pass without a hit, or take one yourself, and the chain is gone. The stone circle you start in heals you while you stand in it. That and the odd lucky drop is all the healing there is.

The three dungeons

Crypt of Ash, Hollow of Teeth, Weeping Ring. Each is a ring of leaning pillars and lit torches in its own colour, holding six grunts, two brutes and a boss. The rest of the map is forest, rocks, fireflies and eight wisps that keep their distance and throw things.

Kill everything in a court and the beam above it turns pale blue and the chest unlocks. Every chest is a sword upgrade: iron, runed, Duskfang, Worldsplitter, 20 damage up to 60. The order does not matter, but the third dungeon is far easier than the first.

The bosses telegraph. A red ring opens on the ground around them, pulses for a full second, then lands for thirty of your hundred health. That second is the whole fight: long enough to walk out of, short enough that you have to be watching.

Why it exists

I wanted to know how much of the feel of an action game comes from the mechanics and how much from presentation. So the combat is deliberately shallow: one attack, two spells, nothing to memorise. Everything else went into the response.

A connected hit freezes the game for about fifty milliseconds. Killing two things in one swing drops the world to a third speed for half a second. Camera shake scales with how many enemies you caught. None of that changes a damage number, and all of it changes how the swing feels.

The hardest problem was not combat

The camera sits high and the character is small on screen, and a capsule with a head on it looks identical from every angle. You would aim, swing with confidence, and hit nothing.

The fix was entirely cosmetic: a glowing stripe across the front of the helmet, an orange crest pointing forward, an emblem on the chest, a cape at the back, and feet that stride when you walk. None of it does anything mechanically. All of it is the difference between a game that feels broken and one that does not.

What I took from it: when someone keeps making the same mistake, look at what they can see before you look at what the rules do. Every one of those fixes was a shape, not a rule.

One secret

Type a certain four letter word while playing, the one a 1993 shooter made famous, and the sword changes colour and hits half again as hard. Nothing in the game hints at it. That is the point.

Built with

Three.js handles the 3D, loaded from a CDN with no build step, so the whole game is one page you can open. The forest is 180 trees and 46 rocks drawn as instanced copies rather than separate objects, which keeps a wooded map cheap. The minimap redraws ten times a second instead of every frame.

The sword and impact sounds come from Bruno Simon's open source work under an MIT licence. The spells, the dash and the hurt are generated by an oscillator in the browser as they play.

What is missing

Clearing all three dungeons sets off a celebration and leaves you in an empty world. No ending screen, no second act. Enemies do not respawn, so the map runs out. Dying resets the run. It is a finished loop inside an unfinished game, which is why it has no name.