Anton Savytski Side projects

Case study

How Unhallowed was built

Unhallowed is a free gothic action roguelike that plays in the browser, on the rules of the original Diablo from 1996. I set the direction, playtested every round, and built it with Claude Code. It was playable on day one and launched on itch.io on day seven.

What it does

You pick one of seven heroes, take what the town of Hollowmere can give you, and go down through sixteen depths beneath a ruined abbey to the Pit where Vorthax the Unmaker stirs. Fights, loot, and leveling follow the original's formulas to the number. The dungeons, quests, and shrines change with every run. The story is told in 500 voiced lines and illustrated cutscenes, and it plays with a mouse and keyboard or by touch.

How it works

Playersplayunhallowed.comOne HTML page on a Cloudflare Worker, offline once loaded
itch.ioThe same buildZipped with its music and voices
Players looking things upThe wikiBuilt from the game's data and art
The rules and dataClasses, items, monsters, spells, and quests, ported from DevilutionX and renamed

A moment of play

  1. The rules advance the world 20 times a second, as in the original
  2. Code draws every sprite into a 480 by 270 canvas
  3. The browser scales it up, and Web Audio mixes the score, effects, and voices
Three ways in, all built from one set of rules and data. The game ships no image files. Code draws every pixel on screen.

Decisions that shaped it

How it came together

Where it is now

Live at playunhallowed.com and on itch.io at stvdwell.itch.io/unhallowed, free to play in the browser on computers, phones, and tablets. The wiki is at wiki.playunhallowed.com, and bugs and questions go to support@playunhallowed.com.