Expand galaxy generation and viewer rendering

This commit is contained in:
2026-03-12 21:48:14 -04:00
parent e57378ad2a
commit b57b04d90a
9 changed files with 1071 additions and 63 deletions

View File

@@ -45,6 +45,8 @@ The viewer currently supports:
- middle-mouse orbit camera
- smooth wheel zoom across local, system, and universe scales
- presentation fades between zoom bands instead of hard switches
- procedurally animated planets and moons from orbital metadata
- ringed planets, binary star presentation, and richer resource visuals
Universe-level presentation is now star-centric:
@@ -57,6 +59,14 @@ The viewer also includes plain-text HUD readouts for:
- game state
- network statistics
The viewer now consumes richer celestial metadata from the backend:
- star kind and star count
- planet type, shape, moon count, and orbital elements
- resource node source kind such as `asteroid-belt` and `gas-cloud`
Planets and moons are not simulated as networked entities. Their positions are reconstructed client-side from snapshot time plus orbital configuration.
## Simulation Status
The backend simulation already includes:
@@ -68,6 +78,11 @@ The backend simulation already includes:
- refining / fabrication
- faction growth through ship and outpost production
- pirate pressure and combat
- procedural galaxy generation with deterministic expansion beyond the authored scenario
- handcrafted `Sol` system easter egg with Saturn and rings
- resource geography beyond simple ore nodes
- asteroid belts for ore
- gas clouds for gas
The runtime model still follows the intended layered control architecture:
@@ -86,6 +101,11 @@ The runtime model still follows the intended layered control architecture:
- added a plain-text network statistics readout
- reworked the camera with smoother zoom, orbit, panning, and marquee selection
- cleaned up several viewer HUD elements and removed redundant panel content
- expanded the backend world into a large procedural galaxy with elevated vertical variance
- added deterministic orbital metadata for planets and client-side orbital animation in the viewer
- added moon rendering in the viewer
- added backend-generated asteroid belts and gas clouds as resource sources
- injected the `Sol` system into the generated galaxy
## Current Known Limitations
@@ -94,6 +114,9 @@ The runtime model still follows the intended layered control architecture:
- the viewer is still observer-focused
- no command submission UI yet
- system/universe transitions are improved but still need tuning in feel and art direction
- the galaxy is much larger now, so viewer performance and visual density need active tuning
- moon rendering is procedural from counts, not authored moon-by-moon data
- resource extraction behavior still treats all resource nodes generically
- piracy and faction growth are still functional rather than strategically deep
- no persistence for saves, seeds, or reconnect state
@@ -105,10 +128,18 @@ The runtime model still follows the intended layered control architecture:
- authoritative world state and stream coordination
- [apps/backend/Simulation/SimulationEngine.cs](/home/jbourdon/repos/space-game/apps/backend/Simulation/SimulationEngine.cs)
- simulation advancement
- [apps/backend/Simulation/ScenarioLoader.cs](/home/jbourdon/repos/space-game/apps/backend/Simulation/ScenarioLoader.cs)
- faction bootstrap
- galaxy generation
- special systems
- procedural celestial/resource content
- [apps/viewer/src/GameViewer.ts](/home/jbourdon/repos/space-game/apps/viewer/src/GameViewer.ts)
- camera, selection, streaming integration, and presentation
- orbital reconstruction and moon rendering
- [apps/viewer/src/api.ts](/home/jbourdon/repos/space-game/apps/viewer/src/api.ts)
- snapshot fetch and SSE stream integration
- [apps/viewer/src/contracts.ts](/home/jbourdon/repos/space-game/apps/viewer/src/contracts.ts)
- viewer-side snapshot contract for celestial metadata
- [shared/data](/home/jbourdon/repos/space-game/shared/data)
- scenario and world data definitions
@@ -116,4 +147,5 @@ The runtime model still follows the intended layered control architecture:
Validation passing at the end of this session:
- `dotnet build apps/backend/SpaceGame.Simulation.Api.csproj`
- `cd apps/viewer && npm run build`