Define MVP survival readiness criteria
This commit is contained in:
@@ -34,7 +34,7 @@ Core commitments:
|
|||||||
|
|
||||||
Baseline rule:
|
Baseline rule:
|
||||||
|
|
||||||
- [ ] Use `4 real hours = 1 in-game day` as the default server-authoritative world clock unless testing proves it is too slow.
|
- [x] Use real local time pacing for the represented Earth region as the default server-authoritative world clock. Test-only time acceleration remains allowed.
|
||||||
|
|
||||||
Design intent:
|
Design intent:
|
||||||
|
|
||||||
@@ -179,8 +179,8 @@ Remaining version 0.01 cleanup before moving deeper into new gameplay:
|
|||||||
- [x] Finish required plugin documentation.
|
- [x] Finish required plugin documentation.
|
||||||
- [x] Confirm the project opens cleanly from a fresh checkout, not just the current working share.
|
- [x] Confirm the project opens cleanly from a fresh checkout, not just the current working share.
|
||||||
- [x] Organize `Content/Agrarian/` folders and move starter/prototype assets into clearly named locations.
|
- [x] Organize `Content/Agrarian/` folders and move starter/prototype assets into clearly named locations.
|
||||||
- [ ] Launch near-term MVP map-tile serving cloud VM.
|
- [x] Launch near-term MVP map-tile serving cloud VM.
|
||||||
- [ ] Define MVP day/night length, survival pressure target, success loop, failure conditions, and closed-test readiness criteria.
|
- [x] Define MVP day/night length, survival pressure target, success loop, failure conditions, and closed-test readiness criteria.
|
||||||
|
|
||||||
# Phase 0 - Project Foundation And Guardrails
|
# Phase 0 - Project Foundation And Guardrails
|
||||||
|
|
||||||
@@ -288,12 +288,12 @@ Current tooling decisions:
|
|||||||
- [x] Define acceptable real terrain accuracy for MVP.
|
- [x] Define acceptable real terrain accuracy for MVP.
|
||||||
- [x] Define acceptable real bathymetry/ocean-depth handling for MVP if Ground Zero is coastal.
|
- [x] Define acceptable real bathymetry/ocean-depth handling for MVP if Ground Zero is coastal.
|
||||||
- [ ] Define acceptable first-pass biome/resource accuracy for MVP.
|
- [ ] Define acceptable first-pass biome/resource accuracy for MVP.
|
||||||
- [ ] Define MVP day/night length.
|
- [x] Define MVP day/night length.
|
||||||
- [ ] Define survival pressure target.
|
- [x] Define survival pressure target.
|
||||||
- [ ] Define basic success loop.
|
- [x] Define basic success loop.
|
||||||
- [ ] Define failure conditions.
|
- [x] Define failure conditions.
|
||||||
- [ ] Define first playable internal milestone.
|
- [x] Define first playable internal milestone.
|
||||||
- [ ] Define closed test readiness criteria.
|
- [x] Define closed test readiness criteria.
|
||||||
|
|
||||||
## 0.6 Operational Infrastructure
|
## 0.6 Operational Infrastructure
|
||||||
|
|
||||||
@@ -406,7 +406,8 @@ Target deliverable: A small group can join a server, spawn into one biome, gathe
|
|||||||
- [x] Create world time system.
|
- [x] Create world time system.
|
||||||
- [x] Add day/night cycle.
|
- [x] Add day/night cycle.
|
||||||
- [x] Add configurable time scale.
|
- [x] Add configurable time scale.
|
||||||
- [ ] Set default server time scale to `4 real hours = 1 in-game day`.
|
- [x] Set default server time scale to real-time pacing for the represented Earth region.
|
||||||
|
- [ ] Add real local time-zone and sunrise/sunset lookup for Ground Zero by latitude/longitude.
|
||||||
- [ ] Add Agrarian calendar conversion helpers for days, seasons, crop cycles, livestock maturity, spoilage, and long-running tasks.
|
- [ ] Add Agrarian calendar conversion helpers for days, seasons, crop cycles, livestock maturity, spoilage, and long-running tasks.
|
||||||
- [ ] Add temperature curve by time of day.
|
- [ ] Add temperature curve by time of day.
|
||||||
- [x] Add simple weather states.
|
- [x] Add simple weather states.
|
||||||
@@ -1396,6 +1397,7 @@ The first playable MVP is not complete until:
|
|||||||
- [ ] Players can create fire.
|
- [ ] Players can create fire.
|
||||||
- [ ] Players can build a primitive shelter.
|
- [ ] Players can build a primitive shelter.
|
||||||
- [ ] Weather and time affect survival.
|
- [ ] Weather and time affect survival.
|
||||||
|
- [ ] Day/night follows the real local time and light cycle of the represented map tile.
|
||||||
- [ ] Hunger and thirst matter.
|
- [ ] Hunger and thirst matter.
|
||||||
- [ ] Injury or damage can create meaningful risk.
|
- [ ] Injury or damage can create meaningful risk.
|
||||||
- [~] At least one wildlife system exists.
|
- [~] At least one wildlife system exists.
|
||||||
@@ -1437,8 +1439,8 @@ Earliest incomplete foundation items:
|
|||||||
- [ ] Create art direction, UX/HUD direction, coding standards, Blueprint standards, and asset/folder naming standards.
|
- [ ] Create art direction, UX/HUD direction, coding standards, Blueprint standards, and asset/folder naming standards.
|
||||||
- [x] Organize `Content/Agrarian/` root folder and remove unused starter variant content.
|
- [x] Organize `Content/Agrarian/` root folder and remove unused starter variant content.
|
||||||
- [ ] Define what qualifies as the 6-month MVP and what is explicitly excluded.
|
- [ ] Define what qualifies as the 6-month MVP and what is explicitly excluded.
|
||||||
- [ ] Define MVP day/night length, survival pressure target, success loop, failure conditions, first playable internal milestone, and closed-test readiness criteria.
|
- [x] Define MVP day/night length, survival pressure target, success loop, failure conditions, first playable internal milestone, and closed-test readiness criteria.
|
||||||
|
|
||||||
Immediate next item:
|
Immediate next item:
|
||||||
|
|
||||||
- [ ] Define MVP day/night length, survival pressure target, success loop, failure conditions, and closed-test readiness criteria.
|
- [ ] Create the core design document.
|
||||||
|
|||||||
@@ -0,0 +1,131 @@
|
|||||||
|
# MVP Survival And Readiness Criteria
|
||||||
|
|
||||||
|
This document locks the early MVP target for time, survival pressure, player
|
||||||
|
success, failure, and closed-test readiness.
|
||||||
|
|
||||||
|
## Day And Night
|
||||||
|
|
||||||
|
MVP rule: day/night should mimic the real Earth region represented by the
|
||||||
|
loaded map tile.
|
||||||
|
|
||||||
|
For Ground Zero, the server-authoritative world clock should follow the local
|
||||||
|
time of the real Ground Zero region. Weather and sunlight should both come from
|
||||||
|
the same real-world tile context so the player feels like they are standing in
|
||||||
|
that place, not in an abstract accelerated map.
|
||||||
|
|
||||||
|
Implementation target:
|
||||||
|
|
||||||
|
- The server owns time and replicates it to clients.
|
||||||
|
- Ground Zero uses the real local time zone for its real-world coordinates.
|
||||||
|
- Sunrise, sunset, day length, night length, and seasonal light should be based
|
||||||
|
on the tile location as the system matures.
|
||||||
|
- The MVP fallback can use a 24-hour local clock with conservative fixed night
|
||||||
|
bounds until real sunrise/sunset lookup is implemented.
|
||||||
|
- Time acceleration is allowed for test commands and automation, but not as the
|
||||||
|
default player-facing world clock.
|
||||||
|
|
||||||
|
Design consequence:
|
||||||
|
|
||||||
|
- The sky clock stays grounded.
|
||||||
|
- Skills, tools, teamwork, shelter, storage, domestication, and infrastructure
|
||||||
|
improve what players can accomplish inside real time.
|
||||||
|
- Natural biological systems should not be casually compressed just to make
|
||||||
|
progress feel faster.
|
||||||
|
|
||||||
|
## Survival Pressure Target
|
||||||
|
|
||||||
|
The first playable MVP should feel difficult but learnable.
|
||||||
|
|
||||||
|
Target experience:
|
||||||
|
|
||||||
|
- A new solo player can survive the first session by gathering, drinking,
|
||||||
|
crafting a basic tool, making fire, and using shelter.
|
||||||
|
- Ignoring hunger, thirst, cold, injury, or weather can kill the player.
|
||||||
|
- Death should usually feel preventable after the player understands the rules.
|
||||||
|
- Early play should be inefficient and hands-on.
|
||||||
|
- Progress should noticeably reduce friction through better tools, storage,
|
||||||
|
shelter, food access, water access, and knowledge.
|
||||||
|
|
||||||
|
Early survival pressure should come from:
|
||||||
|
|
||||||
|
- thirst and freshwater access;
|
||||||
|
- hunger and low-yield gathering;
|
||||||
|
- cold exposure, especially at night or in bad weather;
|
||||||
|
- injury/damage;
|
||||||
|
- fire and shelter reliability;
|
||||||
|
- limited inventory and carrying capacity;
|
||||||
|
- weather changing the risk profile.
|
||||||
|
|
||||||
|
## Basic Success Loop
|
||||||
|
|
||||||
|
The MVP loop is complete when a player can:
|
||||||
|
|
||||||
|
1. Spawn into the Ground Zero tile after the startup and character-selection
|
||||||
|
flow.
|
||||||
|
2. Read the environment enough to find immediate resources.
|
||||||
|
3. Gather primitive materials.
|
||||||
|
4. Drink or collect water.
|
||||||
|
5. Craft at least one useful primitive tool.
|
||||||
|
6. Make or use fire.
|
||||||
|
7. Build or use a primitive shelter.
|
||||||
|
8. Survive weather and nighttime pressure.
|
||||||
|
9. Store or preserve some useful progress.
|
||||||
|
10. Leave and return after restart with core state preserved.
|
||||||
|
|
||||||
|
The loop should show the intended long-term direction: survival starts with
|
||||||
|
hands, improvised tools, and local knowledge, then moves toward better tools,
|
||||||
|
storage, shelter, domestication, farming, logistics, and cooperation.
|
||||||
|
|
||||||
|
## Failure Conditions
|
||||||
|
|
||||||
|
The MVP should support clear player failure states:
|
||||||
|
|
||||||
|
- death from health reaching zero;
|
||||||
|
- dehydration;
|
||||||
|
- starvation;
|
||||||
|
- cold exposure/hypothermia;
|
||||||
|
- injury or damage;
|
||||||
|
- inability to recover after poor preparation for night/weather.
|
||||||
|
|
||||||
|
For MVP, failure does not need a complete generational inheritance system.
|
||||||
|
Respawn rules can be simple, but death should still cost enough to make survival
|
||||||
|
matter.
|
||||||
|
|
||||||
|
## First Playable Internal Milestone
|
||||||
|
|
||||||
|
The first playable internal milestone is ready when:
|
||||||
|
|
||||||
|
- one Ground Zero tile loads as the playable map;
|
||||||
|
- the map uses the Ground Zero tile context for time/weather direction;
|
||||||
|
- the player can gather, drink, craft, make fire, and use shelter;
|
||||||
|
- hunger, thirst, body temperature, and health can all affect survival;
|
||||||
|
- one meaningful death path works;
|
||||||
|
- core state survives a server restart;
|
||||||
|
- the startup flow reaches character selection before entering the world;
|
||||||
|
- two players can join the same server for a basic multiplayer smoke test.
|
||||||
|
|
||||||
|
## Closed-Test Readiness
|
||||||
|
|
||||||
|
Closed testing can begin when:
|
||||||
|
|
||||||
|
- the Windows build installs and launches on a clean test machine;
|
||||||
|
- the public or LAN tile endpoint is stable for the test group;
|
||||||
|
- onboarding tells players enough to start without exposing debug internals;
|
||||||
|
- at least one full day/night survival test passes;
|
||||||
|
- basic telemetry/logging is available for crashes and major failures;
|
||||||
|
- known critical bugs are documented;
|
||||||
|
- reset/recovery instructions exist for the test server;
|
||||||
|
- testers can report bugs with build version, map tile, and reproduction notes.
|
||||||
|
|
||||||
|
## Explicit Non-Goals For This MVP
|
||||||
|
|
||||||
|
Do not block first playable MVP on:
|
||||||
|
|
||||||
|
- full Earth-scale streaming;
|
||||||
|
- full real-weather provider integration;
|
||||||
|
- full sunrise/sunset astronomy accuracy;
|
||||||
|
- mature farming/livestock life cycles;
|
||||||
|
- full economy or AGR utility;
|
||||||
|
- full generational succession;
|
||||||
|
- polished character art;
|
||||||
|
- public Steam/Epic release readiness.
|
||||||
@@ -21,8 +21,8 @@ public:
|
|||||||
UPROPERTY(EditAnywhere, BlueprintReadOnly, Replicated, Category = "Agrarian|World")
|
UPROPERTY(EditAnywhere, BlueprintReadOnly, Replicated, Category = "Agrarian|World")
|
||||||
float WorldHours = 8.0f;
|
float WorldHours = 8.0f;
|
||||||
|
|
||||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Agrarian|World", meta = (ClampMin = "0.1"))
|
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Agrarian|World", meta = (ClampMin = "0.001"))
|
||||||
float GameHoursPerRealMinute = 0.5f;
|
float GameHoursPerRealMinute = 1.0f / 60.0f;
|
||||||
|
|
||||||
UPROPERTY(EditAnywhere, BlueprintReadOnly, ReplicatedUsing = OnRep_Weather, Category = "Agrarian|World")
|
UPROPERTY(EditAnywhere, BlueprintReadOnly, ReplicatedUsing = OnRep_Weather, Category = "Agrarian|World")
|
||||||
EAgrarianWeatherType Weather = EAgrarianWeatherType::Clear;
|
EAgrarianWeatherType Weather = EAgrarianWeatherType::Clear;
|
||||||
|
|||||||
Reference in New Issue
Block a user