From 7c85a6f91d3f8afa185238985b413dd4fa17c4d6 Mon Sep 17 00:00:00 2001 From: nathan Date: Wed, 13 May 2026 22:25:43 +0000 Subject: [PATCH] Update roadmap and build workflow --- AGRARIAN_DEVELOPMENT_ROADMAP.md | 94 ++++++++++++++++---- AGRARIAN_FOUNDATION_STATUS.md | 3 +- Scripts/BuildEditor-Windows.bat | 6 +- Source/AgrarianGame/AgrarianDebugHUD.cpp | 6 +- Source/AgrarianGame/AgrarianDebugHUD.h | 6 +- Source/AgrarianGame/AgrarianGameGameMode.cpp | 2 - 6 files changed, 89 insertions(+), 28 deletions(-) diff --git a/AGRARIAN_DEVELOPMENT_ROADMAP.md b/AGRARIAN_DEVELOPMENT_ROADMAP.md index d983695..b13506a 100644 --- a/AGRARIAN_DEVELOPMENT_ROADMAP.md +++ b/AGRARIAN_DEVELOPMENT_ROADMAP.md @@ -36,19 +36,31 @@ git@github.com:pacificao/AgrarianGameBuild.git Primary local Codex/server checkout: ```text -/home/nathan/AgrarianGameBuild +/mnt/projects/AgrarianGameBulid ``` -Recommended Windows checkout path: +Ubuntu-Codex host: ```text -D:\AgrarianGameBuild +192.168.5.10 ``` -Original NAS project path: +Unraid project share: ```text -//linastorage.local/shared_drive/Unreal Game Projects/agrarian_game/AgrarianGame +\\DevBox\projects\AgrarianGameBulid +``` + +Windows build VM: + +```text +Windows-Builder / 192.168.5.12 +``` + +Codex headless editor build command: + +```text +UNRAID_PASSWORD= /home/nathan/bin/agrarian-build-editor ``` Important tracked project root files/folders: @@ -111,6 +123,10 @@ Completed in version .01: - [x] Added persistent actor component and placed actor save/restore foundation. - [x] Added admin/dev console commands. - [x] Added replicated wildlife base actor. +- [x] Built `AgrarianGameEditor Win64 Development` successfully on Windows-Builder. +- [x] Added a Codex headless Windows build lane through `/home/nathan/bin/agrarian-build-editor`. +- [x] Installed VS 2022 Build Tools MSVC `14.44.35207` for Unreal 5.7 compatibility. +- [x] Fixed `AAgrarianDebugHUD` compile issue caused by `const` HUD helper methods calling non-const `AHUD::DrawText`. Open version .01 tasks: @@ -122,7 +138,7 @@ Open version .01 tasks: - [ ] 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. -- [x] Add a simple HUD/debug display for survival and inventory. +- [~] 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. @@ -153,7 +169,7 @@ Goal: Prepare the project so all future development is controlled, recoverable, - [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. +- [x] Decide dedicated server target platform. - [x] Decide local development platforms. - [x] Decide build machine strategy. - [x] Create repeatable local build instructions. @@ -164,6 +180,17 @@ Goal: Prepare the project so all future development is controlled, recoverable, - [x] Confirm project compiles from a clean checkout. - [ ] Confirm project opens from a clean checkout. +Current tooling decisions: + +- Unreal Engine version: `5.7`. +- Development approach: hybrid C++ foundation with Blueprint/content assembly in the editor. +- Source control and daily coding: Ubuntu-Codex working against the Unraid `projects` share. +- Editor/build host: Windows-Builder VM with GPU passthrough. +- Headless build path for Codex: Unraid QEMU guest agent into Windows-Builder. +- Preferred interactive editor/gameplay connection: Parsec or similar real-GPU remote desktop, not RDP. +- Dedicated server target: Linux for multiplayer hosting. +- Windows compiler used by Unreal 5.7: VS 2022 Build Tools MSVC `14.44.35207`. + ## 0.3 Design Documentation - [ ] Create game design document. @@ -211,6 +238,28 @@ Goal: Prepare the project so all future development is controlled, recoverable, - [ ] Define first playable internal milestone. - [ ] Define closed test readiness criteria. +## 0.6 Operational Infrastructure + +- [x] Stand up Unraid `DevBox` as shared project storage. +- [x] Create and expose the `projects` SMB share. +- [x] Add LAN name resolution for `DevBox`. +- [x] Mount `\\DevBox\projects` on Ubuntu-Codex at `/mnt/projects`. +- [x] Clone `pacificao/AgrarianGameBuild` to `/mnt/projects/AgrarianGameBulid`. +- [x] Configure GitHub SSH access on Ubuntu-Codex for clone, pull, and push. +- [x] Set up Windows-Builder as the Unreal/Visual Studio build VM. +- [x] Install Unreal Engine 5.7 on Windows-Builder. +- [x] Install Visual Studio 2026 for interactive development tools. +- [x] Install VS 2022 Build Tools for Unreal 5.7 compiler compatibility. +- [x] Confirm Codex can launch Windows headless build commands without RDP. +- [x] Confirm headless editor target build succeeds. +- [ ] Set up Parsec or equivalent real-GPU remote access for occasional Codex visual inspection. +- [ ] Stabilize Windows-Builder network/RDP behavior under GPU passthrough. +- [ ] Decide and document VM snapshot cadence before major engine/tool changes. +- [ ] Define Unraid share backup policy. +- [ ] Define GitHub branch protection and review rules. +- [ ] Add a build log retention policy. +- [ ] Add a simple operational runbook for rebooting/recovering Windows-Builder, Ubuntu-Codex, and DevBox. + --- # Phase 1 - Foundational Survival MVP @@ -252,7 +301,7 @@ Target deliverable: A small group can join a server, spawn into one biome, gathe - [x] Add stat replication. - [ ] Add stat save/load support. - [x] Add debug commands for modifying stats. -- [x] Add HUD display for critical stats. +- [~] Add HUD display for critical stats. ## 1.3 Time, Weather, And Environment Pressure @@ -437,7 +486,7 @@ Target deliverable: A small group can join a server, spawn into one biome, gathe - [ ] Add main menu placeholder. - [ ] Add join server screen. - [ ] Add loading screen. -- [x] Add HUD. +- [~] Add HUD. - [ ] Add inventory UI. - [ ] Add crafting UI. - [ ] Add interaction prompts. @@ -1035,7 +1084,7 @@ These tracks run across all phases and must not be left as afterthoughts. ## K. Build And Release Pipeline -- [ ] Define dev build process. +- [x] Define dev editor build process. - [ ] Define internal test build process. - [ ] Define closed alpha build process. - [ ] Define dedicated server packaging. @@ -1044,6 +1093,11 @@ These tracks run across all phases and must not be left as afterthoughts. - [ ] Define changelog format. - [ ] Define rollback process. - [ ] Define release approval checklist. +- [x] Add one-command Codex build wrapper for `AgrarianGameEditor`. +- [x] Store editor build logs under `Saved/BuildLogs/BuildEditor-Windows.log`. +- [ ] Add one-command packaged client build wrapper. +- [ ] Add one-command Linux dedicated server build wrapper. +- [ ] Add smoke-test command for build artifacts. ## L. Community And Marketing @@ -1064,7 +1118,7 @@ These tracks run across all phases and must not be left as afterthoughts. ## Month 1 - Foundation -- [ ] Clean project structure. +- [~] Clean project structure. - [x] Confirm engine version. - [x] Set source control. - [x] Create base character. @@ -1074,6 +1128,7 @@ These tracks run across all phases and must not be left as afterthoughts. - [x] Create inventory prototype. - [x] Create networking baseline. - [x] Create build instructions. +- [x] Create operational build lane for Codex. ## Month 2 - Survival Loop @@ -1086,7 +1141,7 @@ These tracks run across all phases and must not be left as afterthoughts. - [~] Add gatherable resources. - [x] Add campfire. - [x] Add basic crafting. -- [x] Add basic HUD. +- [~] Add basic HUD. ## Month 3 - Shelter And Persistence @@ -1168,15 +1223,24 @@ The first playable MVP is not complete until: - [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. +- [x] Set up Ubuntu-Codex source-control lane. +- [x] Set up Windows-Builder headless Unreal build lane. +- [x] Fix current C++ compile break and verify `AgrarianGameEditor` build. 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. +- [x] Confirm latest C++ build succeeds on Windows-Builder. +- [ ] Open the project in Unreal Editor from the shared project path. +- [ ] Create `IA_Interact` and bind it to `E` plus a gamepad button. +- [ ] Assign `IA_Interact` to the Agrarian character Blueprint. - [ ] 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. -- [x] Add simple survival/inventory HUD feedback. +- [~] Add simple survival/inventory HUD feedback. - [ ] Run the first full gather -> craft -> place -> save -> load test. + +Immediate next item: + +- [ ] Open the project in Unreal Editor on Windows-Builder using the shared project path, then create/bind `IA_Interact` so the C++ interaction path can be tested in the editor. diff --git a/AGRARIAN_FOUNDATION_STATUS.md b/AGRARIAN_FOUNDATION_STATUS.md index 1d8233d..3fdd635 100644 --- a/AGRARIAN_FOUNDATION_STATUS.md +++ b/AGRARIAN_FOUNDATION_STATUS.md @@ -29,7 +29,6 @@ - [x] Primitive shelter actor is marked as a persistent world actor. - [x] Admin/dev console commands added to the Agrarian player controller. - [x] Wildlife base actor added with replicated health, simple movement states, and harvesting hooks. -- [x] Simple debug HUD added for survival and inventory feedback. ## Next Unreal Editor Tasks @@ -43,7 +42,7 @@ - [ ] Create Blueprint child `BP_AGR_PrimitiveShelter` from `AgrarianShelterActor`. - [ ] Assign placeholder meshes to MVP actors. - [ ] Place resource nodes and campfire in the test map. -- [x] Add simple HUD/debug display for survival and inventory. +- [ ] Add simple HUD/debug display for survival and inventory. - [ ] Test gather -> inventory -> campfire loop. ## Next C++ Foundation Tasks diff --git a/Scripts/BuildEditor-Windows.bat b/Scripts/BuildEditor-Windows.bat index 3c8b045..09cd434 100644 --- a/Scripts/BuildEditor-Windows.bat +++ b/Scripts/BuildEditor-Windows.bat @@ -15,7 +15,7 @@ if not exist "%BUILD_BAT%" ( echo %UE_ROOT% echo. echo Edit UE_ROOT in this script if your engine is installed somewhere else. - pause + if not defined AGRARIAN_NO_PAUSE pause exit /b 1 ) @@ -31,7 +31,7 @@ if not "%BUILD_EXIT_CODE%"=="0" ( echo Build failed with exit code %BUILD_EXIT_CODE%. echo Log file: %LOG_FILE% echo. - pause + if not defined AGRARIAN_NO_PAUSE pause exit /b %BUILD_EXIT_CODE% ) @@ -39,5 +39,5 @@ echo. echo Build completed successfully. echo Log file: %LOG_FILE% echo. -pause +if not defined AGRARIAN_NO_PAUSE pause exit /b 0 diff --git a/Source/AgrarianGame/AgrarianDebugHUD.cpp b/Source/AgrarianGame/AgrarianDebugHUD.cpp index 7834328..4b21374 100644 --- a/Source/AgrarianGame/AgrarianDebugHUD.cpp +++ b/Source/AgrarianGame/AgrarianDebugHUD.cpp @@ -28,7 +28,7 @@ void AAgrarianDebugHUD::DrawHUD() DrawInventory(AgrarianCharacter->GetInventoryComponent(), X, Y); } -void AAgrarianDebugHUD::DrawSurvival(const UAgrarianSurvivalComponent* SurvivalComponent, float X, float& Y) const +void AAgrarianDebugHUD::DrawSurvival(const UAgrarianSurvivalComponent* SurvivalComponent, float X, float& Y) { if (!SurvivalComponent) { @@ -46,7 +46,7 @@ void AAgrarianDebugHUD::DrawSurvival(const UAgrarianSurvivalComponent* SurvivalC Y += 10.0f * TextScale; } -void AAgrarianDebugHUD::DrawInventory(const UAgrarianInventoryComponent* InventoryComponent, float X, float& Y) const +void AAgrarianDebugHUD::DrawInventory(const UAgrarianInventoryComponent* InventoryComponent, float X, float& Y) { if (!InventoryComponent) { @@ -69,7 +69,7 @@ void AAgrarianDebugHUD::DrawInventory(const UAgrarianInventoryComponent* Invento } } -void AAgrarianDebugHUD::DrawLine(const FString& Text, float X, float& Y, const FColor& Color) const +void AAgrarianDebugHUD::DrawLine(const FString& Text, float X, float& Y, const FColor& Color) { DrawText(Text, Color, X, Y, nullptr, TextScale, false); Y += 18.0f * TextScale; diff --git a/Source/AgrarianGame/AgrarianDebugHUD.h b/Source/AgrarianGame/AgrarianDebugHUD.h index 50e8784..cd5f7a1 100644 --- a/Source/AgrarianGame/AgrarianDebugHUD.h +++ b/Source/AgrarianGame/AgrarianDebugHUD.h @@ -24,7 +24,7 @@ public: float TextScale = 1.0f; protected: - void DrawSurvival(const UAgrarianSurvivalComponent* SurvivalComponent, float X, float& Y) const; - void DrawInventory(const UAgrarianInventoryComponent* InventoryComponent, float X, float& Y) const; - void DrawLine(const FString& Text, float X, float& Y, const FColor& Color = FColor::White) const; + void DrawSurvival(const UAgrarianSurvivalComponent* SurvivalComponent, float X, float& Y); + void DrawInventory(const UAgrarianInventoryComponent* InventoryComponent, float X, float& Y); + void DrawLine(const FString& Text, float X, float& Y, const FColor& Color = FColor::White); }; diff --git a/Source/AgrarianGame/AgrarianGameGameMode.cpp b/Source/AgrarianGame/AgrarianGameGameMode.cpp index 9d66d14..998cf69 100644 --- a/Source/AgrarianGame/AgrarianGameGameMode.cpp +++ b/Source/AgrarianGame/AgrarianGameGameMode.cpp @@ -1,11 +1,9 @@ // Copyright Epic Games, Inc. All Rights Reserved. #include "AgrarianGameGameMode.h" -#include "AgrarianDebugHUD.h" #include "AgrarianGameState.h" AAgrarianGameGameMode::AAgrarianGameGameMode() { GameStateClass = AAgrarianGameState::StaticClass(); - HUDClass = AAgrarianDebugHUD::StaticClass(); }