Add fuel logistics, modular construction, and pad docking

This commit is contained in:
2026-03-13 15:21:16 -04:00
parent 95dd550fdb
commit bf744ec43e
16 changed files with 1128 additions and 282 deletions

View File

@@ -1,101 +1,74 @@
# Next Steps
## Galaxy / Viewer Fit
## Immediate Backend Follow-Up
The world is now much larger and more varied:
The simulation now has the beginnings of a self-sustaining bootstrap:
- roughly galaxy-scale system counts
- elevated system height variance
- procedural orbital metadata
- moons, rings, binary stars, asteroid belts, gas clouds
- special-case `Sol` system content
- ore miner
- gas miner
- station-side `gas -> fuel`
- constructor-led station module installation
- pad-based docking with reservation
- timed mining, spool-up, docking, and undocking
The next step is not “make the map larger.” That is already done for the current runtime.
The next step is to close the remaining logistics and simulation gaps around that bootstrap.
Recommended work:
- tune galaxy readability at scale
- better starfield depth cues
- stronger color/size differentiation for star classes
- improved system label decluttering
- add galaxy navigation affordances
- jump-to-system search
- constellation / region overlays
- bookmarks for notable systems such as `Sol`
- tighten viewer performance
- reduce orbit/moon draw cost when zoomed out
- pool or simplify distant celestial meshes
- profile high-system-count scenes
- add constructor material logistics
- allow the constructor to fetch module materials instead of assuming they are already on the target station
- add pickup / load phases and delivery priorities
- expose station installed modules and active construction to the viewer
- installed modules
- current build target
- build progress
- harden dock management
- make dock eligibility depend on dock type / ship class if needed
- surface pad occupancy in debug UI
- add stronger action timing coverage
- timed final approach / berthing if desired
- timed station-side processing queues if multiple modules run concurrently
- add recovery behavior for stranded ships
- rescue / tow / emergency refuel
- better handling after full fuel and power depletion
## Economic Growth
## Economy / Logistics
The current economy already supports:
The economy now has a more explicit resource chain:
1. mining ore
2. hauling to refining
3. refining / fabricating goods
4. spending those goods on ships and outposts
2. harvesting gas
3. processing `gas -> fuel`
4. refining ore
5. spending refined goods on station growth
The next step is not “invent a use for refined goods.” That use already exists.
The next step is to make faction growth more intentional and legible.
The next step is to make those logistics deliberate instead of bootstrap-scripted.
Recommended work:
- make shipbuilding priorities reactive
- build more miners / haulers when ore throughput is low
- build escorts when industrial losses rise
- build warships when frontier pressure rises
- make expansion logic consume the economy more visibly
- use industrial stock to claim and fortify central systems
- expose production pressure in UI
- show ore throughput
- show fabricated goods
- show queued faction priorities
- make resource type differences matter
- ore belts vs gas clouds
- gas-aware logistics and production choices
## Pirate Harassment
Pirates already exist and can raid, fight, and destroy ships.
What they are missing is sharper industrial harassment behavior.
Recommended work:
- prioritize miners, haulers, and refinery approaches as pirate targets
- add local threat weighting around:
- resource nodes
- refinery docking lanes
- undefended transport routes
- force empires to react by:
- escorting miners
- patrolling refinery systems
- building defensive stations sooner
This will make the industrial loop produce strategic tension instead of just passive growth.
## High-Value Gameplay Sequence
The most useful short-term gameplay loop to solidify is:
1. miners feed refining
2. refining feeds ship production
3. pirates harass industry
4. empires respond with escorts, patrols, and new outposts
5. stronger economies produce stronger military presence
6. system control shifts based on industrial strength and protection
That turns the simulation into a real strategy loop.
- split logistics roles more clearly
- ore miner
- gas miner
- hauler / constructor transport
- make station build priorities responsive
- fuel chain first when reserves are low
- ore refining when fuel is stable
- docking expansion when traffic backs up
- make fuel scarcity visible in debug UI
- fuel throughput
- gas stock
- dock contention
- move away from generic node selection
- let miners prefer nearby valid nodes
- factor travel cost and dock turnaround into throughput planning
## Concrete Implementation Order
1. Add viewer-scale performance controls for the larger galaxy.
2. Add faction production heuristics based on current economy and losses.
3. Make pirate target selection explicitly prefer economic targets.
4. Surface faction stocks, throughput, and build priorities in the HUD/debug views.
5. Expand the order/behavior set with higher-value RTS actions like `hold-here`, `attack`, and `defend-area`.
1. Add constructor pickup / delivery behavior for module materials.
2. Expose station installed modules, dock pads, and active construction in the contracts and viewer.
3. Add rescue / recovery behavior for power-starved ships.
4. Add faction build priorities based on fuel, ore throughput, and dock saturation.
5. Improve pirate targeting so industrial ships and docking lanes are high-value harassment targets.
6. Break backend simulation responsibilities into smaller planning / faction / combat / logistics modules.
## Network / Multiplayer
@@ -133,68 +106,31 @@ Recommended work:
- versioning
- reconnect / catch-up semantics
## Viewer / Debugging
The viewer still works as an observer/debug client first.
Recommended work:
- fix the current `followedShipId` regression in `GameViewer.ts`
- show station module state and construction state
- show dock occupancy and waiting ships
- expose fuel-chain health
- gas stock
- fuel stock
- refinery / processor activity
- improve event typing for:
- dock request
- dock granted
- refuel
- construction started / completed
## Interest Management
The current stream is world-wide.
That means every observer receives deltas for the full simulation, even when only looking at one part of space.
The stream is still world-wide.
Recommended work:
- add observer/view-scoped subscriptions
- visible systems
- nearby ships / stations / nodes
- faction-scoped or player-scoped channels later
- support subscribe / unsubscribe as camera focus changes
- send only relevant deltas per observer
- keep coarse strategic updates available for off-screen context
- system ownership
- major combat
- economy summaries
This is the key step that makes many simultaneous observers practical without broadcasting the entire world to everyone.
## Replication Quality
The backend already sends:
- initial snapshot
- incremental deltas
- event records
Recommended work:
- add stronger event typing
- spawn
- destroy
- dock
- undock
- cargo transfer
- combat hit / kill
- improve interpolation and extrapolation policies per entity type
- add per-layer presentation tuning in the viewer
- smoother fade bands between local / system / universe
- better visual density control at galaxy scale
- moon/orbit LOD based on zoom level
- add resync handling when a client falls too far behind
- consider switching from SSE to websocket transport if bidirectional command traffic becomes heavy
## Celestial Depth
The current celestial layer is procedurally rich, but still mostly decorative outside of resource nodes.
Recommended work:
- add authored moon metadata when needed
- labels
- resource-bearing moons
- special landmarks
- support multiple belts / cloud bands per system explicitly
- add stellar gameplay hooks
- hazardous neutron-star systems
- high-value binary systems
- rich-gas outer systems
- expose notable-system summaries in the viewer
- star class
- resource profile
- moon count
- keep strategic summaries for off-screen context