10 Commits

+313
View File
@@ -9526,3 +9526,316 @@ Unreal Engine install status:
resource/water actors, and 31 variation actors.
- Linux editor target build passed:
`AgrarianGameEditor Linux Development` was up to date and succeeded.
## Ground Zero Vegetation Visual Pass - 2026-05-21
- Completed the second `0.2.0 Investor Visual Credibility Baseline` roadmap
item: replace or upgrade grasses, shrubs, and trees with believable
coastal-scrub vegetation, density, color variation, scale variation, and
LOD/performance limits.
- Active game repo:
`/home/nathan/UnrealProjects/AgrarianGame` on `unreal-engine`
(`192.168.5.20`).
- Added native generated vegetation mesh assets under
`/Game/Agrarian/Environment/Vegetation`:
`SM_AGR_GZ_CoastalOak_Proxy`, `SM_AGR_GZ_CoyoteBrush_Proxy`, and
`SM_AGR_GZ_DryGrassClump_Proxy`.
- Updated `Scripts/setup_ground_zero_demo_map.py` so the Ground Zero foliage
pass no longer assigns `/Engine/BasicShapes` or level-prototyping geometry
to trees, shrubs, or grass.
- Updated foliage materials for per-instance color variation, with two-sided
shrub and grass materials for better card-based vegetation.
- Updated `AAgrarianFoliagePatch` HISM settings:
trees keep shadows and cull at `65000/95000`; shrubs keep shadows and cull
at `28000/52000`; grass disables shadows and culls at `9000/22000`.
- Updated environment variation actors so dressed canopy and bush variation
also uses the new native vegetation meshes.
- Updated verifiers and documentation:
- `Scripts/verify_ground_zero_natural_environment_pass.py`
- `Scripts/verify_ground_zero_density_sightlines.py`
- `Scripts/verify_native_placeholder_meshes.py`
- `Docs/Terrain/GroundZeroNaturalEnvironmentPass.md`
- `AGRARIAN_DEVELOPMENT_ROADMAP.md`
- Verification:
- Python compile passed for changed scripts.
- Linux editor target build passed after the C++ foliage cull/shadow change.
- setup script completed in Unreal 5.7.4 headless `NullRHI` mode and placed
96 trees, 220 shrubs, and 420 grass clumps.
- natural environment verifier passed: map check reported 0 errors and
0 warnings; verifier reported 9 materials, 1 landscape, 17 dressed
resource/water actors, and 31 variation actors.
- density/sightline verifier passed for 21 critical labels, 6 sightline
corridors, 96 trees, 220 shrubs, and 420 grass clumps.
- native placeholder mesh verifier passed for Agrarian mesh assets,
Blueprint meshes, foliage meshes, and environment variation meshes.
## Gameplay Input Recovery - 2026-05-21
- Pulled latest game repo changes from Gitea before work:
`40f7b7e` included a character proxy material update from another device.
- Investigated broken gameplay controls after the MVP frontend/character
selection flow. Blueprint defaults still had the expected Enhanced Input
contexts and action references assigned:
`/Game/Input/IMC_Default`, `/Game/Input/IMC_MouseLook`, and the move, look,
jump, interact, sprint, crouch, prone, and camera-toggle input actions.
- Root cause: the frontend presentation path stacked multiple
`SetIgnoreMoveInput(true)` / `SetIgnoreLookInput(true)` calls during startup
and menu display, then only partially unwound them when entering gameplay.
That could leave movement, look, sprint, crouch, prone, and other controls
ignored after the menu disappeared.
- Updated `AAgrarianGamePlayerController` so frontend activation only pushes
ignore input once per active frontend session, and frontend completion uses
`ResetIgnoreMoveInput()` / `ResetIgnoreLookInput()` before returning to
`FInputModeGameOnly`.
- Added `ApplyDefaultInputMappingContexts()` and call it during controller
setup and frontend completion so gameplay reasserts the default Enhanced
Input mapping contexts after the UI flow closes.
- Verification:
- inspected Blueprint defaults through Unreal Python in headless editor.
- Linux editor build passed:
`AgrarianGameEditor Linux Development`.
## Frontend Controls And Vegetation Runtime Fix - 2026-05-21
- Follow-up to live demo testing: controls still appeared disabled after
character selection, and bushes/trees still read as placeholder boxes.
- Active game repo:
`/home/nathan/UnrealProjects/AgrarianGame` on `unreal-engine`
(`192.168.5.20`).
- Pulled the latest game repo and handoff repo before continuing; both were
already current.
- Replaced the MVP frontend completion path in
`UAgrarianMvpFrontendWidget::CompleteFrontendFlow()` so it calls
`AAgrarianGamePlayerController::AgrarianSelectCharacter()` and
`AAgrarianGamePlayerController::AgrarianCompleteFrontend()` directly instead
of routing through console commands. The fallback path for non-Agrarian
controllers now resets the ignore-input stacks with
`ResetIgnoreMoveInput()` / `ResetIgnoreLookInput()`.
- Reworked the generated Ground Zero vegetation proxies:
- coastal oak no longer uses box geometry for trunk and branch construction;
it now uses tapered cylinders, irregular leaf cards, and canopy clusters.
- coyote brush and dry grass use more irregular cards and uneven clusters so
they read less like test primitives.
- Regenerated the Ground Zero map and vegetation assets with
`Scripts/setup_ground_zero_demo_map.py`; the setup pass placed 96 trees,
220 shrubs, and 420 grass clumps.
- Updated `Scripts/verify_mvp_menu_input_and_quit_flow.py` so it verifies the
direct-controller frontend flow and rejects the old console-command path.
- Verification:
- Python compile passed for the changed setup script.
- Linux editor target build passed:
`AgrarianGameEditor Linux Development`.
- Ground Zero setup script completed in Unreal 5.7.4 headless `NullRHI`
mode.
- natural environment verifier passed.
- native placeholder mesh verifier passed.
- MVP menu input and quit flow verifier passed.
- Note: older packaged Windows investor demos will still show the previous
controls/vegetation behavior until rebuilt from the new game commit.
## Agrarian Asset Pipeline Foundation - 2026-05-21
- Nathan approved realistic visual asset sourcing from Fab/free, Quixel,
CC0/public-domain, team-created, and Nathan-supplied assets. Random scraped
internet images/models are rejected unless license evidence is clear and
compatible with commercial game use.
- Created VM staging folders under:
`/home/nathan/AssetStaging/Agrarian`
- `Incoming`
- `LicenseEvidence`
- `Approved`
- `Processed`
- `Rejected`
- Added repo-side policy docs:
- `Docs/Art/AssetLicenses.md`
- `Docs/Art/AgrarianAssetPipeline.md`
- Added `Scripts/verify_asset_pipeline_policy.py` so future edits must keep
the approved-source rules, staging path, license tracking, visual direction,
and first-priority asset groups documented.
- Updated `0.2.0 Investor Visual Credibility Baseline` to mark the asset
acquisition and ingest pipeline foundation complete before the remaining
visual replacement work.
- First visual sourcing priorities:
trees, shrubs, grasses, water/shoreline, rocks/terrain decals, two to four
realistic post-collapse frontier humans, and old abandoned equipment being
reclaimed by nature.
- Verification:
- Python compile passed for `Scripts/verify_asset_pipeline_policy.py`.
- `Scripts/verify_asset_pipeline_policy.py` passed.
- `git diff --check` passed.
## Asset Pipeline Free-Only Lockdown - 2026-05-21
- Nathan provided Epic/Fab login details for active-session use only. Do not
store those credentials in the repo, handoff, shell scripts, manifests, or
long-lived config files.
- Locked the art pipeline to free/approved sources before any Fab acquisition:
- Fab assets must be explicitly free unless Nathan approves a paid purchase
in a later task.
- Quixel/Megascans, CC0/public-domain, team-created, and Nathan-supplied
assets remain allowed when their licensing is clear.
- random scraped internet images/models remain rejected.
- Added `Scripts/verify_asset_license_free_only.py`, which fails if the asset
license register contains paid, purchased, subscription, unknown, unclear, or
nonzero-cost entries.
- Updated `Docs/Art/AssetLicenses.md`,
`Docs/Art/AgrarianAssetPipeline.md`, and
`Scripts/verify_asset_pipeline_policy.py` with explicit free-only guardrails.
- Verification:
- Python compile passed for both asset policy verifiers.
- `Scripts/verify_asset_pipeline_policy.py` passed.
- `Scripts/verify_asset_license_free_only.py` passed.
- `git diff --check` passed.
## Ground Zero Asset Queue And Biome Resource Plan - 2026-05-21
- Nathan asked to start pulling assets for Ground Zero so the investor demo can
sell the game on look and feel, and to plan automatic biome selection plus
persistent/removable natural resources.
- Added `Docs/Art/GroundZeroAssetAcquisitionQueue.md` with free-only Fab
candidates:
- Free Shrubs Pack (Ultra Realistic Wind)
- Mediterranean Vegetation: Plant Pack I
- temperate Vegetation: optimized Grass Library
- Soul: Cave
- Modular Rural House & Pine Forest Environment
- Candidate notes:
- some Project Nature assets appeared free but region-unavailable from
unauthenticated browsing, so verify through the Epic/Fab account before
relying on them.
- do not import paid assets or uncertain entitlements.
- Added `Docs/World/BiomeAndNaturalResourceGenerationPlan.md`.
It defines tile biome inputs, weighted biome blends, asset-set selection,
persistent world-resource records, durable player removal, and realistic
regrowth/reseeding timing.
- Updated roadmap sequencing:
- `0.2.0` now includes the completed Ground Zero asset acquisition queue.
- new next milestone is `0.2.A Tile Biome And Natural Resource Foundation`.
- land claiming moves after biome/resource foundation because claims will
depend on durable tile state.
- Added `Scripts/verify_ground_zero_asset_queue.py`.
- Verification:
- Python compile passed for asset/biome policy verifiers.
- `Scripts/verify_asset_pipeline_policy.py` passed.
- `Scripts/verify_asset_license_free_only.py` passed.
- `Scripts/verify_ground_zero_asset_queue.py` passed.
- `git diff --check` passed.
## Gameplay Control Restore Hardening - 2026-05-21
- Nathan reported controls still did not work while waiting on Fab asset
import.
- Verified actual Blueprint defaults in Unreal:
- `BP_AgrarianGameMode` points to `BP_AgrarianPlayerCharacter` and
`BP_AgrarianPlayerController`.
- controller has `/Game/Input/IMC_Default` and `/Game/Input/IMC_MouseLook`.
- character has Jump, Move, Look, MouseLook, Interact, Sprint, Crouch,
Prone, and ToggleCamera actions assigned.
- input mapping assets contain WASD/arrow movement, mouse look, gamepad look,
interact, sprint, crouch, prone, and camera-toggle mappings.
- Added `AAgrarianGamePlayerController::RestoreGameplayControlState()` to make
frontend completion repair all gameplay state through one path:
ignore input stacks, game-only input mode, mouse cursor, mapping contexts,
pawn visibility, pawn collision, character movement mode, and view target.
- `AcknowledgePossession()` now restores gameplay control state for newly
possessed local pawns when the frontend is not active.
- Added `AgrarianRepairGameplayInput` exec command as a manual emergency repair
path during testing.
- Updated menu/startup verifiers to require the restore path and no longer
accept stale `SetIgnoreMoveInput(false)` / `SetIgnoreLookInput(false)`
patterns.
- Verification:
- Python compile passed for changed verifier scripts.
- `Scripts/verify_mvp_menu_input_and_quit_flow.py` passed.
- `Scripts/verify_mvp_segmented_startup_pause_flow.py` passed.
- Linux editor target build passed:
`AgrarianGameEditor Linux Development`.
- Unreal Blueprint verifier passed:
`Scripts/verify_agrarian_player_blueprints.py`.
## Startup Story Sequence And Menu Order Fix - 2026-05-21
- Nathan reported the copyright/studio/startup notice was appearing at the
start of the game screen after character selection instead of first boot.
- Root cause: the old `AAgrarianDemoNoticeActor` was map-driven, so it could
overlap or appear out of order relative to controller-owned frontend/menu
state. It also kept startup presentation separate from the input control
repair flow.
- Moved startup presentation ownership into `AAgrarianGamePlayerController`:
- splash/copyright/studio screen plays first at boot.
- a 60-second story sequence plays next.
- cinematic credits play after story.
- character selection appears only after splash/story/credits complete or
are skipped.
- Added skip behavior:
- any key or mouse click advances splash to story.
- any key or mouse click advances story to credits.
- any key or mouse click advances credits to character selection.
- `AAgrarianDemoNoticeActor` now has `bAutoShowNotice = false` by default so
the legacy map actor does not create a second out-of-order startup overlay.
- `UAgrarianDemoNoticeWidget` now supports presentation segments:
`Splash`, `Story`, `Credits`, and legacy `DemoNotice`.
- Story direction implemented in text/cinematic motion:
post-collapse recovery, knowledge as inheritance, realistic time pressure,
and Ground Zero as the beginning of a new history.
- Verification:
- Python compile passed for `Scripts/verify_startup_credits_sequence.py`.
- `Scripts/verify_startup_credits_sequence.py` passed.
- `Scripts/verify_mvp_menu_input_and_quit_flow.py` passed.
- Linux editor target build passed:
`AgrarianGameEditor Linux Development`.
- Note: previous-game skip/loading behavior is still design-only; no saved-game
selector exists yet. This startup flow is for the new-game/demo path.
## MVP Pause Save Exit Settings Shell - 2026-05-21
- Implemented the safe menu slice before the deeper settings system:
`Resume`, `Save Game`, `Settings`, `Save & Exit`, and
`Quit Without Saving`.
- `Save Game` now issues `AgrarianSaveWorld` and stays in the pause flow with
a confirmation screen.
- `Save & Exit` issues `AgrarianSaveWorld` and then exits.
- `Quit Without Saving` exits directly.
- Added keyboard shortcuts for the pause menu:
- `Esc` / `Enter` / `Space`: resume.
- `S`: save game.
- `O`: open settings shell.
- `Q`: save and exit.
- `X`: quit without saving.
- Added a settings shell for the categories that should become real options
later: units, controls, gameplay, hardware/rendering, audio, accessibility,
and account/server preferences.
- Roadmap updated:
- completed pause save/exit/settings shell under `0.2.0 Investor Visual
Credibility Baseline`.
- added `0.2.F1 Player Options And Settings` for the larger configurable
settings system so it is not mixed into the MVP pause-menu hardening.
- Verification:
- Python compile passed for menu verifier scripts.
- `Scripts/verify_mvp_menu_input_and_quit_flow.py` passed.
- `Scripts/verify_mvp_segmented_startup_pause_flow.py` passed.
- `git diff --check` passed.
- Linux editor target build passed:
`AgrarianGameEditor Linux Development`.
## 2027 Awards Direction Roadmap Update - 2026-05-21
- Nathan set the explicit ambition that Agrarian should be good enough to chase
2027 award conversations around visual beauty/art direction and best new game
concept/new IP.
- Updated `AGRARIAN_DEVELOPMENT_ROADMAP.md` with a new
`2027 Awards Direction` section near the top of the roadmap.
- Added production bars for:
- visual credibility,
- geographic truth,
- art direction,
- systemic originality,
- emotional attachment,
- demo discipline,
- roadmap filtering.
- Tightened `0.2.0 Investor Visual Credibility Baseline` so it now explicitly
serves the art-direction identity, not just placeholder cleanup.
- Added early visual credibility tasks for reclaimed human-made set dressing,
investor screenshot composition checks, and automated placeholder audits.
- Verification:
- `git diff --check` passed in the game repo.