This repository has been archived on 2026-05-24. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
AgrarianGameArchive/Docs/MovementAndTimeScaleBaseline.md

184 lines
6.8 KiB
Markdown

# Movement And Time Scale Baseline
Date: 2026-05-15
## Decision
Agrarian should keep physical movement close to real-world human pace. The MVP
calendar can remain compressed at `4 real hours = 1 in-game day`, but walking,
running, swimming, climbing, animal movement, and vehicles should be measured in
real distance per real second.
Do not multiply player movement speed by the calendar time scale.
## Why
The world is built around real terrain and real distances. If a tile is 1 km by
1 km, the player should experience that kilometer as a real distance, not as a
distance that changes when the calendar scale changes.
Calendar compression is for crop growth, weather passage, day/night rhythm,
sleep, hunger pressure, and long-term life simulation. Movement speed is for
the feel of a body moving through terrain.
If we scale movement with the day length, travel will stop feeling grounded.
Players will cross valleys, fields, roads, and forests at speeds that do not
match what they see on screen.
## MVP Baseline Walking Speed
Baseline adult walking speed:
- `1.4 meters per second`
- `140 Unreal units per second`
- about `5.0 kilometers per hour`
- about `12 minutes` to walk across a flat 1 km tile edge-to-edge
MVP tuning allowance:
- The default playable walking speed may be tuned up to about
`1.6 meters per second` if the first playable build feels too sluggish.
- That tuning should still be treated as a brisk real walk, not a hidden travel
multiplier.
- Terrain, injury, hunger, thirst, carried weight, weather, age, and endurance
can reduce this baseline later.
## MVP Baseline Running Speed
Baseline sustainable adult running speed:
- `3.0 meters per second`
- `300 Unreal units per second`
- about `10.8 kilometers per hour`
- about `5.5 minutes` to run across a flat 1 km tile edge-to-edge
Short sprint target:
- `5.5 meters per second`
- `550 Unreal units per second`
- about `19.8 kilometers per hour`
- about `3 minutes` to sprint across a flat 1 km tile edge-to-edge, assuming
the character had enough stamina and no terrain/load penalties
MVP implementation rule:
- The current sprint input should represent a short burst, not sustainable
long-distance running.
- A later movement pass can add a separate sustainable jog/run state if the game
needs one.
- Sprint stamina cost should be high enough that a player cannot sprint across
a whole 1 km tile early in the game without rest or progression.
- Movement speed still does not scale with the `4 real hours = 1 in-game day`
calendar.
## Relationship To The 4-Hour Day
With a 4-hour day, one in-game hour lasts 10 real minutes. If a player walks for
10 real minutes, the world clock advances about one in-game hour.
That is acceptable for the MVP. It creates survival pressure without making the
player physically move at unrealistic speed.
The tradeoff is that long travel consumes meaningful daylight. That is a design
feature for Agrarian, because planning, shelter, food, water, roads, mounts,
boats, vehicles, and eventually settlements should matter.
## What We Should Not Do
- Do not make walking 4x faster to compensate for a compressed day.
- Do not make early-game walking feel like jogging.
- Do not solve long-distance travel by hiding scale changes in character speed.
- Do not make one real day equal one game day for the MVP just to make walking
math feel cleaner.
## How To Keep The Game From Dragging
Use systems that make sense in the world:
- Start the MVP in a dense 1 km Ground Zero tile with meaningful nearby goals.
- Keep early tasks local so the player is not walking across empty space.
- Let paths, roads, tools, backpacks, carts, mounts, boats, and vehicles improve
travel over time.
- Use sleep/rest, shelter, storage, and camp placement so time pressure becomes
part of strategy.
- Tune hunger, thirst, weather exposure, and stamina around real seconds and the
4-hour day instead of inflating movement speed.
## Future Movement Layers
Later movement work should separate:
- normal walking;
- brisk walking;
- sustainable jogging/running;
- short sprinting;
- stamina cost and recovery;
- injury/load/terrain modifiers;
- skill, age, care history, and condition effects.
## MVP Stance Movement
The first stance pass supports crouch and prone as low-movement modes that keep
the same real-distance philosophy as walking and sprinting.
Current defaults:
- crouch toggles with `C` or gamepad Right Shoulder;
- prone toggles with `Z` or gamepad Left Shoulder;
- crouch uses `55%` of the current movement speed;
- prone uses `25%` of the current movement speed;
- sprint cannot start while crouched or prone;
- entering prone exits crouch so the player has one active low stance at a
time.
The MVP prone state is replicated and affects movement speed. Dedicated prone
animation, capsule resizing, crawl-specific collision, stealth/noise, and
surface-specific crawl penalties are reserved for later animation and traversal
passes.
## Movement Modifier Implementation
MVP movement speed is now calculated as:
`base speed * movement modifier`
The base speed is either the walking baseline or the short sprint baseline.
The movement modifier is clamped so early gameplay remains controllable while
still allowing meaningful penalties.
Live inputs:
- age placeholder, replicated on the character;
- physical condition placeholder, replicated on the character;
- strength placeholder, replicated on the character;
- endurance placeholder, replicated on the character;
- hunger from the survival component;
- thirst from the survival component;
- injury severity from the survival component;
- carried item weight from the inventory component;
- terrain movement multiplier hook, replicated on the character.
Current rules:
- dead characters have a `0.0` survival movement multiplier;
- hunger below `50` gradually reduces movement to `0.85`;
- thirst below `50` gradually reduces movement to `0.75`;
- injury can reduce movement down to `0.5` at maximum injury severity;
- carried weight has no penalty under comfortable carry weight;
- carried weight scales down to `0.65` as it approaches heavy carry weight;
- carried weight at or above heavy carry weight uses a `0.45` carry multiplier;
- strength increases the effective comfort and heavy carry thresholds;
- endurance improves the movement multiplier and reduces sprint stamina cost;
- terrain can slow or slightly boost movement through a replicated multiplier.
Reserved systems:
- age is currently an editable/replicated placeholder until the lifecycle system
owns it;
- physical condition is currently an editable/replicated placeholder until care,
illness, sleep, and long-term health systems own it;
- strength and endurance are currently editable/replicated placeholders until
character progression owns them;
- terrain is currently a hook for later surface, slope, mud, water, road, and
biome systems.