Add project planning docs and repo scaffolding
Vision, requirements, tech stack, and phased roadmap for the space survival game, plus Unreal-appropriate .gitignore/.gitattributes and Git LFS setup.
This commit is contained in:
30
.gitattributes
vendored
Normal file
30
.gitattributes
vendored
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
# Unreal binary/asset types via Git LFS
|
||||||
|
*.uasset filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.umap filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.upk filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.udk filter=lfs diff=lfs merge=lfs -text
|
||||||
|
|
||||||
|
# Common asset source formats
|
||||||
|
*.fbx filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.png filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.jpg filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.jpeg filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.tga filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.psd filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.wav filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.mp3 filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.ogg filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.mp4 filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.exr filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.hdr filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.ttf filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.otf filter=lfs diff=lfs merge=lfs -text
|
||||||
|
|
||||||
|
# Keep source/text files as normal git diffable text
|
||||||
|
*.cpp text
|
||||||
|
*.h text
|
||||||
|
*.cs text
|
||||||
|
*.ini text
|
||||||
|
*.uproject text
|
||||||
|
*.json text
|
||||||
|
*.md text
|
||||||
29
.gitignore
vendored
Normal file
29
.gitignore
vendored
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
# Unreal Engine
|
||||||
|
Binaries/
|
||||||
|
Build/
|
||||||
|
DerivedDataCache/
|
||||||
|
Intermediate/
|
||||||
|
Saved/
|
||||||
|
.vs/
|
||||||
|
*.VC.db
|
||||||
|
*.opensdf
|
||||||
|
*.opendb
|
||||||
|
*.sdf
|
||||||
|
*.sln
|
||||||
|
*.suo
|
||||||
|
*.xcodeproj
|
||||||
|
*.xcworkspace
|
||||||
|
|
||||||
|
# Generated project files (regenerated via "Generate Visual Studio project files")
|
||||||
|
*.vcxproj
|
||||||
|
*.vcxproj.filters
|
||||||
|
*.vcxproj.user
|
||||||
|
*.vcxproj.opendb
|
||||||
|
|
||||||
|
# Compiled/packaged builds
|
||||||
|
Plugins/*/Binaries/
|
||||||
|
Plugins/*/Intermediate/
|
||||||
|
|
||||||
|
# OS
|
||||||
|
.DS_Store
|
||||||
|
Thumbs.db
|
||||||
14
README.md
Normal file
14
README.md
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
# SpaceGame
|
||||||
|
|
||||||
|
A multiplayer space survival game built in Unreal Engine 5: build and maintain a
|
||||||
|
ship, explore a galaxy, land on planets, and establish a space station and
|
||||||
|
planetary bases as a shared base of operations.
|
||||||
|
|
||||||
|
## Docs
|
||||||
|
- [Vision](docs/01_VISION.md) — pitch, reference games, scope reality check
|
||||||
|
- [Requirements](docs/02_REQUIREMENTS.md) — functional requirements by system (MVP/Core/Stretch)
|
||||||
|
- [Tech Stack](docs/03_TECH_STACK.md) — engine, networking, backend, tooling
|
||||||
|
- [Roadmap](docs/04_ROADMAP.md) — phased build plan
|
||||||
|
|
||||||
|
## Status
|
||||||
|
Pre-Phase 0 — planning complete, Unreal project not yet created.
|
||||||
53
docs/01_VISION.md
Normal file
53
docs/01_VISION.md
Normal file
@@ -0,0 +1,53 @@
|
|||||||
|
# Vision
|
||||||
|
|
||||||
|
## Elevator pitch
|
||||||
|
A multiplayer space survival game: crew a ship you build and maintain, warp across
|
||||||
|
a galaxy of star systems, land on planets to explore and gather resources, and build
|
||||||
|
persistent bases — both a space station and planetary outposts — as a shared base of
|
||||||
|
operations with other players.
|
||||||
|
|
||||||
|
## Reference pillars
|
||||||
|
Three games anchor the scope. Each contributes a pillar; none should be copied wholesale.
|
||||||
|
|
||||||
|
| Pillar | Reference | What we're taking |
|
||||||
|
|---|---|---|
|
||||||
|
| Modular ship construction & survival systems | Space Engineers / Empyrion | Grid-based building, power/thrust/hull as real systems you maintain, not cosmetic |
|
||||||
|
| Procedural galaxy & planet landing | No Man's Sky | Seed-based generation, seamless-feeling landing, exploration-driven discovery |
|
||||||
|
| Galaxy-scale travel | Elite Dangerous | Star map, jump/warp travel between systems, a galaxy big enough to feel unbounded |
|
||||||
|
|
||||||
|
## Scope reality check
|
||||||
|
|
||||||
|
Read this before getting attached to any specific milestone order.
|
||||||
|
|
||||||
|
**Persistent shared-world multiplayer**, **full grid-based ship construction**, and
|
||||||
|
**seamless procedural planets** are each, individually, the kind of feature a funded
|
||||||
|
studio spends 1-3+ years getting right. Combined, and solo, this is a multi-year project
|
||||||
|
even at hobbyist pace. That's not a reason not to build it — it's a reason to be
|
||||||
|
deliberate about sequencing:
|
||||||
|
|
||||||
|
1. **Architect for the full vision, build the small vision first.** Every system below
|
||||||
|
is designed so it *can* scale to persistent multiplayer and a full galaxy, but the
|
||||||
|
early phases run single-player or session-based, with one hand-built system and one
|
||||||
|
or two planets. See [04_ROADMAP.md](04_ROADMAP.md).
|
||||||
|
2. **Cut scope at the hardest problems on purpose, not by accident.** The two hardest
|
||||||
|
technical problems here are (a) truly seamless space-to-planet-surface transitions,
|
||||||
|
and (b) a persistent world server that doesn't require you to run a 24/7 fleet alone.
|
||||||
|
The tech stack doc calls out the pragmatic version of each (instanced landing zones,
|
||||||
|
system-sharded servers) so you have something shippable, with a documented path to
|
||||||
|
the more ambitious version later.
|
||||||
|
3. **Revisit ambition at each phase boundary.** It is completely reasonable to decide,
|
||||||
|
after Phase 3 or 4, that a session-based co-op game (players host, invite friends,
|
||||||
|
world doesn't need to persist on your infrastructure) is the right final scope rather
|
||||||
|
than a persistent MMO. That decision gets easier once you can see the game running.
|
||||||
|
|
||||||
|
## Core pillars (functional)
|
||||||
|
- **Fly & fight** a ship across open space in a galaxy of star systems.
|
||||||
|
- **Build & maintain** that ship from modular components with real systems (power,
|
||||||
|
thrust, life support, hull integrity) that degrade and require upkeep.
|
||||||
|
- **Warp** between star systems via a galaxy map.
|
||||||
|
- **Land & explore** planets on foot (or surface vehicle), gather resources, encounter
|
||||||
|
hazards.
|
||||||
|
- **Build bases** — a space station as a persistent home base, and planetary outposts —
|
||||||
|
that you and other players can return to, expand, and defend.
|
||||||
|
- **Play together** — multiple players sharing ships, stations, and eventually a
|
||||||
|
persistent galaxy.
|
||||||
112
docs/02_REQUIREMENTS.md
Normal file
112
docs/02_REQUIREMENTS.md
Normal file
@@ -0,0 +1,112 @@
|
|||||||
|
# Requirements
|
||||||
|
|
||||||
|
Requirements are grouped by system. Each item is tagged:
|
||||||
|
- **[MVP]** — needed for the first playable milestone (single-player/session, one system)
|
||||||
|
- **[Core]** — needed before calling this "the game" (session-based multiplayer, full loop)
|
||||||
|
- **[Stretch]** — the persistent-MMO / full-galaxy ambition; comes after Core is solid
|
||||||
|
|
||||||
|
## 1. Ship
|
||||||
|
- [MVP] Player can pilot a ship with 6-DOF or flight-model movement in open space.
|
||||||
|
- [MVP] Ship has at least: hull, one power source, thrusters, one storage container.
|
||||||
|
- [MVP] Ship systems can be damaged and repaired (hull integrity, component health).
|
||||||
|
- [Core] Modular grid-based construction: attach/detach blocks (thrusters, power,
|
||||||
|
storage, weapons, life support) on a snap grid, similar to Space Engineers.
|
||||||
|
- [Core] Power system: generation, consumption, and outage consequences (no thrust,
|
||||||
|
no life support) when under-powered.
|
||||||
|
- [Core] Life support: oxygen and/or power must be maintained for crew to survive
|
||||||
|
aboard ship.
|
||||||
|
- [Core] Ship persists between sessions (saved layout, inventory, damage state).
|
||||||
|
- [Stretch] Multiple crew can occupy and operate the same ship simultaneously
|
||||||
|
(pilot, gunner, engineer roles).
|
||||||
|
- [Stretch] Ship-to-ship combat with component-level damage (target the engine,
|
||||||
|
disable the shield generator, etc).
|
||||||
|
|
||||||
|
## 2. Space Station (base of operations)
|
||||||
|
- [MVP] A single hand-placed station exists as a hub: dock, restock, respawn point.
|
||||||
|
- [Core] Players can build/expand the station from modular components (same
|
||||||
|
construction system as ships, non-mobile).
|
||||||
|
- [Core] Station has persistent storage, crafting stations, and a docking system for
|
||||||
|
player ships.
|
||||||
|
- [Core] Station respawn point on player death.
|
||||||
|
- [Stretch] Multiple stations, player-founded, potentially claimable/ownable by a
|
||||||
|
group.
|
||||||
|
- [Stretch] Station defense (turrets, shields) against NPC or player raids.
|
||||||
|
|
||||||
|
## 3. Galaxy & Travel
|
||||||
|
- [MVP] One star system, flyable, with a defined boundary.
|
||||||
|
- [Core] Star map UI showing known systems and jump targets.
|
||||||
|
- [Core] Warp/jump travel between systems with a travel-time or loading transition
|
||||||
|
(does not need to be seamless).
|
||||||
|
- [Stretch] Procedurally generated galaxy (seeded), effectively unbounded number of
|
||||||
|
systems, generated on demand rather than pre-authored.
|
||||||
|
- [Stretch] Points of interest per system (asteroid fields, derelicts, anomalies,
|
||||||
|
NPC factions/traders).
|
||||||
|
|
||||||
|
## 4. Planets
|
||||||
|
- [MVP] At least one landable planet/moon with a bounded, hand-authored surface
|
||||||
|
(an "instanced landing zone," not the full sphere).
|
||||||
|
- [MVP] On-foot exploration: movement, basic environment hazards (e.g. no
|
||||||
|
atmosphere = needs suit oxygen).
|
||||||
|
- [Core] Resource gathering on planet surface (mining/harvesting nodes feed back
|
||||||
|
into ship/station crafting).
|
||||||
|
- [Core] Multiple biomes/planet types with distinct visuals and hazards.
|
||||||
|
- [Core] Surface vehicle for faster traversal on larger landing zones (optional if
|
||||||
|
zones stay small).
|
||||||
|
- [Stretch] Procedurally generated planet surfaces (seed-based terrain, biome
|
||||||
|
rules), replacing hand-authored zones.
|
||||||
|
- [Stretch] Seamless space-to-surface transition (no loading screen) — explicitly
|
||||||
|
deferred; revisit only once everything else is solid, see 03_TECH_STACK.md.
|
||||||
|
|
||||||
|
## 5. Planetary Bases
|
||||||
|
- [Core] Same modular construction system usable on a planet surface (foundation-
|
||||||
|
anchored instead of free-floating).
|
||||||
|
- [Core] Base provides shelter from surface hazards (atmosphere, temperature,
|
||||||
|
radiation as applicable) and a resource processing/crafting point.
|
||||||
|
- [Stretch] Base persists and is visible/enterable by other players who land on the
|
||||||
|
same planet instance.
|
||||||
|
- [Stretch] Environmental hazards that specifically threaten planetary bases
|
||||||
|
(storms, corrosive atmosphere, local wildlife).
|
||||||
|
|
||||||
|
## 6. Survival Systems
|
||||||
|
- [MVP] Player character has health and a suit resource (oxygen and/or power) that
|
||||||
|
depletes and must be resupplied.
|
||||||
|
- [Core] Ship/station/base life support all tie into the same suit/oxygen model
|
||||||
|
consistently.
|
||||||
|
- [Core] Hull/structure integrity as a maintainable resource (things break, need
|
||||||
|
repair materials).
|
||||||
|
- [Stretch] Additional survival axes (temperature, radiation exposure, hunger) if
|
||||||
|
they add meaningful decisions rather than busywork.
|
||||||
|
|
||||||
|
## 7. Multiplayer & Persistence
|
||||||
|
- [MVP] Not networked — single player, local only. Prove the core loop first.
|
||||||
|
- [Core] Session-based multiplayer: a host runs a session, friends join directly
|
||||||
|
(via Epic Online Services sessions), state persists only for that session/host.
|
||||||
|
- [Stretch] Persistent shared world: player accounts, server-authoritative galaxy
|
||||||
|
state, ship/base ownership stored server-side, available across sessions without
|
||||||
|
a specific host needing to be online.
|
||||||
|
- [Stretch] World sharded by star system: each system instance runs as its own
|
||||||
|
server process, spun up on demand (see 03_TECH_STACK.md) rather than one seamless
|
||||||
|
mega-server.
|
||||||
|
- [Stretch] Permissions/ownership model for shared bases (who can build, access
|
||||||
|
storage, dock).
|
||||||
|
- [Stretch] Basic anti-grief tooling (claim radius, lockable doors/containers).
|
||||||
|
|
||||||
|
## 8. Progression & Economy
|
||||||
|
- [Core] Crafting/tech tree gates access to better ship components and base
|
||||||
|
modules.
|
||||||
|
- [Stretch] Trading between players and/or NPC factions.
|
||||||
|
- [Stretch] Currency or barter economy tied to resources gathered.
|
||||||
|
|
||||||
|
## 9. Non-Functional Requirements
|
||||||
|
- **Platforms:** PC (Steam) at launch; architecture should not preclude console
|
||||||
|
porting later (drives Epic Online Services choice over Steam-only APIs).
|
||||||
|
- **Performance target:** 60 fps on mid-range hardware (defer exact spec until an
|
||||||
|
art-direction pass; Nanite/Lumen usage affects this significantly).
|
||||||
|
- **Concurrent players (Stretch phase):** design target of dozens of concurrent
|
||||||
|
players per shard/system server, not hundreds — keeps the backend tractable for a
|
||||||
|
solo/small team.
|
||||||
|
- **Save integrity:** no permadeath data loss from a server crash mid-session
|
||||||
|
(autosave cadence + transactional persistence once a backend exists).
|
||||||
|
- **Art style:** not yet decided — recommend committing to a style that reduces
|
||||||
|
asset-production burden for a solo dev (stylized/mid-poly beats photoreal for a
|
||||||
|
one-person or small team; revisit once Phase 1 is playable).
|
||||||
104
docs/03_TECH_STACK.md
Normal file
104
docs/03_TECH_STACK.md
Normal file
@@ -0,0 +1,104 @@
|
|||||||
|
# Tech Stack
|
||||||
|
|
||||||
|
## Engine & language
|
||||||
|
- **Unreal Engine 5** (latest stable release at time of starting, e.g. 5.4/5.5 —
|
||||||
|
verify current LTS-ish version when you install).
|
||||||
|
- **C++ for core systems**, **Blueprint for iteration/content glue**. As a solo
|
||||||
|
dev newer to Unreal: prototype gameplay logic in Blueprint first, then move
|
||||||
|
performance- or replication-critical code (ship building grid, networked
|
||||||
|
movement, inventory) into C++ once the design is proven. Don't build the whole
|
||||||
|
game in Blueprint and don't build the whole game in C++ from day one either —
|
||||||
|
the hybrid is standard Unreal practice, not a compromise.
|
||||||
|
- **Visual Studio 2022** (Windows) as the C++ IDE/toolchain.
|
||||||
|
|
||||||
|
## Version control
|
||||||
|
- **Git + Git LFS** for the project (binary assets — meshes, textures, audio —
|
||||||
|
must go through LFS or the repo becomes unusable). This repo has been
|
||||||
|
initialized; add a `.gitattributes` for LFS and an Unreal-appropriate
|
||||||
|
`.gitignore` before the first Unreal project commit.
|
||||||
|
- Perforce is the more common choice at studios for large binary-heavy UE
|
||||||
|
projects, but Git LFS is sufficient for a solo/small-team project and keeps
|
||||||
|
your existing GitHub workflow.
|
||||||
|
|
||||||
|
## Networking (Core phase — session-based multiplayer)
|
||||||
|
- **Unreal's built-in actor replication** for gameplay state (ship position,
|
||||||
|
block placement, inventory, damage).
|
||||||
|
- **Epic Online Services (EOS)** for session creation/discovery, friend invites,
|
||||||
|
and cross-platform accounts — chosen over Steamworks-only APIs specifically
|
||||||
|
because you want console support eventually. EOS is free and is the standard
|
||||||
|
path to PC+console cross-play in Unreal.
|
||||||
|
- Dedicated server build target (headless `UnrealServer` build) so a session can
|
||||||
|
be hosted without a full client running, even before persistence exists.
|
||||||
|
|
||||||
|
## Backend & persistence (Stretch phase — persistent shared world)
|
||||||
|
This is the biggest jump in complexity and the part most likely to get
|
||||||
|
descoped. Recommended shape when you get here:
|
||||||
|
- **Sharding by star system, not one seamless server.** Each star system
|
||||||
|
instance runs as its own dedicated server process. Traveling between systems
|
||||||
|
is a disconnect/reconnect to a different server instance (conceptually like
|
||||||
|
EVE Online's per-constellation model, simplified). This avoids the single
|
||||||
|
hardest unsolved problem in the genre (Star Citizen's seamless single-shard
|
||||||
|
server meshing) and is achievable for a small team.
|
||||||
|
- **A backend service outside Unreal** for anything that must survive a server
|
||||||
|
restart: player accounts, ship/base ownership and layout, galaxy generation
|
||||||
|
seeds, and per-system deltas (what's been mined, what's been built).
|
||||||
|
- Service layer: a small REST or gRPC API (Node.js, Go, or C# — pick whatever
|
||||||
|
you're already comfortable with; this is a small service, not a place to
|
||||||
|
learn a new language under pressure).
|
||||||
|
- Database: **PostgreSQL**. Relational is the right fit for accounts,
|
||||||
|
ownership, and structured ship/base data.
|
||||||
|
- **On-demand server orchestration**: system servers spin up when a player
|
||||||
|
jumps in and idle down when empty, rather than running every possible system
|
||||||
|
24/7. Start manual (a script that launches a server process per active
|
||||||
|
system) — only reach for Kubernetes/Agones-style orchestration if you
|
||||||
|
actually hit the scale that needs it.
|
||||||
|
- Cloud hosting: any provider works; budget is the main constraint here more
|
||||||
|
than technical fit (AWS/GCP/a cheaper VPS host are all fine for the scale in
|
||||||
|
02_REQUIREMENTS.md's non-functional target of "dozens per shard").
|
||||||
|
|
||||||
|
## Procedural generation
|
||||||
|
- **Seed-based deterministic generation**: a star system's layout and a
|
||||||
|
planet's terrain/biome are derived from a seed, not stored wholesale. Only
|
||||||
|
store *deltas* (player-built structures, depleted resource nodes) in the
|
||||||
|
database — this is what makes a "big" galaxy cheap to persist.
|
||||||
|
- Noise library: Unreal's built-in noise nodes are fine to start; **FastNoise2**
|
||||||
|
(available as a plugin) if you need more control/performance for terrain.
|
||||||
|
- Recommend deferring full procedural planet terrain until after Phase 3
|
||||||
|
(02_REQUIREMENTS.md marks it Stretch) — hand-authored landing zones get you
|
||||||
|
a playable game much faster and de-risk the building/survival/multiplayer
|
||||||
|
work first.
|
||||||
|
|
||||||
|
## Planet rendering approach
|
||||||
|
- **Start with instanced landing zones**: a bounded terrain tile (built with
|
||||||
|
UE5 **Landscape** + **World Partition** for streaming, **Nanite** for detail
|
||||||
|
where useful) that you load into when landing, rather than a fully seamless
|
||||||
|
planet sphere. This is explicitly the pragmatic call flagged in
|
||||||
|
01_VISION.md — seamless space-to-surface (No Man's Sky/Star Citizen-style) is
|
||||||
|
a well-known multi-year problem even for funded teams.
|
||||||
|
- If/when seamless landing becomes a real goal, that's a dedicated R&D phase on
|
||||||
|
its own (large-scale floating-origin rendering, planet-scale LOD) — don't
|
||||||
|
plan it into an early milestone.
|
||||||
|
|
||||||
|
## Ship/base construction system
|
||||||
|
- No first-party Unreal system does grid-based modular construction
|
||||||
|
out of the box; this needs custom work:
|
||||||
|
- A snap-grid attachment system (component-based: each block is an actor or
|
||||||
|
instanced static mesh with defined attachment points).
|
||||||
|
- Underlying systems (power, thrust, life support) modeled as data that
|
||||||
|
blocks contribute to/consume from, independent of the visual mesh.
|
||||||
|
- Check the Unreal Marketplace/Fab for existing modular building or grid-snap
|
||||||
|
plugins to jumpstart the visual/placement layer — but expect to write the
|
||||||
|
systems layer (power/thrust/life-support simulation) yourself, since that's
|
||||||
|
specific to this game's design.
|
||||||
|
|
||||||
|
## Tooling summary
|
||||||
|
| Purpose | Tool |
|
||||||
|
|---|---|
|
||||||
|
| Engine | Unreal Engine 5 (latest stable) |
|
||||||
|
| IDE | Visual Studio 2022 |
|
||||||
|
| Source control | Git + Git LFS |
|
||||||
|
| Multiplayer sessions/accounts | Epic Online Services |
|
||||||
|
| Backend API (Stretch) | Node.js/Go/C# REST or gRPC service |
|
||||||
|
| Database (Stretch) | PostgreSQL |
|
||||||
|
| Procedural noise | UE built-in, or FastNoise2 plugin |
|
||||||
|
| CI (once useful) | GitHub Actions or Jenkins for automated builds |
|
||||||
68
docs/04_ROADMAP.md
Normal file
68
docs/04_ROADMAP.md
Normal file
@@ -0,0 +1,68 @@
|
|||||||
|
# Roadmap
|
||||||
|
|
||||||
|
Phased so there's a playable build at the end of every phase. Each phase is a
|
||||||
|
"piece" in the sense you described — build it, play it, then move to the next.
|
||||||
|
Reassess ambition at each phase boundary (see 01_VISION.md).
|
||||||
|
|
||||||
|
## Phase 0 — Foundations
|
||||||
|
- Install Unreal Engine 5, create the C++ project, set up Git LFS + `.gitignore`.
|
||||||
|
- Learn-by-building: a basic pawn that flies in open space with simple physics
|
||||||
|
(no building, no planets yet).
|
||||||
|
- Empty test level, no gameplay systems yet.
|
||||||
|
- **Exit criteria:** you can fly a placeholder ship around an empty level.
|
||||||
|
|
||||||
|
## Phase 1 — Core Ship Loop (single-player)
|
||||||
|
- One hand-built ship with hull, power source, thrusters, storage (02_REQUIREMENTS §1 MVP).
|
||||||
|
- Basic damage/repair on hull.
|
||||||
|
- One hand-authored landable zone (planet or asteroid) with on-foot movement and
|
||||||
|
suit oxygen (02_REQUIREMENTS §4/§6 MVP).
|
||||||
|
- Basic resource gathering that feeds a simple inventory.
|
||||||
|
- **Exit criteria:** fly from a starting point, land, gather something, fly back.
|
||||||
|
|
||||||
|
## Phase 2 — Construction System
|
||||||
|
- Modular grid-based building for the ship (attach/detach blocks) (§1 Core).
|
||||||
|
- Power/thrust/life-support modeled as real systems blocks contribute to.
|
||||||
|
- **Exit criteria:** you can meaningfully redesign your ship, not just pilot a
|
||||||
|
fixed one.
|
||||||
|
|
||||||
|
## Phase 3 — Space Station & Planetary Bases
|
||||||
|
- A station hub: dock, restock, respawn (§2 MVP/Core).
|
||||||
|
- Same construction system adapted for a station and for planet-anchored bases
|
||||||
|
(§5 Core).
|
||||||
|
- **Exit criteria:** you have a home base in space and at least one on a planet.
|
||||||
|
|
||||||
|
## Phase 4 — Multiplayer (session-based)
|
||||||
|
- Integrate Epic Online Services sessions.
|
||||||
|
- Replicate ship piloting, block placement, inventory, damage across clients.
|
||||||
|
- One host, invited friends join — no persistent backend yet (§7 Core).
|
||||||
|
- **Exit criteria:** you and a friend can fly the same ship and build together
|
||||||
|
in a session.
|
||||||
|
|
||||||
|
### Decision point
|
||||||
|
By here you'll know a lot more about how much solo/small-team bandwidth you
|
||||||
|
have. This is the natural point to decide: stay session-based (simpler, still
|
||||||
|
a complete game) or push into persistent-world territory (Phase 5+). Both are
|
||||||
|
legitimate outcomes.
|
||||||
|
|
||||||
|
## Phase 5 — Galaxy Expansion
|
||||||
|
- Star map UI + warp travel between multiple hand-authored systems (§3 Core).
|
||||||
|
- More planet variety (biomes, hazards) (§4 Core).
|
||||||
|
- Crafting/tech tree progression (§8 Core).
|
||||||
|
- **Exit criteria:** the game has a galaxy to explore, not just one system.
|
||||||
|
|
||||||
|
## Phase 6 — Persistence & Procedural Galaxy (Stretch)
|
||||||
|
- Backend service + PostgreSQL for accounts and ownership.
|
||||||
|
- Seed-based procedural system/planet generation, storing only deltas.
|
||||||
|
- Server-per-system sharding, on-demand instance orchestration.
|
||||||
|
- **Exit criteria:** the world persists without a specific host needing to be
|
||||||
|
online, and the galaxy is effectively unbounded.
|
||||||
|
|
||||||
|
## Phase 7 — Scale & Polish (Stretch)
|
||||||
|
- Matchmaking, base permissions/anti-grief tooling.
|
||||||
|
- Console porting (leaning on the EOS choice made in Phase 4).
|
||||||
|
- Economy/trading, additional content.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Next step:** Phase 0. Once Unreal Engine is installed and the project is
|
||||||
|
created, we can start on the flight pawn and empty test level.
|
||||||
Reference in New Issue
Block a user