EPIC: Unify P3 — The Surface Is Yours (persistent voxel zones + base conversion) #929

Closed
opened 2026-08-06 16:11:57 +00:00 by spikerj · 1 comment
Owner

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


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

Angular

Godot

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 -->
spikerj added the agenticenhancement labels 2026-08-06 16:11:57 +00:00
spikerj added the epic label 2026-08-07 13:43:03 +00:00
Author
Owner

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

Angular

Godot

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
Sign in to join this conversation.