Treachery

A retro horror shooter about surviving waves of the dead in a walled graveyard. I made it alone, designing the enemies, weapons and progression and making every model and animation on screen, shown through a PS1-style look.

Role
Solo developer
Discipline
Game, 3D, Animation
Year
2026
Tools
Unity, C#, Blender, Custom shaders
Links
First-person view firing two Uzis at a cleaver-wielding zombie and other enemies in a graveyard

Treachery plays like an arcade shooter from the late 90s: hold the graveyard, survive the wave, spend what you earned, and go again. Difficulty scales with each wave, so the decisions between rounds matter as much as the aim during them.

A wave of enemies closing in on the player at the cemetery gates

Enemies that behave differently

Each enemy type runs on its own state machine on top of Unity’s NavMesh, with distinct movement and attack behaviour, so a wave isn’t just more of the same thing. Root motion drives attacks and hit reactions, where the animation itself needs to move the body. Everywhere else, the AI stays in control of position.

Several enemy types approaching across the graveyard

Spending souls

Progression runs on souls collected from the dead. They buy weapon upgrades, perks and temporary consumables, so every wave cleared is also a decision about what to build toward.

The upgrade screen between waves

Making it look like 1998

The PS1 look comes from a custom rendering pipeline rather than a filter. Vertices snap to a low-precision grid so models jitter the way they did on original hardware. Textures use affine mapping, so they warp across large polygons. Vertex colour tinting does the lighting work that the console couldn’t afford to do per pixel.

Animation

I modelled and animated all 22 weapons, enemies and props in Blender. Each gun has idle, fire, reload and draw animations, with procedural recoil and muzzle flash layered on top in engine. Blend trees in the Unity Animator handle the transitions between weapon states and enemy movement.

Where it’s at

It’s a playable prototype. Wave combat, enemy AI, weapons, progression and the rendering pipeline all work together. Next are more enemy types with their own behaviours, new level themes, better audio and a performance pass. After that, balancing, co-op and a Steam release.