VoidDrift
{{ partial “itchio-embed.html” . }}
The Game
VoidDrift is a mining simulation set at the edge of a black hole. The asteroid fields are debris from what the black hole eats. You mine them. The station has been here longer than you. It should have been consumed. It has not been. You don’t know why.
The Loop:
- Drones mine asteroids autonomously
- Ore refines and forges into components
- Bottles arrive — you collect them, read the signal, fulfill requests
- Upgrades accelerate the loop
- The loop continues
There is no win condition. There is no escape. The horizon is a one-way membrane.
How I Built It
I didn’t know Rust. I decided to learn by shipping a real game.
Six weeks later, VoidDrift was live on itch.io with 505 views and a #2 ranking on r/bevy. The game runs on Android and browser, built entirely with procedural geometry — no sprite assets, everything generated at runtime.
Targeted Hardware: Built specifically for the Moto G 2025 (720×1604, Mali-G57 GPU). Every architectural decision was made for that specific device.
Key Technical Decisions:
- bevy_egui for all HUD — Mali GPU stabilization through immediate mode GUI
- System partitioning — Respecting Bevy’s 20-tuple schedule limit
- Universal Disjointness — Without
filter standard for all &mut Transform queries - ADR-governed development — 11 Architecture Decision Records document every major choice
The Technical Story
Why Bevy? Rust-based ECS engine with strong performance characteristics and compile-time safety. The ecosystem is growing rapidly, and the architecture aligns well with complex simulation needs.
Why bevy_egui for all HUD? Mali GPU stabilization. The immediate mode GUI approach reduces draw call complexity compared to traditional retained-mode UI frameworks, critical for the target hardware.
Why ADR-governed development? 11 Architecture Decision Records govern the project. This ensures architectural decisions are documented, justified, and reversible when needed.
Why procedural geometry? No sprite assets. Everything is generated at runtime. This keeps the game small, fast to load, and demonstrates that you don’t need art assets to ship something playable.
Lessons Learned
Targeting specific hardware forces architectural clarity. When every decision must justify itself against the constraints of a Moto G 2025, you cut away abstractions that don’t pull their weight.
Also: Some questions shouldn’t be answered. The narrative embraces what stays unexplained. The station should have been consumed. It has not been. You don’t know why.
itch.io: Play VoidDrift GitHub: VoidDrift
Built with Bevy (Rust). Android + browser. Six weeks from learning Rust to shipped.