Prepare roadmap for 0.2 homesteading
This commit is contained in:
@@ -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
|
||||||
|
|||||||
@@ -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()
|
||||||
|
|||||||
Reference in New Issue
Block a user