Hexbrew
Nine wizards. Twenty waves. Far too many slimes.
The brief
An arena action game with wizards, on iPhone and iPad from the same project as the desktop build.
You pick one of nine wizards and survive twenty waves of slimes. Your weapons aim and fire on their own; you move, cast your wizard’s spell by hand, brew potions from what the slimes drop, and decide before each wave whether to hex it. Bosses come on waves 10 and 15, and the King Slime has to be killed on wave 20 to win.
Four things make it its own: potions brewed from what particular slimes drop, with a recipe book kept between runs; a spell you cast by hand and see happen; hexes that curse a wave in return for a reward; and a spellbook look on a meadow.
It plays offline, with no ads and no account, and it collects no data.
Design
Nothing in the game is drawn or recorded by hand. Every sprite is an SVG written by a Python script, and every sound and music loop is synthesised by another, with no dependencies. To change how something looks, I change the script and run it again.
On a phone a wizard is under a centimetre tall, so they are kept simple: a big hat, a big head with dot eyes and a robe. On a touch screen the game adds its own controls: a thumbstick wherever your left thumb lands, a spell button you tap to cast at the nearest crowd or drag to aim, and larger menus that keep clear of the notch and home bar.
- #2C3A2A
- #93CF6E
- #F3E6C4
- #4A3524
- #FFD75A
Build & release
Hexbrew is built in Godot 4.6. Every rule of the game lives in plain scripts with no scene dependence, and the scenes only draw them and feed them input. That one decision made the rest possible: tests and a balance bot step the simulation without a window, and desktop and iOS share every rule.