113 lines
5.8 KiB
Markdown
113 lines
5.8 KiB
Markdown
# Codebase Readiness Review
|
|
|
|
Date: 2026-05-21
|
|
|
|
Scope: source code, build scripts, verification scripts, config files, and the
|
|
roadmap after completion of `0.1.S` and migration to the Ubuntu Unreal build
|
|
VM.
|
|
|
|
## 2026-05-21 Restart Audit Summary
|
|
|
|
- Active game checkout is clean on `main` at
|
|
`/home/nathan/UnrealProjects/AgrarianGame`.
|
|
- Active remote is self-hosted Gitea:
|
|
`http://192.168.5.21:3000/nathan/agrarian-game.git`.
|
|
- Repository currently tracks 723 files, including 300 Git LFS assets.
|
|
- `git lfs fsck` passes.
|
|
- Ignored Unreal-generated folders exist locally from verification builds:
|
|
`Binaries/`, `Intermediate/`, `Saved/`, and `DerivedDataCache/`.
|
|
- Those generated folders are ignored by `.gitignore` and are not part of the
|
|
repository state.
|
|
- Unreal Engine `5.7.4-release` is built from source at
|
|
`/opt/UnrealEngine-5.7`.
|
|
- `AgrarianGameEditor Linux Development` builds successfully on the Ubuntu VM;
|
|
the latest incremental check reported `Target is up to date` and
|
|
`Result: Succeeded`.
|
|
- Headless project load through the Linux source-built editor succeeds in
|
|
`NullRHI` mode with `0 error(s)`.
|
|
- The old roadmap project-location block was stale and has been reset to the
|
|
Ubuntu Unreal VM plus Gitea workflow.
|
|
- The next coding phase should begin with exactly
|
|
`0.2.0 Investor Visual Credibility Baseline`, then move to
|
|
`0.2.A Land And Claiming` after the investor-facing world no longer reads as
|
|
placeholder-heavy.
|
|
|
|
## 0.1 Completion Check
|
|
|
|
All `0.1.A` through `0.1.S` roadmap checkboxes are complete. The remaining
|
|
unchecked roadmap items before `Version 0.2` are North Star and philosophy
|
|
statements, not incomplete `0.1` implementation tasks.
|
|
|
|
## Current Strengths
|
|
|
|
- Core gameplay systems are separated into recognizable Unreal classes:
|
|
character, controller, game state, survival, inventory, crafting, building,
|
|
persistence, weather, resource nodes, wildlife, shelter, campfire, water, UI,
|
|
and automation.
|
|
- Server-authoritative paths are already present for core multiplayer actions
|
|
such as crafting, item use/drop/splitting, travel, save/load, respawn, fire,
|
|
resource depletion, wildlife state, world actors, and weather state.
|
|
- Persistence has a central subsystem and explicit world actor/resource/player
|
|
capture paths, which is the right base for 0.2 homesteading.
|
|
- The project now has broad verifier coverage for roadmap promises and MVP
|
|
guardrails. This is useful for preventing accidental regression while the team
|
|
moves into larger systems.
|
|
- The Windows build pipeline, package script, visual QA gate, and Linux server
|
|
target are established enough to keep milestone work shippable.
|
|
- The Ubuntu source-built Unreal lane now gives Codex a headless, local-disk
|
|
development path that is better suited to automated C++ work than the old
|
|
mapped-drive Windows workflow.
|
|
|
|
## Cleanup Findings
|
|
|
|
- `AgrarianEditorAutomationLibrary.cpp` is doing too much. It contains map
|
|
import, gameplay smoke tests, persistence tests, and setup helpers in one
|
|
large file. It should be split by responsibility before 0.2 adds claiming,
|
|
farming, storage, and household tests.
|
|
- The MVP frontend is still implemented as runtime-created widget trees. This
|
|
has been effective for fast iteration, but 0.2 should move toward reusable
|
|
UMG widgets, shared styling, and a cleaner input/navigation model.
|
|
- Placeholder/proxy meshes are intentionally still present for resources,
|
|
shelters, campfires, water, wildlife, and characters. 0.2 should replace the
|
|
highest-impact placeholders with durable realistic assets while preserving
|
|
data-driven class behavior.
|
|
- Several systems use hard-coded Ground Zero, MVP, and automation constants.
|
|
These are acceptable for 0.1 but should move toward data assets, config, or
|
|
tile metadata as 0.2 introduces claims, crops, animals, storage, and
|
|
homestead state.
|
|
- Admin/dev console commands currently share runtime controller paths. Before
|
|
broader testing, privileged commands need a clearer authority, role, and
|
|
audit boundary so tester tools do not become gameplay exploits.
|
|
- Verifier scripts are useful but numerous. 0.2 should add a grouped verifier
|
|
runner so milestone verification is one command with explicit categories.
|
|
- Some status docs predate the automated setup passes and should be treated as
|
|
historical unless their claims are repeated in the main roadmap or this
|
|
readiness review.
|
|
- `ripgrep` is not installed on the Ubuntu Unreal VM. This is not blocking, but
|
|
adding it would make future audits and code search faster.
|
|
|
|
## Low-Risk Cleanup Applied
|
|
|
|
- Removed duplicate `SavingAndQuit` branch logic from the MVP frontend continue
|
|
flow. Behavior is unchanged, but the control path is now easier to read.
|
|
|
|
## 0.2 Engineering Priorities
|
|
|
|
- Start with `0.2.0 Investor Visual Credibility Baseline`: terrain material,
|
|
grasses/shrubs/trees, water, character bodies/clothing, resource objects,
|
|
fire/smoke, shelter pieces, and wildlife, in that order.
|
|
- Then finish `0.2.A Land And Claiming` before moving to farming,
|
|
domestication, storage, or economy work.
|
|
- Keep land claims, farming, storage, household tasks, and future economy state
|
|
server-authoritative from the first implementation pass.
|
|
- Add schema/version fields when introducing new persistent records.
|
|
- Use data assets for claim rules, crop definitions, animal definitions,
|
|
storage container definitions, and early profession/knowledge topics.
|
|
- Create focused automation helpers by domain instead of expanding the current
|
|
monolithic editor automation file.
|
|
- Replace placeholder visuals in the order investors and testers notice them:
|
|
terrain material, grasses/shrubs/trees, water, character bodies/clothing,
|
|
resource objects, fire/smoke, shelter pieces, and wildlife.
|
|
- Keep ray tracing optional. The default non-ray-traced path must remain the
|
|
baseline for demo readability and remote testing.
|