francy51 30b6678569 feat(camera): comprehensive camera system (C1)
Rebuild the camera around a single persistent MainCamera and the
Camera System design-doc model: two framing modes (Orbit = inspection/
docked tactical, Follow = track the ship) plus Cinematic as a boolean
overlay (free rotation + HUD hide + live gameplay), not a third mode.

Critical fixes (gap analysis A1-A3):
- A1: scenes now *reconfigure* the one startup camera instead of spawning
  a second one; despawn_in_system_scene no longer destroys MainCamera, so
  the session never loses its camera. .single_mut() on MainCamera now
  succeeds during flight.
- A2: Cinematic is a real overlay — toggle (KeyC), free-look rotation in
  any framing, HUD hidden while active, gameplay keeps running.
- A3: removed dead FollowCamera component + setup_follow_camera; tracking
  is unified in track_camera_target.

Gaps B1-B6:
- B1: adopted doc model (Cinematic overlay, not exclusive mode).
- B2: canonical isometric tactical_rotation() baseline.
- B3: smooth reframing via OrbitFocusGoal exponential-damp tween.
- B4: non-zero CameraState defaults.
- B5: consolidated the three orbit-control impls into one (dropped the
  starting_base local control + its Euler variant).
- B6: track_camera_target keeps OrbitCamera.target synced to the focus
  entity every frame.

Docked view now frames the actual station at a tactical iso distance.
cargo check + clippy clean for all newly-authored code; net -10 lines
(more dead code removed than added). 42 tests pass.
2026-06-16 20:05:31 -04:00

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.

Description
No description provided
Readme 2.3 MiB
Languages
TypeScript 76.5%
Rust 21.2%
HTML 1.7%
CSS 0.5%