← Back to devlog

The Week We Built Everything: A PM Tool, 15 Mountains, and One Accidental Forest Spawn

By Claude (Anthropic) & Faye

Some weeks you fix a bug. Some weeks you ship a feature. This week, we built an entire project management application, a 24-solar-term in-game calendar, 15 mountain cliff tilesets with animated waterfalls, and started construction on the production village map — only to discover the player spawn point was buried inside a dense forest.


Act 1: PMTool 2.0 — From Zero to 28 Commits

Monday-Tuesday: The Big Bang

SimpleLife’s prototype phase just ended. Pre-production means real scheduling, real tracking, real accountability. Our existing kanban board was fine for prototyping, but we needed hierarchical work breakdown, roadmaps, dashboards, and burndown charts.

So we built all of it. In two days.

The first commit (19f1a4d) landed Monday night: Phase 1 brought hierarchical work items, a kanban board, and team management. By Tuesday, we had a roadmap view, a dashboard with capacity-based schedule health calculations, member avatars, and generated status reports.

Wednesday-Thursday: The Details That Matter

The rest of the week was about making PMTool actually usable:

By Friday, PMTool had 233 passing tests (195 server + 38 client) and was tracking its own development. Meta.


Act 2: The Calendar — 24 Solar Terms Meet Game Design

Research First

Faye’s task was clear: design an in-game calendar worthy of a TCM life sim. We studied Stardew Valley (the most common complaint: “I forgot to check the calendar and missed Pierre’s birthday”), Animal Crossing, Rune Factory 4, Coral Island, and six other titles.

Our advantage? The 24 solar terms. No life sim has ever used the traditional Chinese agricultural calendar as a game mechanic. Each “season” in SimpleLife has 28 days divided into 6 solar terms (like 立春 Lichun, 雨水 Yushui), each affecting what herbs grow, what crops can be planted, and what wellness advice the village healer gives.

Build Day

The calendar went from design doc to working feature in a single session:

The Only-Lichun Bug

Testing revealed that only 立春 (the first solar term) was showing on the calendar grid. No 雨水, no 惊蛰, nothing.

The culprit: an indentation error. The solar term rendering code was nested inside if _village_events.has(evt_key): — meaning it only ran for days that also had a village event. Day 1 happened to be both the start of 立春 AND the Revival Day ceremony. Pure coincidence that it showed at all.

The fix: pre-build solar term labels during grid construction, set their text independently of village event processing.

The TSV Retirement

An amusing side conversation: Claude built a TSV migration script for the calendar data, following what it assumed was the project’s pattern. Faye’s response: “We retired TSV months ago. Everything is in SQLite now. Please delete the TSV files and write that down in your memory so future sessions don’t make TSV files again.”

Data format archaeology: a rite of passage for any AI working on an evolving codebase.


Act 3: Mountains, Waterfalls, and the Vanishing Texture

15 Cliff Styles

The auto-tiling system needed mountain cliffs. We downloaded the LPC Mountains v6 pack (CC-BY-SA 3.0, by bluecarrot16), extracted the atlas at 48px scale, and generated 15 cliff variants:

Map-specific Universal
cliff_brown (Village) cliff_lava
cliff_green (Bamboo Valley) cliff_stone
cliff_dark_brown (Deep Mountain) cliff_snow
cliff_gray_stone (Mine) cliff_white
cliff_sand (Sand Sea) cliff_red_rock
cliff_tan_grass (Player Place) cliff_dark_rock

Plus cliff_hills — round hillock tiles for gentle terrain.

The Hue Compression Incident

Palette remapping looked great on grass tiles. On rock textures, it was a disaster.

The original rock face had 6 distinct colors spanning 16 degrees of hue (20-36). Our dirt palette mapped everything to a single hue at 42 degrees, with only 1 degree of spread. The subtle color variation that was the rock texture — slight shifts between orange-brown and yellow-brown — got flattened into uniform mush.

The diagnostic data told the whole story:

Metric Original After Remap
Unique colors 6 4
Hue range 16°
Saturation range 0.40-0.48 0.29-0.34

Solution: only remap the grass/vegetation overlay, leave rock faces untouched. cliff_brown ended up with 0% color remapping — pure original stone. cliff_tan_grass got a surgical 5.2% remap, touching only the grass in the upper-right corner.

Waterfalls

The cliff pack didn’t include vertical waterfalls — only horizontal water pools. A hunt through LPC resources turned up ZaPaper’s wateranimate2.png: 4-frame animated waterfalls in tall and short variants, plus water surface shimmer effects.

We integrated these as animated tiles in the Godot tileset: 3 columns wide, 4 frames at 0.2s each, designed as semi-transparent overlays on the cliff layer. The water shimmers. The falls cascade. It looks like a real mountain stream.


Act 4: The Village Awakens

Production Map Day

Saturday night, Faye laid out the production village map and all the NPC house exteriors in Godot. Then came the handoff: “Please migrate everything from the old village map to the new one — NPCs, door triggers, waypoints, transitions, resource nodes, navigation, crafting stations, boundaries.”

The migration added 70+ nodes to village_prod.tscn: 13 NPCs, 20 waypoints, 9 door triggers, 2 transition zones, resource spawners, navigation mesh, crafting stations, and boundary walls for a 3168x3216 pixel map.

“You Spawned Me in a Forest”

Faye’s first test: run the game, load the village.

“你把我spawn在这片树林里了 lol” (“You spawned me inside this forest lol”)

The herb field waypoint (wp_herb_field) had been placed dead center in a tree cluster. The player materialized surrounded by bark on all sides, unable to see the village. A quick coordinate adjustment later, the spawn point moved to the flower field on the village outskirts — where the story actually begins.


The Numbers

Metric This Week
PMTool commits 28
PMTool tests passing 233
Cliff tile variants 15
Calendar solar terms 24
Props completed 20+
Crafting workbenches done 5 (forge, loom, artisan bench, herb station, cooking stove)
Village map nodes 70+
Times spawned in a forest 1

Next week: the village map gets its first real playtest, the mountain cave system opens for mining, and PMTool starts generating its own weekly reports — like this one.