The player ship was never wired to its own movement systems — it lacked MaxSpeed/TurnRate (so steer_to_target skipped it) and the Player marker (so click-to-move skipped it). Only integrate_velocity matched, leaving the ship drifting on a hardcoded undock vector and ignoring all input. Left-click was also bound to camera drag, selection, and move at once, and "Approach" started a cosmetic timer that moved nothing. New control scheme (single ship, like Stellaris minus fleet selection): - Right-click issues a move order (was left-click, which conflicted with selection + camera drag). - Left-click cursor-selects the target under the cursor (was nearest-to-camera) and deselects on empty space. - "Approach" now actually flies to the selected target, homing onto it via ApproachTarget even as it orbits. - Smooth acceleration + stopping-distance arrival deceleration + turn-rate-limited banking replace instant velocity snapping. - A pulsing destination waypoint ring gives on-world move-order feedback. - Undock holds position (zero velocity + at-ship MoveTarget) instead of drifting off on a stale vector. - Follow-cam now allows free-look rotate/zoom so the player can find and click targets while the camera tracks the ship. Steering is shared: the player ship and AI ships use one physics model. AI spawn bundle gets the new required components (Acceleration, ArrivalRadius). Also fixes a B0001 panic in the destination-marker system: the marker query now carries Without<PlayerShip> so it is provably disjoint from the player Transform read. Includes the in-system action-panel rebuild-on-change optimization (buttons and their Interaction state persist between frames so clicks register), which the Approach/Dock flow depends on. Flight tuning lives in in_system/scene.rs (PLAYER_MAX_SPEED, PLAYER_ACCELERATION, PLAYER_TURN_RATE, PLAYER_ARRIVAL_RADIUS).
VOID::NAV
A single-player narrative-driven space exploration experience where you author your own mini-series. Inspired by Windward's open-world freedom, Stellaris's strategic depth, and AI-generated storytelling in the style of The Templin Institute. Every campaign generates a unique tale of exploration, commerce, diplomacy, and conquest.
You are a young captain with an entire galaxy to explore—and a story to write. Every campaign features a unique, procedurally generated galaxy. Trade between stations, broker alliances between factions, wage war or maintain peace, and watch as the AI Story Director weaves your choices into an evolving narrative. Prefer a quieter life? Simply sail the stars and let your story unfold.
Conflict occurs through FTL-style tactical resource management—not dogfighting. When combat happens, it's a dramatic beat in your story. Click a hostile, your ship auto-engages, and you manage reactor power between Weapons / Shields / Engines / Auxiliary. The skill is in what you power and when, not how fast you click. But combat is a feature, not the focus.
VOID::NAV is a pnpm workspace monorepo for the game website, living design docs, and game client. V1 focuses on single-player emergent storytelling with local persistence and AI-driven narrative generation.
Core Pillars
| Pillar | Description |
|---|---|
| AI Story Director | Emergent narrative generation tracks your choices, alliances, conflicts, and discoveries. The AI weaves your actions into an ongoing saga. V1: real-time emergent storytelling. Future: episodic mini-series generation. |
| Exploration & Discovery | Procedurally generated galaxy with fog of war. Discover anomalies, derelicts, new factions. Every discovery becomes part of your story. |
| Trade & Diplomacy | Stellaris-inspired economic and political systems. Supply factions, broker alliances, negotiate borders. Commerce and conversation are equally viable paths. |
| Ship Customization | Your ship is your narrative vessel. Customize for trade, exploration, or conflict. Multiple classes from nimble scouts to powerful cruisers. |
| Dynamic Galaxy | Your actions shape both the world AND the story. Faction relations, territory control, and world events evolve through your choices. |
| Solo Adventure | A personal galaxy to explore at your own pace. Your story, your pace. The architecture supports optional co-op servers later. |
Secondary Features
- FTL-Style Tactical Combat — Power management combat exists as a dramatic beat in your story, not the gameplay loop
- Mining and resource gathering
- Mission and quest systems
Layout
apps/docs Living design docs and interactive demos
apps/site Public landing page / game website
apps/game Playable game client (Rust + Bevy)
packages/ui Shared UI primitives and CSS tokens
archive/legacy-static Legacy static prototype files kept for reference
Prerequisites
- Node.js 24+
- pnpm 9+
- Rust toolchain (for the game client)
Quick Start
pnpm install
pnpm dev
This launches the docs and site servers.
Open http://localhost:5175 to play the game.
Press Ctrl+C to stop everything.
Development
pnpm dev # Docs + site servers
pnpm dev:docs # Docs only (port 5173)
pnpm dev:site # Site only (port 5174)
cd apps/game && cargo run # Game client
Default ports:
- docs:
http://localhost:5173/docs - site:
http://localhost:5174 - game:
http://localhost:5175
Builds
pnpm build # Build all apps
pnpm check # Typecheck all packages
cd apps/game && cargo build # Build game client
Game Client
The game client (apps/game) is built with Rust and Bevy. It runs locally and persists game state locally with full single-player campaign support.