From e43e2ce14f7613bc573ddb494e7f9d463115b2cc Mon Sep 17 00:00:00 2001 From: megaproxy Date: Sun, 12 Jul 2026 19:05:58 +0100 Subject: [PATCH] =?UTF-8?q?memory:=20wrap=20session=205=20=E2=80=94=20move?= =?UTF-8?q?ment=20smoothing=20+=20republished=203-platform=20builds?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.8 (1M context) --- memory.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/memory.md b/memory.md index 76e7e1a..0332a18 100644 --- a/memory.md +++ b/memory.md @@ -43,7 +43,9 @@ Durable memory for this project. Read at session start, update before session en - **Prefab editing: use `PrefabUtility.LoadPrefabContents(path)` → mutate → `SaveAsPrefabAsset(root, path)` → `UnloadPrefabContents`.** The `InstantiatePrefab`+unpack+`SaveAsPrefabAsset(instance)` path DROPPED the components I'd added to the instance root — LoadPrefabContents is the reliable editor for an existing prefab asset. - **Owner-authoritative NetworkTransform** = subclass `NetworkTransform` and `protected override bool OnIsServerAuthoritative() => false;` (right for player avatars; the bot/ball stay server-auth default). - **`HostGame()` races the async sign-in on Start** — calling it too early throws "player is already signing in". Poll `AuthenticationService.Instance.IsSignedIn` (or just retry) before hosting in a fresh play session. -- **▶ RESUME:** arena + avatar are in. Still owed / next: build **player stands** around the arena (drive-from-stand flow that gates avatar-vs-tread input), swap the grey bot chassis/treads + shove ball for scrap models, and the real 2-human playtest. Screenshots this session confirmed the look (container ring + dirt + character all cohesive). +- **Player movement smoothing (2026-07-12):** initial `PlayerAvatar` felt "jerky/jarring" because it applied velocity INSTANTLY (full 5m/s on press, dead-stop on release) → also popped anim Idle→Run. Fixed: `Vector3.MoveTowards`-ramp horizontal velocity (`acceleration` 45, `deceleration` 60 m/s², inspector-tunable) so starts/stops ease and Idle→Walk→Run blends. Diagnosed first (applyRootMotion already False, NT.Interpolate True/correct, TickRate 30) — the instant-velocity was the cause, not netcode. Committed `4404870`. **Still open:** no player-follow camera (camera locked to Bot), which makes on-foot movement awkward to judge — offered to add a 3rd-person player-follow cam (retarget FollowCamera to the local avatar during the on-foot phase), user hasn't decided. +- **Republished all 3 platform builds (2026-07-12) with the arena+walls+avatar content** to release `m1-playtest-2026-07-12` (id 19): rebuilt Win/OSX/Linux (0 errors each), deleted the 3 old assets via API (`DELETE /releases/19/assets/{id}`, need Basic-token; got asset ids from the release JSON), uploaded fresh zips, updated notes (you now spawn as a runnable character; bot+ball in the walled arena; WASD-overlap caveat noted). Builds live OUTSIDE the repo in `F:/jankenbots/builds` (not committed). Publish script: `scratchpad/republish_builds.sh` (gotcha: to pass a multiline body to `python3 -c` use `BODY="$B" python3 -c "...os.environ['BODY']..."`, NOT an argv trailing arg). +- **▶ RESUME:** everything committed (`4404870`) + all 3 fresh builds on the release. Next: **player-follow camera** (offered, pending user OK), **player stands** + drive-from-stand flow (gates avatar-vs-tread WASD overlap), swap grey bot chassis/treads + shove ball for scrap models, and the real 2-human playtest. Screenshots confirmed the look (container ring + dirt + character cohesive). ### 2026-07-12 (session 4 — M1 build finished: shove ball + follow camera) - **▶ RESUME HERE next session:** the entire M1 build is done (bot drives, shove ball, follow camera — all in `M1_Arena`, all smoke-verified). **The ONE thing left in M1 is the real 2-human friends playtest over Relay** — flip off any `debugAutoDriveFull`, don't rely on scripted proxies, get two actual people each on one tread pushing the ball around. That playtest is the true fun verdict. After it → **M2 = add a hammer** (first weapon). See the "SHOVE BALL + FOLLOW CAMERA" ✅✅✅ block above for every value/gotcha.