The dead rise. The living owe. Gravewake is a first-person gothic arena roguelite. Fight through a ruined cemetery called Mournhollow, tear open weapon packs at the Collector’s table, and turn the souls of the dead into a build that can survive the next descent. Clear twelve descents, face the Tithekeeper, then keep going in endless survival.
Answer the bell
Mournhollow is a 96 × 96 metre arena with five connected districts: an open court, a ruined chapel, a cloister, a bell sanctuary, and a grave orchard. Ground hunters, flying creatures, summoners, and bosses pressure different parts of your build. Twelve enemy types include dive-bombing Gloamwings, six-legged Grave Crawlers, armoured Iron Penitents, exploding Plague Vessels, and blinking Tithe Reapers.
Where you hit matters. Headshots can detach skulls. Severed arms weaken attacks, losing a leg causes a limp, and losing both makes an enemy crawl. When something dies, it becomes a Rapier ragdoll built from whatever body sections survived, and those remains react to later impacts.




Every kill drops experience. Level up and combat pauses while you choose a soul power, such as orbiting blades, lightning, frost pulses, or stronger pickups.
Three cards, one choice
Between descents, the Collector pays you in gold. Spend it on equipment and supplies, or tear open an Armory Pack: three cards, turn them over one at a time or all at once, then choose one to equip. Thirty-three weapons span six families, including revolvers, scatterguns, automatic weapons, grenade launchers, occult implements, and melee weapons like cleavers, rapiers, scythes, and flails. Burn, frost, venom, piercing, chain lightning, and life drain change how each one fights. The Binding lets you invest in a card’s damage, speed, and mana, and finishing a path unlocks Soul Siphon.




More screenshots



What it’s built with
Gravewake doesn’t use a game engine. It’s a custom Rust game layer and renderer built from libraries: wgpu for the GPU, winit for the window, egui for the menus and card UI, Rapier 3D for body physics, and rodio for audio. Lighting and post-processing are custom WGSL shaders. Creature geometry is GPU-instanced, static geometry is split into visibility batches, and only the six closest braziers contribute point lights. Models, textures, fonts, shaders, and sounds are embedded at compile time, so the game is a single executable with no asset downloads.
The weapons got a “weathered arsenal” pass: pitted iron with local corrosion, oxidized brass, worn walnut, and oil-darkened leather, from Blender material bakes packed into two texture atlases. UVs are attached to the model rather than the camera, so the texture doesn’t swim across the surface while you aim or reload.
How it was made
The twelve creatures are original Blender meshes, with recessed skull cavities, separate jaws and teeth, curved ribcages, and articulated hands and feet. They share the anatomical pose the game uses for hit regions, so headshots, dismemberment, and ragdolls use the same body parts you see. The architecture modules and seven of the weapons are also Blender-authored; the rest of the weapons are procedural Rust meshes. Blender is only an authoring tool, and the game doesn’t need it to run.
Gravewake began as a study inspired by Dark Veil — The Blackwood by Thomas Ricouard (@Dimillian), and the repository keeps the reference credits. It isn’t affiliated with that project, and the reference images and videos aren’t redistributed. Some UI artwork is generated, with its provenance recorded in the repository, and the recorded firearm and reload sounds are CC0.
Testing runs at two levels. cargo test covers combat, progression, saves, geometry, and physics. A native smoke run opens a real window, fights a fixed eight-enemy wave under the normal combat rules, buys and opens a pack through real UI pointer events, equips a weapon, buys an upgrade, and enters the next round, saving screenshots as it goes.
Play it
Gravewake is a playable development build, verified on Apple Silicon Macs with Metal. There’s no release download yet. Install Rust, clone the repository, and run cargo run --release --locked, or use ./scripts/package-macos.sh to build a local .app. Windows, Linux, and browser builds haven’t been validated, and a keyboard and mouse are required.
Browse the source on GitHub. GitHub records the repository’s creation on October 4, 2026.