Part of the Game Unification lane: all games become one game — different modes over one shared persistent universe (space → scan → hex-TD conquest → voxel base → satellite logistics → dungeon portals). Clients = Angular web + Godot (iOS/Android embed Godot). Full plan: ~/.claude/plans/i-want-a-plan-breezy-eclipse.md on the 4090.
Conquered planets become enterable persistent voxel zones seeded with the converted hex-TD base. Voxel single/multi menu dies — entry only by landing from space.
Base conversion = hand-authored voxel blueprints per building id (7 buildings incl. harvester) in an AOT-safe static table (GameServer/Data/BuildingBlueprints.cs); server stamps game_conquests.baseSnapshot into chunks at first world creation (hex axial → surface projection; command-center = spawn point).
Playable when done: conquer, land, walk the actual tower-defence base you built, in voxels; log out; it's still there.
Checklist generated by the umbrella-tracker migration, 2026-08-07 — Opus 5 Agent
Part of the **Game Unification** lane: all games become one game — different modes over one shared persistent universe (space → scan → hex-TD conquest → voxel base → satellite logistics → dungeon portals). Clients = Angular web + Godot (iOS/Android embed Godot). Full plan: `~/.claude/plans/i-want-a-plan-breezy-eclipse.md` on the 4090.
Conquered planets become enterable persistent voxel zones seeded with the converted hex-TD base. Voxel single/multi menu dies — entry only by landing from space.
Base conversion = hand-authored voxel blueprints per building id (7 buildings incl. harvester) in an AOT-safe static table (`GameServer/Data/BuildingBlueprints.cs`); server stamps `game_conquests.baseSnapshot` into chunks at first world creation (hex axial → surface projection; command-center = spawn point).
**Playable when done**: conquer, land, walk the actual tower-defence base you built, in voxels; log out; it's still there.
### Tickets
- [ ] #957
- [ ] #958
- [ ] #959
- [ ] #960
- [ ] #961
- [ ] #962
- [ ] #963
<!-- BEGIN MIGRATED-CHILDREN -->
---
## Child issues (per-repo, auto-close on merge)
This epic is complete when every box below is checked. Each child lives in the
repo that holds its fix, so `fixes #N` in a PR closes it automatically.
**Backend**
- [ ] spikerj/spikersoft-backend#598 — [BE] Gate LandOnPlanet on conquest; create GameVoxelWorld on first landing <sub>(was #957)</sub>
- [ ] spikerj/spikersoft-backend#599 — [BE] BuildingBlueprints static table (7 buildings) <sub>(was #958)</sub>
- [ ] spikerj/spikersoft-backend#600 — [BE] Base conversion: stamp baseSnapshot into voxel chunks at world creation <sub>(was #959)</sub>
**Angular**
- [ ] spikerj/spikersoft-angular#664 — [NG] Voxel bridge consumes server world: persisted chunks + converted structures <sub>(was #960)</sub>
- [ ] spikerj/spikersoft-angular#666 — [NG] Menu collapse 2/3: remove voxel single/multi menu <sub>(was #961)</sub>
- [ ] spikerj/spikersoft-angular#668 — [NG] Hex-TD victory → Land on your planet flow <sub>(was #962)</sub>
**Godot**
- [ ] spikerj/spikersoft-games-godot#14 — [GD] Landing interstitial (base summary + return to space) <sub>(was #963)</sub>
<sub>Checklist generated by the umbrella-tracker migration, 2026-08-07 — Opus 5 Agent</sub>
<!-- END MIGRATED-CHILDREN -->
The unit is tracked by the shared [Unify P3] title prefix and by sibling
cross-links in each issue body. Closing here — the umbrella tracker is being
emptied.
— Opus 5 Agent
Dissolved into per-repo issues as part of the umbrella-tracker breakup.
This epic could never auto-close from a merge, because Gitea only resolves
`fixes #N` within a single repo. Its work now lives where the code is:
**Backend**
- spikerj/spikersoft-backend#598 — [BE] Gate LandOnPlanet on conquest; create GameVoxelWorld on first landing
- spikerj/spikersoft-backend#599 — [BE] BuildingBlueprints static table (7 buildings)
- spikerj/spikersoft-backend#600 — [BE] Base conversion: stamp baseSnapshot into voxel chunks at world creation
**Angular**
- spikerj/spikersoft-angular#664 — [NG] Voxel bridge consumes server world: persisted chunks + converted structures
- spikerj/spikersoft-angular#666 — [NG] Menu collapse 2/3: remove voxel single/multi menu
- spikerj/spikersoft-angular#668 — [NG] Hex-TD victory → Land on your planet flow
**Godot**
- spikerj/spikersoft-games-godot#14 — [GD] Landing interstitial (base summary + return to space)
The unit is tracked by the shared `[Unify P3]` title prefix and by sibling
cross-links in each issue body. Closing here — the umbrella tracker is being
emptied.
— Opus 5 Agent
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Part of the Game Unification lane: all games become one game — different modes over one shared persistent universe (space → scan → hex-TD conquest → voxel base → satellite logistics → dungeon portals). Clients = Angular web + Godot (iOS/Android embed Godot). Full plan:
~/.claude/plans/i-want-a-plan-breezy-eclipse.mdon the 4090.Conquered planets become enterable persistent voxel zones seeded with the converted hex-TD base. Voxel single/multi menu dies — entry only by landing from space.
Base conversion = hand-authored voxel blueprints per building id (7 buildings incl. harvester) in an AOT-safe static table (
GameServer/Data/BuildingBlueprints.cs); server stampsgame_conquests.baseSnapshotinto chunks at first world creation (hex axial → surface projection; command-center = spawn point).Playable when done: conquer, land, walk the actual tower-defence base you built, in voxels; log out; it's still there.
Tickets
Child issues (per-repo, auto-close on merge)
This epic is complete when every box below is checked. Each child lives in the
repo that holds its fix, so
fixes #Nin a PR closes it automatically.Backend
Angular
Godot
Checklist generated by the umbrella-tracker migration, 2026-08-07 — Opus 5 Agent
Dissolved into per-repo issues as part of the umbrella-tracker breakup.
This epic could never auto-close from a merge, because Gitea only resolves
fixes #Nwithin a single repo. Its work now lives where the code is:Backend
Angular
Godot
The unit is tracked by the shared
[Unify P3]title prefix and by siblingcross-links in each issue body. Closing here — the umbrella tracker is being
emptied.
— Opus 5 Agent