Prepare roadmap for 0.2 homesteading

This commit is contained in:
2026-05-19 16:15:35 -07:00
parent 64d0603680
commit c742a172da
4 changed files with 204 additions and 5 deletions
+54
View File
@@ -898,22 +898,41 @@ Target deliverable: A small group can join a server, spawn into one biome, gathe
Goal: Transition from temporary survival into lasting settlement and land stewardship. Goal: Transition from temporary survival into lasting settlement and land stewardship.
Engineering posture for 0.2:
- Start with durable, server-authoritative systems instead of one-off MVP
shortcuts.
- Add schema/version fields to every new persistent record.
- Prefer data assets for claim, crop, animal, storage, structure, economy, and
knowledge definitions.
- Keep each new system covered by focused verifiers and grouped milestone
checks.
- Replace visible placeholders with realistic, production-survivable assets in
the same order players encounter them.
## 0.2.A Land And Claiming ## 0.2.A Land And Claiming
- [ ] Design land claim philosophy. - [ ] Design land claim philosophy.
- [ ] Define claim data schema with claim ID, owner, bounds, tile anchor, permissions, upkeep state, decay state, and schema version.
- [ ] Define server-authoritative claim validation rules for placement, overlap, terrain suitability, water/road access, and abuse prevention.
- [ ] Define claim size limits. - [ ] Define claim size limits.
- [ ] Define claim cost or effort. - [ ] Define claim cost or effort.
- [ ] Implement claim marker. - [ ] Implement claim marker.
- [ ] Implement claim ownership. - [ ] Implement claim ownership.
- [ ] Implement claim permissions. - [ ] Implement claim permissions.
- [ ] Add claim debug/admin inspection commands.
- [ ] Add claim UI. - [ ] Add claim UI.
- [ ] Add claim persistence. - [ ] Add claim persistence.
- [ ] Add claim save/load/restart verifier.
- [ ] Add claim conflict rules. - [ ] Add claim conflict rules.
- [ ] Add abandoned claim decay rules. - [ ] Add abandoned claim decay rules.
- [ ] Add claim handoff rules for household/family inheritance later.
## 0.2.B Farming ## 0.2.B Farming
- [ ] Design soil model. - [ ] Design soil model.
- [ ] Define crop data asset schema for species, seed item, planting season, soil needs, moisture range, temperature range, growth stages, harvest products, failure risks, and knowledge hooks.
- [ ] Define tile biome/climate inputs that farming reads from rainfall, temperature, season, elevation, soil, and drainage metadata.
- [ ] Add basic soil quality. - [ ] Add basic soil quality.
- [ ] Add moisture. - [ ] Add moisture.
- [ ] Add crop data assets. - [ ] Add crop data assets.
@@ -929,10 +948,14 @@ Goal: Transition from temporary survival into lasting settlement and land stewar
- [ ] Add seed selection and plant breeding foundation concepts. - [ ] Add seed selection and plant breeding foundation concepts.
- [ ] Add crop disease, pest pressure, and weed management knowledge hooks. - [ ] Add crop disease, pest pressure, and weed management knowledge hooks.
- [ ] Add weather and seasonal planning effects on planting and yield reliability. - [ ] Add weather and seasonal planning effects on planting and yield reliability.
- [ ] Add first crop visual states that read as believable seedlings, growing plants, mature crops, and failed crops.
- [ ] Add crop save/load/restart verifier.
## 0.2.C Domestication ## 0.2.C Domestication
- [ ] Choose first domestic animal. - [ ] Choose first domestic animal.
- [ ] Define animal data asset schema for species, temperament, diet, water needs, shelter needs, products, reproduction window, disease risks, and knowledge hooks.
- [ ] Define containment and ownership records before adding breeding.
- [ ] Add taming concept. - [ ] Add taming concept.
- [ ] Add feeding. - [ ] Add feeding.
- [ ] Add containment. - [ ] Add containment.
@@ -944,9 +967,12 @@ Goal: Transition from temporary survival into lasting settlement and land stewar
- [ ] Add animal handling knowledge for approach, containment, stress, feeding, hydration, shelter, and humane care. - [ ] Add animal handling knowledge for approach, containment, stress, feeding, hydration, shelter, and humane care.
- [ ] Add livestock reproduction knowledge for breeding windows, gestation, offspring care, genetic traits, and recordkeeping. - [ ] Add livestock reproduction knowledge for breeding windows, gestation, offspring care, genetic traits, and recordkeeping.
- [ ] Add animal disease, sanitation, quarantine, parasite, and nutrition knowledge hooks. - [ ] Add animal disease, sanitation, quarantine, parasite, and nutrition knowledge hooks.
- [ ] Add first believable domestic animal visual proxy or asset so animal systems are not represented by generic shapes.
- [ ] Add animal save/load/restart verifier.
## 0.2.D Storage And Preservation ## 0.2.D Storage And Preservation
- [ ] Define storage data schema for container ID, owner/claim, slots, weight/volume limits, permissions, spoilage environment, and schema version.
- [ ] Add storage containers. - [ ] Add storage containers.
- [ ] Add container permissions. - [ ] Add container permissions.
- [ ] Add spoilage timer. - [ ] Add spoilage timer.
@@ -956,9 +982,12 @@ Goal: Transition from temporary survival into lasting settlement and land stewar
- [ ] Add storage UI. - [ ] Add storage UI.
- [ ] Add food preservation knowledge for drying, smoking, salting, fermenting, canning later, cold storage, spoilage, pests, and contamination risk. - [ ] Add food preservation knowledge for drying, smoking, salting, fermenting, canning later, cold storage, spoilage, pests, and contamination risk.
- [ ] Add material storage knowledge for moisture, rot, rust, pests, fire risk, and inventory rotation. - [ ] Add material storage knowledge for moisture, rot, rust, pests, fire risk, and inventory rotation.
- [ ] Add storage save/load/restart verifier.
- [ ] Add storage visual differentiation for baskets, crates, racks, caches, and protected containers.
## 0.2.E Permanent Structures ## 0.2.E Permanent Structures
- [ ] Define structure piece data asset schema for material, footprint, snap points, structural role, health, weather protection, fire risk, repair cost, and decay rules.
- [ ] Expand building pieces. - [ ] Expand building pieces.
- [ ] Add foundation. - [ ] Add foundation.
- [ ] Add walls. - [ ] Add walls.
@@ -970,9 +999,12 @@ Goal: Transition from temporary survival into lasting settlement and land stewar
- [ ] Add decay rules. - [ ] Add decay rules.
- [ ] Add permissions. - [ ] Add permissions.
- [ ] Add persistence optimizations. - [ ] Add persistence optimizations.
- [ ] Replace primitive shelter proxy pieces with more believable material-driven meshes.
- [ ] Add structure save/load/restart and damage/repair verifier.
## 0.2.F Simple Economy ## 0.2.F Simple Economy
- [ ] Define transaction record schema with participants, claim/settlement context, offered items, accepted items, timestamp, and audit ID.
- [ ] Add barter container. - [ ] Add barter container.
- [ ] Add simple trade UI. - [ ] Add simple trade UI.
- [ ] Add ownership transfer. - [ ] Add ownership transfer.
@@ -981,15 +1013,18 @@ Goal: Transition from temporary survival into lasting settlement and land stewar
- [ ] Add transaction logging. - [ ] Add transaction logging.
- [ ] Add early business knowledge for bookkeeping, inventory, profit/loss, fair trade, basic credit, risk, and customer trust. - [ ] Add early business knowledge for bookkeeping, inventory, profit/loss, fair trade, basic credit, risk, and customer trust.
- [ ] Add simple workshop/business ownership rules for homestead-scale production. - [ ] Add simple workshop/business ownership rules for homestead-scale production.
- [ ] Add anti-duplication and rollback rules for multiplayer trade.
## 0.2.G Homesteading Knowledge Progression ## 0.2.G Homesteading Knowledge Progression
- [ ] Convert the 0.1.R knowledge foundation into first data records for homesteading topics.
- [ ] Define early profession paths: farmer, herder, carpenter, mason, cook, medic, hunter, fisher, trapper, trader, and scout. - [ ] Define early profession paths: farmer, herder, carpenter, mason, cook, medic, hunter, fisher, trapper, trader, and scout.
- [ ] Add learning-by-doing bonuses for routine homestead work without letting repetition replace core understanding. - [ ] Add learning-by-doing bonuses for routine homestead work without letting repetition replace core understanding.
- [ ] Add simple manuals, oral tips, and settlement notes as discoverable teaching objects. - [ ] Add simple manuals, oral tips, and settlement notes as discoverable teaching objects.
- [ ] Add household teaching rules for passing practical knowledge to family or trusted settlement members. - [ ] Add household teaching rules for passing practical knowledge to family or trusted settlement members.
- [ ] Define how poor knowledge creates believable outcomes: spoiled food, sick animals, failed crops, weak structures, wasted materials, and avoidable injury. - [ ] Define how poor knowledge creates believable outcomes: spoiled food, sick animals, failed crops, weak structures, wasted materials, and avoidable injury.
- [ ] Define how good knowledge improves resilience without making nature instant or effortless. - [ ] Define how good knowledge improves resilience without making nature instant or effortless.
- [ ] Add grouped verifier coverage for knowledge topics, prerequisites, practice actions, and persistence readiness.
## 0.2.H Household Task And Helper Foundations ## 0.2.H Household Task And Helper Foundations
@@ -1000,6 +1035,25 @@ Goal: Transition from temporary survival into lasting settlement and land stewar
- [ ] Add simple helper work reports so players can see what was gathered, consumed, protected, repaired, or failed while they were away. - [ ] Add simple helper work reports so players can see what was gathered, consumed, protected, repaired, or failed while they were away.
- [ ] Add guardrails so helpers cannot create resources from nothing, bypass crafting costs, ignore carry limits, or operate outside reachable storage and terrain. - [ ] Add guardrails so helpers cannot create resources from nothing, bypass crafting costs, ignore carry limits, or operate outside reachable storage and terrain.
## 0.2.I 0.1 Hardening And Technical Debt
- [ ] Split `AgrarianEditorAutomationLibrary.cpp` into focused automation helpers for gameplay loop, persistence, terrain import, visual QA, and setup tasks.
- [ ] Create a grouped verifier runner for milestone categories instead of relying on many one-off script calls.
- [ ] Move Ground Zero, startup, map, and automation constants toward data assets, config, or tile metadata.
- [ ] Separate admin/dev console command authority and audit paths from normal player controller gameplay paths.
- [ ] Add deprecation warnings for remaining MVP placeholder/proxy systems that must be replaced before public testing.
- [ ] Add a coding standards checklist for replication, persistence, save schema changes, data assets, and visual placeholder removal.
## 0.2.J Homesteading Visual And Biome Realism Pass
- [ ] Replace tan/flat terrain presentation with realistic coastal scrub terrain materials driven by tile metadata.
- [ ] Add first production-survivable grass, shrub, brush, and tree assets for Ground Zero.
- [ ] Add foliage density and sightline rules that match real-world biome expectations without hiding gameplay readability.
- [ ] Replace highest-impact primitive resource shapes with recognizable wood, stone, fiber, edible plant, and water visuals.
- [ ] Improve character presentation beyond mannequin/proxy while keeping male/female selection stable.
- [ ] Add optional cinematic rendering tier validation while preserving a credible non-ray-traced default.
- [ ] Add investor visual QA screenshots for terrain, foliage, water, character, fire, shelter, and wildlife.
--- ---
# Version 0.3 - Social Civilization Systems # Version 0.3 - Social Civilization Systems
+72
View File
@@ -0,0 +1,72 @@
# Codebase Readiness Review
Date: 2026-05-19
Scope: source code, build scripts, verification scripts, config files, and the
roadmap after completion of `0.1.R`.
## 0.1 Completion Check
All `0.1.A` through `0.1.R` 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.
## 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.
## 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
- 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.
@@ -0,0 +1,78 @@
#!/usr/bin/env python3
"""Verify 0.1 is complete and 0.2 readiness notes are present."""
from pathlib import Path
ROOT = Path(__file__).resolve().parents[1]
ROADMAP = ROOT / "AGRARIAN_DEVELOPMENT_ROADMAP.md"
REVIEW = ROOT / "Docs" / "CodebaseReadinessReview.md"
REQUIRED_ROADMAP_SNIPPETS = [
"# Version 0.2 - Persistent Homesteading",
"Engineering posture for 0.2:",
"Define claim data schema with claim ID",
"Define crop data asset schema",
"Define animal data asset schema",
"Define storage data schema",
"Define structure piece data asset schema",
"Define transaction record schema",
"Convert the 0.1.R knowledge foundation into first data records",
"## 0.2.I 0.1 Hardening And Technical Debt",
"Split `AgrarianEditorAutomationLibrary.cpp`",
"Create a grouped verifier runner",
"Separate admin/dev console command authority",
"## 0.2.J Homesteading Visual And Biome Realism Pass",
"Replace tan/flat terrain presentation",
"Add investor visual QA screenshots",
]
REQUIRED_REVIEW_SNIPPETS = [
"# Codebase Readiness Review",
"All `0.1.A` through `0.1.R` roadmap checkboxes are complete.",
"AgrarianEditorAutomationLibrary.cpp` is doing too much",
"Low-Risk Cleanup Applied",
"Removed duplicate `SavingAndQuit` branch logic",
"0.2 Engineering Priorities",
]
def get_0_1_text(roadmap: str) -> str:
start = roadmap.find("## 0.1.A ")
end = roadmap.find("# Version 0.2")
if start == -1 or end == -1 or end <= start:
raise SystemExit("FAILED: could not isolate 0.1 roadmap section")
return roadmap[start:end]
def main() -> None:
roadmap = ROADMAP.read_text(encoding="utf-8")
review = REVIEW.read_text(encoding="utf-8")
failures: list[str] = []
section_0_1 = get_0_1_text(roadmap)
unchecked_0_1 = [
line.strip()
for line in section_0_1.splitlines()
if line.strip().startswith("- [ ]")
]
if unchecked_0_1:
failures.append("0.1 has unchecked items: " + "; ".join(unchecked_0_1[:5]))
for snippet in REQUIRED_ROADMAP_SNIPPETS:
if snippet not in roadmap:
failures.append(f"roadmap missing {snippet!r}")
for snippet in REQUIRED_REVIEW_SNIPPETS:
if snippet not in review:
failures.append(f"readiness review missing {snippet!r}")
if failures:
raise SystemExit("FAILED: " + "; ".join(failures))
print("OK: 0.1 completion and 0.2 readiness are documented.")
if __name__ == "__main__":
main()
@@ -211,11 +211,6 @@ void UAgrarianMvpFrontendWidget::ContinueFromActiveScreen()
CompleteFrontendFlow(); CompleteFrontendFlow();
return; return;
} }
if (ActiveScreen == EAgrarianMvpFrontendScreen::SavingAndQuit)
{
return;
}
} }
void UAgrarianMvpFrontendWidget::ReturnFromActiveScreen() void UAgrarianMvpFrontendWidget::ReturnFromActiveScreen()