137 lines
4.1 KiB
Markdown
137 lines
4.1 KiB
Markdown
# Next Steps
|
|
|
|
## Immediate Backend Follow-Up
|
|
|
|
The simulation now has the beginnings of a self-sustaining bootstrap:
|
|
|
|
- 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 to close the remaining logistics and simulation gaps around that bootstrap.
|
|
|
|
Recommended work:
|
|
|
|
- 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
|
|
|
|
## Economy / Logistics
|
|
|
|
The economy now has a more explicit resource chain:
|
|
|
|
1. mining ore
|
|
2. harvesting gas
|
|
3. processing `gas -> fuel`
|
|
4. refining ore
|
|
5. spending refined goods on station growth
|
|
|
|
The next step is to make those logistics deliberate instead of bootstrap-scripted.
|
|
|
|
Recommended work:
|
|
|
|
- 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 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
|
|
|
|
The repository now has a split architecture:
|
|
|
|
- [apps/backend](/home/jbourdon/repos/space-game/apps/backend)
|
|
- authoritative .NET simulation
|
|
- [apps/viewer](/home/jbourdon/repos/space-game/apps/viewer)
|
|
- rendering and observer UI
|
|
- `GET /api/world`
|
|
- initial snapshot
|
|
- `GET /api/world/stream`
|
|
- incremental SSE delta stream
|
|
|
|
The next networking step is not “move the simulation into .NET.” That is already done for the active runtime.
|
|
|
|
The next steps are about scaling the transport and authority model cleanly.
|
|
|
|
Recommended work:
|
|
|
|
- add client-to-server command submission
|
|
- direct orders
|
|
- automation changes
|
|
- selection / observer commands only where useful
|
|
- add persistence
|
|
- saves
|
|
- world seeds
|
|
- reconnect support
|
|
- add player ownership / permissions
|
|
- command authority
|
|
- eventually fog of war / restricted information
|
|
- harden replication contracts
|
|
- explicit entity lifecycle events
|
|
- 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 stream is still world-wide.
|
|
|
|
Recommended work:
|
|
|
|
- add observer/view-scoped subscriptions
|
|
- send only relevant deltas per observer
|
|
- keep strategic summaries for off-screen context
|