- Rust 96.6%
- Python 3.4%
|
|
||
|---|---|---|
| assets | ||
| docs | ||
| scripts | ||
| src | ||
| .gitignore | ||
| Cargo.lock | ||
| Cargo.toml | ||
| CHARACTERS.md | ||
| CLAUDE.md | ||
| README.md | ||
| WORLD.md | ||
Terra Redux
A 3D tactical turn-based squad game built in Rust with Bevy. Think chess, except you build your own pieces: every unit is a character you assemble, equip, and develop.
Elevator Pitch
You command a small crew (a "cell") of characters on a 22nd-century Earth that has become one continuous city of a hundred billion people, run by three corporations. Combat is turn-based on a 3D map. Each character has an independent turn cadence — some act more often, some hit harder, some manipulate the battlefield through hacking or drones. PvE contracts earn gear and character development; PvP arenas test builds against other players' cells.
Missions range across the world's vertical tiers, from the flooded Sump beneath the city to private stations in orbit. Environment variety follows that axis.
See WORLD.md for setting, factions, and narrative canon, and
CHARACTERS.md for the playable roster and the prologue missions
that unlock them.
Core Design Pillars
- You make your own pieces. No fixed roster. A character is the sum of chassis, gear, augments, and learned abilities.
- Turn order is a resource. Speed determines how often you act, not just who acts first.
- Positioning is meaning. 3D space — elevation, cover, line of sight, verticality — matters as much as stats.
- Readable, not simulationist. Every number a player needs to make a decision is visible before they commit.
- The world has an opinion. Objectives, gear, and abilities carry the setting's politics.
See CLAUDE.md for the full design and architecture reference.
Tech Stack
| Concern | Choice |
|---|---|
| Language | Rust (2024 edition) |
| Engine | Bevy 0.19 |
| Rendering | Bevy PBR, 3D |
| UI | bevy_ui |
| Assets | glTF for models, Bevy asset server |
| Data | RON for game data definitions |
Running It
cargo run
For asset hot-reload during development (edit a RON file in assets/data/ and see the
change live without restarting):
cargo run --features dev
Testing
cargo test
cargo clippy --all-targets -- -D warnings
cargo fmt
Repository Layout
terra-redux/
├── CLAUDE.md # Conventions and architecture
├── WORLD.md # Setting bible: factions, lore, tone
├── CHARACTERS.md # Playable roster: roles, backstories, unlock prologues
├── Cargo.toml
├── assets/ # glTF models, RON data, fonts, audio
└── src/
├── main.rs # App assembly, plugin registration only
├── theme/ # Catppuccin Mocha palette + UI tokens
├── core/ # Shared types, GameState
├── data/ # RON asset loader
├── character/ # Chassis, stats, abilities, progression
└── ui/ # HUD, menus, character sheet
See CLAUDE.md for the full layout, including planned-but-not-yet-built
directories.
Status
Bootstrapped: Cargo project on Bevy 0.19 with a working main menu, Catppuccin Mocha
theming, RON-backed data loading with hot reload, and an initial character registry.
Not yet built: combat, missions, 3D, prologues, audio, netcode.
Next up is M1, the playable vertical slice — a grid, a 3D view, two units, move and
attack, turn order, and a win condition. See docs/ROADMAP.md for the
milestone sequence and the reasoning behind it.
Contributing
Work is tracked as issues on
git.marsh.gg, one branch and one pull
request per issue. docs/development.md has the workflow, the
definition of done, and the label scheme. Architecture decisions are recorded in
docs/adr/.