Queue Ground Zero assets and biome resource plan
This commit is contained in:
@@ -163,7 +163,7 @@ Current reset baseline as of 2026-05-21:
|
||||
- [x] Generated Unreal folders remain ignored.
|
||||
- [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`.
|
||||
- [ ] 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.
|
||||
|
||||
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 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 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 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.
|
||||
@@ -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.
|
||||
- [ ] 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.
|
||||
- [ ] 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.
|
||||
- [ ] Define claim size limits.
|
||||
@@ -972,7 +987,7 @@ Required order:
|
||||
- [ ] Add claim conflict rules.
|
||||
- [ ] Add abandoned claim decay rules.
|
||||
|
||||
## 0.2.B Farming
|
||||
## 0.2.C Farming
|
||||
|
||||
- [ ] Design soil model.
|
||||
- [ ] 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.
|
||||
@@ -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()
|
||||
Reference in New Issue
Block a user