From 9dd8769e2d45681499fdbbfd1ac5eb6c73199bbd Mon Sep 17 00:00:00 2001 From: nathan Date: Fri, 15 May 2026 01:08:03 -0700 Subject: [PATCH] Clarify MVP time pacing --- AGRARIAN_DEVELOPMENT_ROADMAP.md | 6 ++--- Docs/MvpSurvivalReadinessCriteria.md | 32 +++++++++++++++---------- Source/AgrarianGame/AgrarianGameState.h | 4 ++-- 3 files changed, 24 insertions(+), 18 deletions(-) diff --git a/AGRARIAN_DEVELOPMENT_ROADMAP.md b/AGRARIAN_DEVELOPMENT_ROADMAP.md index 6554e85..b106c34 100644 --- a/AGRARIAN_DEVELOPMENT_ROADMAP.md +++ b/AGRARIAN_DEVELOPMENT_ROADMAP.md @@ -34,7 +34,7 @@ Core commitments: Baseline rule: -- [x] Use real local time pacing for the represented Earth region as the default server-authoritative world clock. Test-only time acceleration remains allowed. +- [x] Use `4 real hours = 1 in-game day` as the MVP gameplay calendar target, while day/night presentation mimics the represented Earth region's local solar/weather context. Design intent: @@ -406,7 +406,7 @@ Target deliverable: A small group can join a server, spawn into one biome, gathe - [x] Create world time system. - [x] Add day/night cycle. - [x] Add configurable time scale. -- [x] Set default server time scale to real-time pacing for the represented Earth region. +- [x] Set default server time scale to `4 real hours = 1 in-game day`. - [ ] 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 temperature curve by time of day. @@ -1397,7 +1397,7 @@ The first playable MVP is not complete until: - [ ] Players can create fire. - [ ] Players can build a primitive shelter. - [ ] Weather and time affect survival. -- [ ] Day/night follows the real local time and light cycle of the represented map tile. +- [ ] Day/night presentation follows the real local solar/light context of the represented map tile while the MVP gameplay day remains `4 real hours = 1 in-game day`. - [ ] Hunger and thirst matter. - [ ] Injury or damage can create meaningful risk. - [~] At least one wildlife system exists. diff --git a/Docs/MvpSurvivalReadinessCriteria.md b/Docs/MvpSurvivalReadinessCriteria.md index 6f87ed0..a5ac1fb 100644 --- a/Docs/MvpSurvivalReadinessCriteria.md +++ b/Docs/MvpSurvivalReadinessCriteria.md @@ -5,30 +5,36 @@ 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. +MVP rule: day/night presentation should mimic the real Earth region represented +by the loaded map tile, while the gameplay calendar uses the MVP pacing target +of `4 real hours = 1 in-game day`. -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. +For Ground Zero, weather and sunlight should come from the same real-world tile +context so the player feels like they are standing in that place. The sky should +respect the region's local time zone, sunrise/sunset shape, season, and weather +direction as the system matures, but the MVP gameplay day is still compressed +to four real hours so players can experience a full survival cycle in a +reasonable test session. Implementation target: - The server owns time and replicates it to clients. -- Ground Zero uses the real local time zone for its real-world coordinates. +- The MVP gameplay calendar target is `4 real hours = 1 in-game day`. +- Ground Zero day/night presentation uses the real local time zone and regional + solar/weather context 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. +- The MVP fallback can use the accelerated 24-hour gameplay clock with + conservative fixed night bounds until real sunrise/sunset lookup is + implemented. +- Additional time acceleration is allowed for test commands and automation, but + should not replace the default four-hour MVP day for normal playtests. Design consequence: -- The sky clock stays grounded. +- The sky stays regionally grounded even while the gameplay day is compressed. - Skills, tools, teamwork, shelter, storage, domestication, and infrastructure - improve what players can accomplish inside real time. + improve what players can accomplish inside the compressed gameplay calendar. - Natural biological systems should not be casually compressed just to make progress feel faster. diff --git a/Source/AgrarianGame/AgrarianGameState.h b/Source/AgrarianGame/AgrarianGameState.h index 5f815cf..4ebe40f 100644 --- a/Source/AgrarianGame/AgrarianGameState.h +++ b/Source/AgrarianGame/AgrarianGameState.h @@ -21,8 +21,8 @@ public: UPROPERTY(EditAnywhere, BlueprintReadOnly, Replicated, Category = "Agrarian|World") float WorldHours = 8.0f; - UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Agrarian|World", meta = (ClampMin = "0.001")) - float GameHoursPerRealMinute = 1.0f / 60.0f; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Agrarian|World", meta = (ClampMin = "0.1")) + float GameHoursPerRealMinute = 0.1f; UPROPERTY(EditAnywhere, BlueprintReadOnly, ReplicatedUsing = OnRep_Weather, Category = "Agrarian|World") EAgrarianWeatherType Weather = EAgrarianWeatherType::Clear;