Queue Ground Zero assets and biome resource plan

This commit is contained in:
2026-05-21 22:31:53 +00:00
parent fc74a7b129
commit fd1a8ce477
4 changed files with 233 additions and 4 deletions
+19 -4
View File
@@ -163,7 +163,7 @@ Current reset baseline as of 2026-05-21:
- [x] Generated Unreal folders remain ignored. - [x] Generated Unreal folders remain ignored.
- [x] Version 0.1 implementation track is complete through `0.1.S`. - [x] Version 0.1 implementation track is complete through `0.1.S`.
- [ ] Start the next milestone with only `0.2.0 Investor Visual Credibility Baseline`. - [ ] Start the next milestone with only `0.2.0 Investor Visual Credibility Baseline`.
- [ ] After `0.2.0` is complete and verified, move to `0.2.A Land And Claiming`. - [ ] After `0.2.0` is complete and verified, move to `0.2.A Tile Biome And Natural Resource Foundation`.
- [ ] After `0.2.A` is complete and verified, choose the next milestone deliberately rather than letting the roadmap sprawl drive work out of order. - [ ] After `0.2.A` is complete and verified, choose the next milestone deliberately rather than letting the roadmap sprawl drive work out of order.
Coding rule for the next phase: Coding rule for the next phase:
@@ -949,6 +949,7 @@ Required order:
- [x] Replace or upgrade the terrain material first so Ground Zero no longer reads as flat tan placeholder ground. Rebuilt `M_AGR_GZ_Terrain_CoastalScrub` as a procedural coastal scrub material that blends dry soil, scrub green, and sandy path color families with broad and fine noise, documented the visual baseline, and extended the natural-environment verifier so flat constant-color terrain fails. - [x] Replace or upgrade the terrain material first so Ground Zero no longer reads as flat tan placeholder ground. Rebuilt `M_AGR_GZ_Terrain_CoastalScrub` as a procedural coastal scrub material that blends dry soil, scrub green, and sandy path color families with broad and fine noise, documented the visual baseline, and extended the natural-environment verifier so flat constant-color terrain fails.
- [x] Replace or upgrade grasses, shrubs, and trees with believable coastal-scrub vegetation assets, density, color variation, scale variation, and LOD/performance limits. Added native generated coastal oak, coyote brush, and dry grass clump mesh assets under `/Game/Agrarian/Environment/Vegetation`, switched the Ground Zero foliage patch off engine basic shapes, rebuilt foliage materials with per-instance color variation, preserved investor-facing density and scale variation, added explicit HISM cull/shadow performance limits, and extended verifiers so basic-shape vegetation or missing cull limits fail. - [x] Replace or upgrade grasses, shrubs, and trees with believable coastal-scrub vegetation assets, density, color variation, scale variation, and LOD/performance limits. Added native generated coastal oak, coyote brush, and dry grass clump mesh assets under `/Game/Agrarian/Environment/Vegetation`, switched the Ground Zero foliage patch off engine basic shapes, rebuilt foliage materials with per-instance color variation, preserved investor-facing density and scale variation, added explicit HISM cull/shadow performance limits, and extended verifiers so basic-shape vegetation or missing cull limits fail.
- [x] Add the Asset acquisition and ingest pipeline before pulling more visuals: created approved staging folders, added `Docs/Art/AssetLicenses.md`, documented the pipeline in `Docs/Art/AgrarianAssetPipeline.md`, added `Scripts/verify_asset_pipeline_policy.py`, defaulted to Fab/free, Quixel, CC0/public-domain, team-created, or Nathan-supplied assets only, rejected random scraped internet assets, and prioritized trees, shrubs, grass, water, rocks, character bodies/outfits, and old abandoned equipment being reclaimed by nature. - [x] Add the Asset acquisition and ingest pipeline before pulling more visuals: created approved staging folders, added `Docs/Art/AssetLicenses.md`, documented the pipeline in `Docs/Art/AgrarianAssetPipeline.md`, added `Scripts/verify_asset_pipeline_policy.py`, defaulted to Fab/free, Quixel, CC0/public-domain, team-created, or Nathan-supplied assets only, rejected random scraped internet assets, and prioritized trees, shrubs, grass, water, rocks, character bodies/outfits, and old abandoned equipment being reclaimed by nature.
- [x] Add the Ground Zero asset acquisition queue for the investor visual pass: documented free-only Fab candidates for shrubs, Mediterranean/coastal plants, grass, rocks/water-support props, and rural/reclaimed set dressing in `Docs/Art/GroundZeroAssetAcquisitionQueue.md`; added `Scripts/verify_ground_zero_asset_queue.py`; tied every candidate to the license register and staging workflow.
- [ ] Replace or upgrade freshwater visuals with readable water surface, edge treatment, bank dressing, reflection/roughness tuning, and collectability cues. - [ ] Replace or upgrade freshwater visuals with readable water surface, edge treatment, bank dressing, reflection/roughness tuning, and collectability cues.
- [ ] Replace or upgrade character bodies and clothing so selected characters read as realistic near-future post-collapse frontier people rather than template mannequins or proxy stacks. - [ ] Replace or upgrade character bodies and clothing so selected characters read as realistic near-future post-collapse frontier people rather than template mannequins or proxy stacks.
- [ ] Replace or upgrade resource objects so wood, stone, fiber, edible plants, pickups, and gathered items look like world objects rather than debug primitives. - [ ] Replace or upgrade resource objects so wood, stone, fiber, edible plants, pickups, and gathered items look like world objects rather than debug primitives.
@@ -957,9 +958,23 @@ Required order:
- [ ] Replace or upgrade wildlife visuals so the first animal prototype reads as a living creature with appropriate silhouette, scale, material, and animation target. - [ ] Replace or upgrade wildlife visuals so the first animal prototype reads as a living creature with appropriate silhouette, scale, material, and animation target.
- [ ] Verify the non-ray-traced default still looks credible; ray tracing remains optional/cinematic only. - [ ] Verify the non-ray-traced default still looks credible; ray tracing remains optional/cinematic only.
- [ ] Capture fresh investor screenshots after the pass: startup/credits, character selection, first spawn, terrain, vegetation, water, campfire, shelter, pause/save flow, and one gameplay interaction. - [ ] Capture fresh investor screenshots after the pass: startup/credits, character selection, first spawn, terrain, vegetation, water, campfire, shelter, pause/save flow, and one gameplay interaction.
- [ ] Do not start `0.2.A Land And Claiming` until this visual baseline is good enough to show without explaining that the world is still placeholder-heavy. - [ ] Do not start `0.2.A Tile Biome And Natural Resource Foundation` until this visual baseline is good enough to show without explaining that the world is still placeholder-heavy.
## 0.2.A Land And Claiming ## 0.2.A Tile Biome And Natural Resource Foundation
- [x] Document the automatic biome selection and natural resource lifecycle direction in `Docs/World/BiomeAndNaturalResourceGenerationPlan.md`.
- [ ] Define tile biome profile schema with weighted biome blends derived from real-world signals.
- [ ] Add Ground Zero biome profile metadata.
- [ ] Register biome asset sets for terrain, trees, shrubs, grasses, rocks, water, wildlife, and reclaimed human-made props.
- [ ] Connect biome weights to procedural asset selection and placement density.
- [ ] Add persistent removable natural resource records for trees and shrubs first.
- [ ] Ensure removed trees and shrubs stay removed across save/load and server restart.
- [ ] Add stump/deadwood/disturbed-ground aftermath states.
- [ ] Add slow natural reseeding/regrowth rules based on realistic in-game time.
- [ ] Extend persistent resource records to rocks, edible plants, fiber, puddles, lakes, and reclaimed props.
- [ ] Add verifier coverage for biome profile loading, asset-set lookup, removal persistence, and regrowth timing.
## 0.2.B Land And Claiming
- [ ] Design land claim philosophy. - [ ] Design land claim philosophy.
- [ ] Define claim size limits. - [ ] Define claim size limits.
@@ -972,7 +987,7 @@ Required order:
- [ ] Add claim conflict rules. - [ ] Add claim conflict rules.
- [ ] Add abandoned claim decay rules. - [ ] Add abandoned claim decay rules.
## 0.2.B Farming ## 0.2.C Farming
- [ ] Design soil model. - [ ] Design soil model.
- [ ] Add basic soil quality. - [ ] Add basic soil quality.
@@ -0,0 +1,55 @@
# Ground Zero Asset Acquisition Queue
Purpose: make the first playable tile visually investor-ready using only
free/approved assets, while keeping every source traceable before import.
Current rule: free-only. Do not download or import paid assets unless Nathan
explicitly approves a purchase in a later task.
## Priority Look
Ground Zero should feel like a believable coastal-scrub survival location after
a modern social collapse: dry soil, uneven grasses, hardy shrubs, believable
trees, readable water, natural rocks, practical frontier characters, and old
equipment being reclaimed by vegetation.
## Free Fab Candidates
| Priority | Asset | Source | Use | Cost | Status | Notes |
| --- | --- | --- | --- | --- | --- | --- |
| 1 | Free Shrubs Pack (Ultra Realistic Wind) | https://www.fab.com/listings/7ca465ab-fb9c-4d6b-bddb-82c20f604657 | Replace Ground Zero shrub proxies | Free | Candidate | Realistic shrub pack with 11 shrubs, opaque Nanite meshes, and Pivot Painter wind. Good near-term replacement for coyote-brush proxy silhouettes. |
| 2 | Mediterranean Vegetation: Plant Pack I | https://www.fab.com/listings/41b3889d-1a98-41e1-850e-c8b417840da0 | Coastal-scrub plants, agave-like accent plants, scanned ground detail | Free | Candidate | Free but currently flagged as not available in this region from unauthenticated browsing; check again through the Epic/Fab account before relying on it. |
| 3 | temperate Vegetation: optimized Grass Library | https://www.fab.com/listings/8b68642e-35f4-438e-82b4-799fc2228303 | Replace dry grass cards and add wind/detail | Free | Candidate | Free but currently flagged as not available in this region from unauthenticated browsing; verify through the account. |
| 4 | Soul: Cave | https://www.fab.com/listings/75f42402-40bb-4a1b-b557-18e2c9604273 | Rock, wet-edge, ruin, and water-support props/materials | Free | Candidate | Epic sample content with rock and water props/materials; useful for banks, stone resources, and visual dressing even if not coastal-specific. |
| 5 | Modular Rural House & Pine Forest Environment | https://www.fab.com/listings/a081748c-6a49-4ba4-9008-9b10fadf8f73 | Abandoned rural structures, props, roads, weeds, and potential reclaimed-equipment set dressing | Free | Candidate | Useful for post-collapse frontier settlement mood; pine assets may not fit Ground Zero coastal scrub but props/roads/house pieces may. |
## Acquisition Steps
1. Log into Fab/Epic only in an active browser or launcher session.
2. Confirm each listing still shows `Free`.
3. Add only free assets to the library/cart.
4. Download/export into `/home/nathan/AssetStaging/Agrarian/Incoming`.
5. Save a license/cost screenshot or text export into
`/home/nathan/AssetStaging/Agrarian/LicenseEvidence`.
6. Move only approved free assets to `/home/nathan/AssetStaging/Agrarian/Approved`.
7. Import into Unreal under:
- `/Game/Agrarian/Environment/Vegetation`
- `/Game/Agrarian/Environment/Water`
- `/Game/Agrarian/Environment/Rocks`
- `/Game/Agrarian/Props/Reclaimed`
- `/Game/Agrarian/Characters`
8. Add imported assets to `Docs/Art/AssetLicenses.md`.
9. Run:
- `Scripts/verify_asset_pipeline_policy.py`
- `Scripts/verify_asset_license_free_only.py`
- relevant visual/placeholder verifiers
## Import Standards
- Replace proxy assets only after imported meshes have collision, materials,
cull distances, and LOD/Nanite decisions.
- Do not rely on showcase maps. Extract only the specific assets needed for
Agrarian's map, biome, and resource systems.
- Any tree, shrub, rock, puddle, lake, resource node, or large prop placed in a
playable tile must eventually be represented by a persistent world-resource record
so player removal is durable.
@@ -0,0 +1,97 @@
# Biome And Natural Resource Generation Plan
Agrarian needs Earth-aware tile generation, not hand-authored placeholder maps.
Every 1 km tile should derive its biome and natural resources from real-world
environmental signals, then place removable and persistent objects that behave
like real natural resources.
## Biome Selection Inputs
Each tile should eventually derive biome weights from:
- latitude
- elevation
- slope and aspect
- rainfall
- seasonal temperature swing
- ocean proximity
- prevailing wind
- ocean currents
- rain-shadow effects
- soil type
- drainage
- river, lake, wetland, and coast proximity
- land-use history when available
## Layered Generation
1. Climate engine: produces temperature, rainfall, seasonality, and weather
pressure.
2. Biome generator: assigns weighted macro/regional/local biome blends.
3. Ecology layer: chooses plant communities, wildlife, disease pressure, soil
behavior, and water availability.
4. Resource layer: places trees, shrubs, grasses, rocks, water bodies, edible
plants, fuel, fiber, and old human-made objects.
5. Human layer: derives agriculture suitability, settlement pressure, trade
value, travel difficulty, and cultural/economic implications.
## Biome Output Shape
Avoid hard borders. A tile should produce weighted blends such as:
- `70% coastal scrub`
- `20% riparian woodland`
- `10% seasonal marsh`
Those weights drive asset selection, density, color variation, seasonality, and
resource availability.
## Persistent Natural Resources
Every removable world object should have durable state:
- unique tile-local resource id
- resource type
- species or object profile
- transform
- growth stage
- health
- age
- quantity remaining
- removed/depleted timestamp
- player/planted/natural origin
- respawn or regrowth policy
- last simulation timestamp
## Removal And Regrowth Rules
- Trees, shrubs, rocks, puddles, lakes, ruins, shelters, and large props should
not silently pop back after removal.
- Player-removed trees and shrubs stay removed unless replanted or naturally
reseeded over realistic in-game time.
- Stumps, deadwood, brush piles, and disturbed ground should be valid aftermath
states rather than instant deletion.
- Water bodies are removable only through believable terrain/drainage changes,
drought, construction, or simulation systems.
- Edible plants, grasses, brush, and fiber resources can replenish, but only on
realistic seasonal timelines and only when biome, weather, grazing, and human
use allow it.
- Player-planted resources use explicit planting/cultivation rules rather than
random respawn.
## First Implementation Slice
1. Add tile biome profile data assets or JSON metadata for Ground Zero.
2. Register asset sets by biome weight: terrain, trees, shrubs, grasses, rocks,
water, wildlife, reclaimed props.
3. Convert placed foliage/resource proxies into persistent resource records.
4. Add removal state and save/load durability for trees and shrubs first.
5. Add slow regrowth/reseeding simulation for grasses/shrubs/trees.
6. Extend to water bodies, edible plants, rocks, and reclaimed objects.
## Investor Relevance
This system should make new tiles feel recognizable without hand-sculpting each
one. A Pacific coastal tile, a prairie tile, a boreal tile, and a river valley
tile should choose different assets, resource densities, travel difficulty, and
survival pressures automatically.
+62
View File
@@ -0,0 +1,62 @@
#!/usr/bin/env python3
"""Verify the Ground Zero visual asset acquisition queue stays actionable."""
from pathlib import Path
ROOT = Path(__file__).resolve().parents[1]
QUEUE = ROOT / "Docs" / "Art" / "GroundZeroAssetAcquisitionQueue.md"
BIOME_PLAN = ROOT / "Docs" / "World" / "BiomeAndNaturalResourceGenerationPlan.md"
ROADMAP = ROOT / "AGRARIAN_DEVELOPMENT_ROADMAP.md"
REQUIRED_QUEUE = [
"Free Shrubs Pack (Ultra Realistic Wind)",
"Mediterranean Vegetation: Plant Pack I",
"temperate Vegetation: optimized Grass Library",
"Soul: Cave",
"Modular Rural House & Pine Forest Environment",
"/home/nathan/AssetStaging/Agrarian/Incoming",
"verify_asset_license_free_only.py",
"persistent world-resource record",
]
REQUIRED_BIOME_PLAN = [
"weighted macro/regional/local biome blends",
"Persistent Natural Resources",
"removed/depleted timestamp",
"Player-removed trees and shrubs stay removed",
"realistic seasonal timelines",
"asset sets by biome weight",
]
REQUIRED_ROADMAP = [
"Ground Zero asset acquisition queue",
"Tile Biome And Natural Resource Foundation",
"persistent removable natural resource records",
]
def require_snippets(path: Path, snippets: list[str]) -> list[str]:
if not path.exists():
return [f"missing file: {path.relative_to(ROOT)}"]
text = path.read_text(encoding="utf-8")
return [
f"{path.relative_to(ROOT)} missing {snippet!r}"
for snippet in snippets
if snippet not in text
]
def main() -> None:
failures: list[str] = []
failures.extend(require_snippets(QUEUE, REQUIRED_QUEUE))
failures.extend(require_snippets(BIOME_PLAN, REQUIRED_BIOME_PLAN))
failures.extend(require_snippets(ROADMAP, REQUIRED_ROADMAP))
if failures:
raise SystemExit("\n".join(failures))
print("Ground Zero asset queue and biome/resource plan verification complete.")
if __name__ == "__main__":
main()