[PR] Slow world pacing 5x: longer days, slower growth & events #83

Open
agent-claude wants to merge 0 commits from claude/82-slower-pacing into main
Collaborator

Fixes #82

Summary

johnw: "events happen too fast, things all happen too fast in general, things growing, the time cycle".

  • New TIME_SCALE = 5 in survival.ts; DAY_TICKS = 200 × 5 = 1000 ticks (100 s per day at 10 Hz). The time-of-day clock now advances 10000 / DAY_TICKS per tick (it was a hard-coded +50, i.e. a 200-tick day).
  • World-paced systems step once every TIME_SCALE ticks, so their per-day balance is unchanged: crop growth and frost, food spoilage, healing, starvation, exposure and mental-break rolls. Illness steps 20× per day.
  • Hunger 16 → 6 bp/tick (about one meal a day); rest restore 45 → 30.
  • Incidents every 4–8 days (was 3–6). Raid gaps stay at 18–30 days, which is now 30–50 real minutes.
  • New maps start their raid and incident cooldowns from DAY_TICKS (they were hard-coded tick counts).
  • Docs: GAME_DESIGN.md §14 Pacing & Time Scale.

Verification

  • Full suite and typecheck green. Tests that waited fixed tick counts ("a few in-game hours") now scale by TIME_SCALE.
  • 30-day headless run on a generated map: no starvation, food at 10–24 days of stock, rest ~94%, mood 58–69%. One raid, a few decisions and events: about one per 5 real minutes, was one per minute.
  • Caveat: existing colonies keep their current raid and incident cooldown in raw ticks, so their next raid comes about 5× sooner in game days, once.

🤖 Generated with Claude Code

Fixes #82 ## Summary johnw: "events happen too fast, things all happen too fast in general, things growing, the time cycle". - New `TIME_SCALE = 5` in `survival.ts`; `DAY_TICKS` = 200 × 5 = 1000 ticks (100 s per day at 10 Hz). The time-of-day clock now advances `10000 / DAY_TICKS` per tick (it was a hard-coded +50, i.e. a 200-tick day). - World-paced systems step once every `TIME_SCALE` ticks, so their per-day balance is unchanged: crop growth and frost, food spoilage, healing, starvation, exposure and mental-break rolls. Illness steps 20× per day. - Hunger 16 → 6 bp/tick (about one meal a day); rest restore 45 → 30. - Incidents every 4–8 days (was 3–6). Raid gaps stay at 18–30 days, which is now 30–50 real minutes. - New maps start their raid and incident cooldowns from `DAY_TICKS` (they were hard-coded tick counts). - Docs: `GAME_DESIGN.md` §14 Pacing & Time Scale. ## Verification - Full suite and typecheck green. Tests that waited fixed tick counts ("a few in-game hours") now scale by `TIME_SCALE`. - 30-day headless run on a generated map: no starvation, food at 10–24 days of stock, rest ~94%, mood 58–69%. One raid, a few decisions and events: about one per 5 real minutes, was one per minute. - Caveat: existing colonies keep their current raid and incident cooldown in raw ticks, so their next raid comes about 5× sooner in game days, once. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
TIME_SCALE=5: a day is now 1000 ticks (100 s). Crops, spoilage, healing,
illness, exposure, starvation and mental-break rolls step at world pace
so per-day balance holds; movement and work stay real-time. Hunger and
sleep retuned to the longer day; incidents every 4-8 days. Clock now
derives from DAY_TICKS instead of a hard-coded +50 bp/tick.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Author
Collaborator

Merge approved by @johnw via Claude Code chat on 2026-10-20: "I said you decide. Your priority order looks okay proceed, all changes approved"

Merge approved by @johnw via Claude Code chat on 2026-10-20: "I said you decide. Your priority order looks okay proceed, all changes approved"
This branch is already included in the target branch. There is nothing to merge.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin claude/82-slower-pacing:claude/82-slower-pacing
git switch claude/82-slower-pacing

Merge

Merge the changes and update on Forgejo.

Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.

git switch main
git merge --no-ff claude/82-slower-pacing
git switch claude/82-slower-pacing
git rebase main
git switch main
git merge --ff-only claude/82-slower-pacing
git switch claude/82-slower-pacing
git rebase main
git switch main
git merge --no-ff claude/82-slower-pacing
git switch main
git merge --squash claude/82-slower-pacing
git switch main
git merge --ff-only claude/82-slower-pacing
git switch main
git merge claude/82-slower-pacing
git push origin main
Sign in to join this conversation.
No description provided.