From 6e7f74986c55c5b86e6e774332c26a0525a79fc5 Mon Sep 17 00:00:00 2001 From: nathan Date: Mon, 11 May 2026 01:20:44 -0700 Subject: [PATCH] Update Agrarian roadmap for version 0.01 --- AGRARIAN_DEVELOPMENT_ROADMAP.md | 380 +++++++++++++++++++------------- AGRARIAN_FOUNDATION_STATUS.md | 4 +- 2 files changed, 233 insertions(+), 151 deletions(-) diff --git a/AGRARIAN_DEVELOPMENT_ROADMAP.md b/AGRARIAN_DEVELOPMENT_ROADMAP.md index 4aacb81..7475af7 100644 --- a/AGRARIAN_DEVELOPMENT_ROADMAP.md +++ b/AGRARIAN_DEVELOPMENT_ROADMAP.md @@ -27,23 +27,49 @@ Core commitments: ## Current Known Project Location -NAS project path: +Primary development repository: + +```text +git@github.com:pacificao/AgrarianGameBuild.git +``` + +Primary local Codex/server checkout: + +```text +/home/nathan/AgrarianGameBuild +``` + +Recommended Windows checkout path: + +```text +D:\AgrarianGameBuild +``` + +Original NAS project path: ```text //linastorage.local/shared_drive/Unreal Game Projects/agrarian_game/AgrarianGame ``` -Important project root files/folders: +Important tracked project root files/folders: -- [ ] `AgrarianGame.uproject` -- [ ] `AgrarianGame.sln` -- [ ] `Source/` -- [ ] `Content/` -- [ ] `Config/` -- [ ] `Saved/` -- [ ] `Intermediate/` -- [ ] `Binaries/` -- [ ] `DerivedDataCache/` +- [x] `AgrarianGame.uproject` +- [x] `Source/` +- [x] `Content/` +- [x] `Config/` +- [x] `Scripts/` +- [x] `.gitignore` +- [x] `.gitattributes` +- [x] Roadmap and vision docs + +Important generated/local-only files/folders: + +- [x] `Binaries/` ignored +- [x] `Intermediate/` ignored +- [x] `Saved/` ignored +- [x] `DerivedDataCache/` ignored +- [x] `.vs/` ignored +- [x] `*.sln` ignored and regenerated locally ## Roadmap Status Legend @@ -57,41 +83,85 @@ Use these markers as the project progresses: --- +# Version .01 / 0.01 - Foundation Baseline + +Status: in progress. + +Purpose: establish the project in GitHub, prove Windows builds from a clean checkout, and create the first C++ gameplay foundation for survival, inventory, crafting, building, persistence, admin testing, and wildlife. + +Completed in version .01: + +- [x] Created GitHub repository `pacificao/AgrarianGameBuild`. +- [x] Imported the Unreal project into Git with Git LFS. +- [x] Added Unreal-safe `.gitignore` and `.gitattributes`. +- [x] Added Windows build and cleanup helper scripts. +- [x] Removed stale `VisualStudioTools` plugin reference. +- [x] Confirmed Windows build succeeds through `Scripts/BuildEditor-Windows.bat`. +- [x] Added replicated survival component. +- [x] Added replicated inventory component. +- [x] Added interaction interface and server-authoritative interaction path. +- [x] Added resource node actor. +- [x] Added campfire actor. +- [x] Added primitive shelter actor. +- [x] Added world time/weather game state. +- [x] Added crafting component. +- [x] Added item definition and recipe data asset classes. +- [x] Added building placement component. +- [x] Added save game structures and persistence subsystem scaffold. +- [x] Added persistent actor component and placed actor save/restore foundation. +- [x] Added admin/dev console commands. +- [x] Added replicated wildlife base actor. + +Open version .01 tasks: + +- [ ] Confirm the project opens cleanly in Unreal Editor after the latest wildlife commit. +- [ ] Create `IA_Interact` input action. +- [ ] Bind `IA_Interact` to `E` and a gamepad button. +- [ ] Assign `IA_Interact` to the character Blueprint's `InteractAction`. +- [ ] Create item definition assets for wood, stone, fiber, food, meat, hide, and primitive structure parts. +- [ ] Create recipe data assets for campfire, primitive shelter, basic tool, and bandage. +- [ ] Create Blueprint child actors for wood resource, campfire, primitive shelter, and first wildlife species. +- [ ] Place resource nodes, campfire, shelter, and wildlife in the test map. +- [ ] Add a simple HUD/debug display for survival and inventory. +- [ ] Test gather -> inventory -> craft -> place shelter -> save/load loop. +- [ ] Test wildlife damage/death/harvest loop. +- [ ] Decide whether to keep the current template variants or remove unused starter variants. + # Phase 0 - Project Foundation And Guardrails Goal: Prepare the project so all future development is controlled, recoverable, documented, and aligned with the long-term vision. ## 0.1 Repository And Source Control -- [ ] Decide where the Unreal project repository will live. -- [ ] Create or confirm GitHub repository for the Unreal project. -- [ ] Decide whether large assets use Git LFS. -- [ ] Add Git LFS for `.uasset`, `.umap`, large media, and binary assets if using Git. -- [ ] Create `.gitignore` for Unreal Engine. -- [ ] Ensure `Binaries/`, `Intermediate/`, `Saved/`, and `DerivedDataCache/` are excluded unless intentionally needed. -- [ ] Commit clean baseline project. +- [x] Decide where the Unreal project repository will live. +- [x] Create or confirm GitHub repository for the Unreal project. +- [x] Decide whether large assets use Git LFS. +- [x] Add Git LFS for `.uasset`, `.umap`, large media, and binary assets if using Git. +- [x] Create `.gitignore` for Unreal Engine. +- [x] Ensure `Binaries/`, `Intermediate/`, `Saved/`, and `DerivedDataCache/` are excluded unless intentionally needed. +- [x] Commit clean baseline project. - [ ] Create protected `main` branch. -- [ ] Create `dev` branch if we want staging before main. -- [ ] Define branch naming conventions. -- [ ] Define commit message conventions. +- [?] Create `dev` branch if we want staging before main. +- [~] Define branch naming conventions. +- [~] Define commit message conventions. - [ ] Define backup expectations for NAS and repo. -- [ ] Confirm this roadmap file is committed or otherwise backed up. +- [x] Confirm this roadmap file is committed or otherwise backed up. ## 0.2 Engine And Tooling Decisions -- [ ] Confirm Unreal Engine version. -- [ ] Decide Blueprint-first, C++-first, or hybrid approach. -- [ ] Decide whether Gameplay Ability System is needed now or later. -- [ ] Decide networking model for MVP. +- [x] Confirm Unreal Engine version. +- [x] Decide Blueprint-first, C++-first, or hybrid approach. +- [?] Decide whether Gameplay Ability System is needed now or later. +- [x] Decide networking model for MVP. - [ ] Decide dedicated server target platform. -- [ ] Decide local development platforms. -- [ ] Decide build machine strategy. -- [ ] Create repeatable local build instructions. +- [x] Decide local development platforms. +- [x] Decide build machine strategy. +- [x] Create repeatable local build instructions. - [ ] Create repeatable packaged build instructions. - [ ] Create repeatable dedicated server build instructions. -- [ ] Document required plugins. -- [ ] Disable unneeded plugins. -- [ ] Confirm project compiles from a clean checkout. +- [~] Document required plugins. +- [x] Disable unneeded plugins. +- [x] Confirm project compiles from a clean checkout. - [ ] Confirm project opens from a clean checkout. ## 0.3 Design Documentation @@ -107,8 +177,8 @@ Goal: Prepare the project so all future development is controlled, recoverable, - [ ] Create folder conventions for Unreal assets. - [ ] Create coding standards. - [ ] Create Blueprint standards if using Blueprints. -- [ ] Create data asset standards. -- [ ] Create save/persistence standards. +- [~] Create data asset standards. +- [~] Create save/persistence standards. ## 0.4 Project Structure @@ -151,55 +221,55 @@ Target deliverable: A small group can join a server, spawn into one biome, gathe ## 1.1 Core Player Foundation -- [ ] Create base player character class. -- [ ] Create player controller. -- [ ] Create camera setup. +- [x] Create base player character class. +- [x] Create player controller. +- [x] Create camera setup. - [ ] Decide first-person, third-person, or hybrid camera. -- [ ] Implement movement. +- [x] Implement movement. - [ ] Implement sprinting. - [ ] Implement crouching if needed. -- [ ] Implement jumping if needed. -- [ ] Implement interaction trace. +- [x] Implement jumping if needed. +- [x] Implement interaction trace. - [ ] Implement interact prompt. - [ ] Implement basic animation blueprint. -- [ ] Implement placeholder character mesh. -- [ ] Add replication for player movement and core state. -- [ ] Add developer debug overlay for player status. +- [x] Implement placeholder character mesh. +- [~] Add replication for player movement and core state. +- [~] Add developer debug overlay for player status. ## 1.2 Character Stats -- [ ] Create stat component. -- [ ] Add health. -- [ ] Add stamina. -- [ ] Add hunger. -- [ ] Add thirst. -- [ ] Add body temperature. +- [x] Create stat component. +- [x] Add health. +- [x] Add stamina. +- [x] Add hunger. +- [x] Add thirst. +- [x] Add body temperature. - [ ] Add exhaustion. -- [ ] Add injury state. +- [x] Add injury state. - [ ] Add infection or sickness placeholder. -- [ ] Add stat regeneration rules. -- [ ] Add stat decay rules. -- [ ] Add stat replication. +- [x] Add stat regeneration rules. +- [x] Add stat decay rules. +- [x] Add stat replication. - [ ] Add stat save/load support. -- [ ] Add debug commands for modifying stats. +- [x] Add debug commands for modifying stats. - [ ] Add HUD display for critical stats. ## 1.3 Time, Weather, And Environment Pressure -- [ ] Create world time system. -- [ ] Add day/night cycle. -- [ ] Add configurable time scale. +- [x] Create world time system. +- [x] Add day/night cycle. +- [x] Add configurable time scale. - [ ] Add temperature curve by time of day. -- [ ] Add simple weather states. -- [ ] Add clear weather. -- [ ] Add rain. -- [ ] Add cold/wind state. -- [ ] Add storm placeholder. -- [ ] Add weather transition rules. -- [ ] Add weather replication. +- [x] Add simple weather states. +- [x] Add clear weather. +- [x] Add rain. +- [x] Add cold/wind state. +- [x] Add storm placeholder. +- [x] Add weather transition rules. +- [x] Add weather replication. - [ ] Add weather save/load support. -- [ ] Connect weather to body temperature. -- [ ] Connect shelter to weather protection. +- [x] Connect weather to body temperature. +- [~] Connect shelter to weather protection. - [ ] Add first-pass sky and lighting. - [ ] Add audio cues for weather. @@ -222,9 +292,9 @@ Target deliverable: A small group can join a server, spawn into one biome, gathe ## 1.5 Inventory System - [ ] Design inventory data model. -- [ ] Create item definition data asset. -- [ ] Create item stack structure. -- [ ] Create inventory component. +- [x] Create item definition data asset. +- [x] Create item stack structure. +- [x] Create inventory component. - [ ] Add item pickup. - [ ] Add item drop. - [ ] Add stack splitting. @@ -232,80 +302,80 @@ Target deliverable: A small group can join a server, spawn into one biome, gathe - [ ] Add equipment slots if needed. - [ ] Add weight or carry capacity placeholder. - [ ] Add inventory UI. -- [ ] Add replication for inventory changes. +- [x] Add replication for inventory changes. - [ ] Add persistence for inventory. -- [ ] Add debug item spawn command. +- [x] Add debug item spawn command. ## 1.6 Gathering And Resources -- [ ] Create resource node base class. -- [ ] Add wood resource. +- [x] Create resource node base class. +- [~] Add wood resource. - [ ] Add stone resource. - [ ] Add fiber resource. - [ ] Add edible plant resource. - [ ] Add water gathering interaction. -- [ ] Add resource depletion. +- [x] Add resource depletion. - [ ] Add respawn rules for MVP. - [ ] Add tool requirement rules. -- [ ] Add bare-hand gathering fallback. +- [x] Add bare-hand gathering fallback. - [ ] Add resource node persistence. -- [ ] Add replicated gathering feedback. +- [x] Add replicated gathering feedback. ## 1.7 Primitive Crafting -- [ ] Design recipe data model. -- [ ] Create recipe data assets. -- [ ] Implement recipe validation. -- [ ] Implement crafting queue or instant crafting. +- [x] Design recipe data model. +- [x] Create recipe data assets. +- [x] Implement recipe validation. +- [x] Implement crafting queue or instant crafting. - [ ] Add primitive tool recipe. - [ ] Add campfire recipe. - [ ] Add shelter recipe. - [ ] Add simple container recipe. - [ ] Add bandage or basic treatment recipe. - [ ] Add crafting UI. -- [ ] Add multiplayer authority checks. -- [ ] Add crafting debug tools. +- [x] Add multiplayer authority checks. +- [~] Add crafting debug tools. ## 1.8 Fire System -- [ ] Create fire actor. -- [ ] Add fuel amount. -- [ ] Add ignition interaction. +- [x] Create fire actor. +- [x] Add fuel amount. +- [x] Add ignition interaction. - [ ] Add extinguish logic. -- [ ] Add warmth radius. -- [ ] Add light source. +- [x] Add warmth radius. +- [x] Add light source. - [ ] Add cooking placeholder if needed. - [ ] Add smoke/visual effect placeholder. -- [ ] Add replication. +- [x] Add replication. - [ ] Add persistence. -- [ ] Connect fire to body temperature. +- [x] Connect fire to body temperature. - [ ] Connect rain/weather to fire behavior. ## 1.9 Shelter Building - [ ] Decide MVP building style. -- [ ] Create build placement mode. -- [ ] Add ghost preview. -- [ ] Add placement validation. -- [ ] Add basic shelter piece. +- [x] Create build placement mode. +- [~] Add ghost preview. +- [x] Add placement validation. +- [x] Add basic shelter piece. - [ ] Add wall piece if needed. - [ ] Add roof piece if needed. - [ ] Add door/opening if needed. -- [ ] Add resource cost validation. -- [ ] Add construction interaction. -- [ ] Add shelter protection volume. -- [ ] Add shelter persistence. -- [ ] Add shelter replication. +- [x] Add resource cost validation. +- [x] Add construction interaction. +- [x] Add shelter protection volume. +- [x] Add shelter persistence. +- [x] Add shelter replication. - [ ] Add deconstruction or damage placeholder. ## 1.10 Injury And Basic Survival Consequences -- [ ] Add generic injury state. +- [x] Add generic injury state. - [ ] Add bleeding placeholder. - [ ] Add sprain or movement penalty placeholder. -- [ ] Add cold exposure damage. -- [ ] Add starvation damage. -- [ ] Add dehydration damage. +- [x] Add cold exposure damage. +- [x] Add starvation damage. +- [x] Add dehydration damage. - [ ] Add treatment item. - [ ] Add death state. - [ ] Add respawn rules for MVP. @@ -315,16 +385,16 @@ Target deliverable: A small group can join a server, spawn into one biome, gathe ## 1.11 Wildlife Prototype - [ ] Choose MVP wildlife species. -- [ ] Create wildlife base pawn. -- [ ] Add simple AI wander. -- [ ] Add flee behavior. -- [ ] Add aggression behavior if needed. -- [ ] Add health. +- [x] Create wildlife base pawn. +- [x] Add simple AI wander. +- [x] Add flee behavior. +- [x] Add aggression behavior if needed. +- [x] Add health. - [ ] Add damage. -- [ ] Add harvesting interaction. -- [ ] Add meat/hide/bone resources if needed. +- [x] Add harvesting interaction. +- [~] Add meat/hide/bone resources if needed. - [ ] Add spawn manager. -- [ ] Add replication. +- [x] Add replication. - [ ] Add performance limits. ## 1.12 Basic Multiplayer @@ -334,12 +404,12 @@ Target deliverable: A small group can join a server, spawn into one biome, gathe - [ ] Add server travel flow. - [ ] Add player join flow. - [ ] Add player spawn flow. -- [ ] Add replicated player stats. -- [ ] Add replicated inventory. -- [ ] Add replicated world time. -- [ ] Add replicated weather. -- [ ] Add replicated resource nodes. -- [ ] Add replicated build pieces. +- [x] Add replicated player stats. +- [x] Add replicated inventory. +- [x] Add replicated world time. +- [x] Add replicated weather. +- [x] Add replicated resource nodes. +- [x] Add replicated build pieces. - [ ] Add network relevancy rules. - [ ] Add basic latency testing. - [ ] Add disconnect/reconnect handling. @@ -350,13 +420,13 @@ Target deliverable: A small group can join a server, spawn into one biome, gathe - [ ] Save player identity. - [ ] Save player stats. - [ ] Save player inventory. -- [ ] Save placed structures. +- [x] Save placed structures. - [ ] Save resource depletion state if needed. - [ ] Save world time. - [ ] Save weather seed/state. - [ ] Save containers. - [ ] Add server-side save interval. -- [ ] Add manual admin save command. +- [x] Add manual admin save command. - [ ] Add load-on-server-start. - [ ] Add backup-before-save option. - [ ] Add recovery plan for corrupted save. @@ -995,36 +1065,36 @@ These tracks run across all phases and must not be left as afterthoughts. ## Month 1 - Foundation - [ ] Clean project structure. -- [ ] Confirm engine version. -- [ ] Set source control. -- [ ] Create base character. -- [ ] Create interaction system. +- [x] Confirm engine version. +- [x] Set source control. +- [x] Create base character. +- [x] Create interaction system. - [ ] Create first test map. -- [ ] Create stat component. -- [ ] Create inventory prototype. -- [ ] Create networking baseline. -- [ ] Create build instructions. +- [x] Create stat component. +- [x] Create inventory prototype. +- [x] Create networking baseline. +- [x] Create build instructions. ## Month 2 - Survival Loop -- [ ] Add hunger. -- [ ] Add thirst. -- [ ] Add health. -- [ ] Add stamina. -- [ ] Add weather. -- [ ] Add body temperature. -- [ ] Add gatherable resources. -- [ ] Add campfire. -- [ ] Add basic crafting. +- [x] Add hunger. +- [x] Add thirst. +- [x] Add health. +- [x] Add stamina. +- [x] Add weather. +- [x] Add body temperature. +- [~] Add gatherable resources. +- [x] Add campfire. +- [x] Add basic crafting. - [ ] Add basic HUD. ## Month 3 - Shelter And Persistence -- [ ] Add building placement. -- [ ] Add primitive shelter. +- [x] Add building placement. +- [x] Add primitive shelter. - [ ] Add storage container. - [ ] Add save/load for players. -- [ ] Add save/load for structures. +- [x] Add save/load for structures. - [ ] Add save/load for containers. - [ ] Add server restart persistence test. - [ ] Add one full day/night survival test. @@ -1035,8 +1105,8 @@ These tracks run across all phases and must not be left as afterthoughts. - [ ] Add join flow. - [ ] Add replicated inventory validation. - [ ] Add replicated building validation. -- [ ] Add wildlife prototype. -- [ ] Add harvesting. +- [x] Add wildlife prototype. +- [x] Add harvesting. - [ ] Add injury placeholder. - [ ] Add reconnect test. - [ ] Add 2-4 player internal test. @@ -1048,7 +1118,7 @@ These tracks run across all phases and must not be left as afterthoughts. - [ ] Add simple barter placeholder if feasible. - [ ] Define AGR integration design. - [ ] Define account/wallet bridge design. -- [ ] Add admin commands. +- [x] Add admin commands. - [ ] Add test feedback form/process. - [ ] Improve UI clarity. @@ -1080,7 +1150,7 @@ The first playable MVP is not complete until: - [ ] Weather and time affect survival. - [ ] Hunger and thirst matter. - [ ] Injury or damage can create meaningful risk. -- [ ] At least one wildlife system exists. +- [~] At least one wildlife system exists. - [ ] Inventory works and replicates. - [ ] Server restart preserves core state. - [ ] The game communicates what to do without hand-holding too much. @@ -1090,11 +1160,23 @@ The first playable MVP is not complete until: # Near-Term Next Actions -- [ ] Mount or create reliable local access path to the NAS `shared_drive` project. -- [ ] Decide whether to create a Git repository for the Unreal project. -- [ ] Inspect `Source/` and current Unreal project structure. -- [ ] Confirm Unreal Engine version. +- [x] Mount or create reliable local access path to the NAS `shared_drive` project. +- [x] Decide whether to create a Git repository for the Unreal project. +- [x] Inspect `Source/` and current Unreal project structure. +- [x] Confirm Unreal Engine version. - [ ] Confirm whether existing project opens cleanly. -- [ ] Confirm whether it compiles cleanly. -- [ ] Create Phase 0 task board from this roadmap. -- [ ] Start with base character, interaction, stats, inventory, and test map. +- [x] Confirm whether it compiles cleanly. +- [x] Create Phase 0 task board from this roadmap. +- [x] Start with base character, interaction, stats, inventory, and test map. + +Next version .01 priorities: + +- [ ] Pull latest and confirm `66b5322` wildlife build succeeds on Windows. +- [ ] Open the project in Unreal Editor from the clean Git checkout. +- [ ] Create the first editor assets needed for the playable loop. +- [ ] Place and test the first gatherable resource node. +- [ ] Place and test the campfire. +- [ ] Place and test the primitive shelter. +- [ ] Place and test the first wildlife Blueprint. +- [ ] Add simple survival/inventory HUD feedback. +- [ ] Run the first full gather -> craft -> place -> save -> load test. diff --git a/AGRARIAN_FOUNDATION_STATUS.md b/AGRARIAN_FOUNDATION_STATUS.md index c5772b8..3fdd635 100644 --- a/AGRARIAN_FOUNDATION_STATUS.md +++ b/AGRARIAN_FOUNDATION_STATUS.md @@ -32,8 +32,8 @@ ## Next Unreal Editor Tasks -- [ ] Compile project from Visual Studio. -- [ ] Fix any C++ compiler/UHT errors. +- [x] Compile project from Visual Studio. +- [x] Fix any C++ compiler/UHT errors. - [ ] Create `IA_Interact` input action. - [ ] Bind `IA_Interact` to `E` and a gamepad button. - [ ] Assign `IA_Interact` to the character Blueprint's `InteractAction`.