4.0 KiB
Next Steps
Economic Growth
The current economy already supports:
- mining ore
- hauling to refining
- refining / fabricating goods
- spending those goods on ships and outposts
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.
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
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:
- miners feed refining
- refining feeds ship production
- pirates harass industry
- empires respond with escorts, patrols, and new outposts
- stronger economies produce stronger military presence
- system control shifts based on industrial strength and protection
That turns the simulation into a real strategy loop.
Concrete Implementation Order
- Add faction production heuristics based on current economy and losses.
- Make pirate target selection explicitly prefer economic targets.
- Surface faction stocks, throughput, and build priorities in the HUD/debug views.
- Expand the order/behavior set with higher-value RTS actions like
hold-here,attack, anddefend-area. - Break src/game/GameApp.ts into smaller planning / faction / combat / logistics modules.
Migration To .NET
If the long-term goal is multiplayer, scale, persistence, or server authority, a .NET migration is a sensible next architectural track.
Recommended direction:
- keep the current Vite / Three.js client for rendering and input
- move simulation authority into a .NET backend
- treat the browser client as a renderer + command UI
Suggested migration phases:
-
Define a shared simulation contract.
- ship state snapshots
- orders
- behaviors
- assignments
- combat / economy events
-
Extract the pure simulation model from the Three.js runtime.
- separate rendering state from simulation state
- remove direct scene dependencies from game logic
-
Rebuild the simulation core in .NET.
OrderDefaultBehaviorAssignmentControllerTask- faction economy
- combat resolution
-
Add server-driven ticking.
- authoritative world step on the server
- deterministic or near-deterministic update model
- event stream / snapshot replication to clients
-
Add persistence and multiplayer infrastructure.
- saves
- world seeds
- reconnect support
- eventually player ownership / fog / permissions
Suggested .NET stack:
- ASP.NET Core for API / realtime transport
- SignalR or custom websocket layer for simulation updates
- PostgreSQL for persistence
- background hosted service for world ticks
Suggested immediate prep before migration:
- isolate simulation data structures from rendering objects
- isolate faction AI from UI code
- isolate travel / docking / mining / combat systems into separate modules
- make event emission explicit and serializable
The key rule for the migration is:
- do not port Three.js-shaped code into .NET
- first separate the simulation from rendering in TypeScript
- then move the pure simulation into .NET cleanly