184 lines
6.8 KiB
Markdown
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.
|