Commit graph

6 commits

Author SHA1 Message Date
b21f2d93a6 M1: wire shove ball + follow camera into M1_Arena
- ShoveBall: in-scene NetworkObject sphere (1.5m, 10kg, drag 0.5) at
  (0,0.75,6), host-authoritative via NetworkRigidbody/NetworkTransform,
  ShoveBall.physicsMaterial (friction 0.4/0.5, bounce 0.3). No script.
- FollowCamera on Main Camera, target=Bot, offset (0,8,-12).
- Solo host smoke test passed: ball spawns + rests on ground + shoves;
  camera frames the bot.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-12 17:19:10 +01:00
87f929b442 M1: add client-local follow camera (position-follow, anti-nausea)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-12 17:13:28 +01:00
d7bdade618 M1: tune bot physics to stop launch/tip (playtest finding)
First 2-pilot test: bot was too hot (1200N cruise) and top-heavy -> launched
off on any nudge. Tamed in-scene: cruiseForce 1200->450, linearDamping 1.5,
angularDamping 6, maxAngularVelocity capped at 3, and lowered centerOfMass to
(0,-0.6,0) so it's bottom-heavy and resists cartwheeling. Added a host-only
debugAutoDriveFull flag on TreadPart to feel two-tread coordination solo.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-11 00:39:07 +01:00
9f49d45465 M1: build shared 2-tread bot; rewire TreadPart to seat-based gating
- Rewrote TreadPart: seat-based input gating (was mis-wired to NetworkObject
  IsOwner, which needs per-tread ownership that NGO forbids for nested
  NetworkObjects). Both treads now share the chassis NetworkObject; a client
  drives the tread whose SeatManager seat it holds, host re-validates OwnsSeat
  on a RequireOwnership=false RPC. Also swapped to Keyboard.current (New input).
- Moved SeatManager OnGUI below the connectivity panel (was overlapping).
- M1_Arena: in-scene Bot NetworkObject = chassis (Rigidbody 60kg + NetworkObject
  + NetworkTransform + NetworkRigidbody + SeatManager) + Tread_L/Tread_R children
  (TreadPart, world offset +/-1.2 X for differential drive).
- Solo-verified: bot auto-spawns in-scene, seat claim + input gating wired.

Controls: W/Up throttle, Shift pivot, A/D lean.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-11 00:13:41 +01:00
26abf15902 M1: fix PlayerDriver input for New-only Input System (Keyboard.current)
Project ships Active Input Handling = Input System (New) only, so the
drafted legacy Input.GetAxisRaw would throw InvalidOperationException at
runtime. Read WASD/arrows off Keyboard.current instead — no restart, no
action asset needed. (TreadPart needs the same swap when the bot lands.)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-10 23:30:31 +01:00
351a7f1f82 M1: add NGO + Multiplayer Services packages and prototype scripts (compiling)
Netcode for GameObjects 2.13.0 + Unity Multiplayer Services 2.2.4 (unified
Relay/Lobby SDK; supersedes deprecated standalone relay/lobby). Four M1
scripts, verified against live editor reflection and compiling clean:
- Net/NetworkBootstrap.cs  Relay host/join-by-code harness (IMGUI)
- Net/PlayerDriver.cs       replicated host-auth capsule (input->ServerRpc->host)
- Bot/TreadPart.cs          v0.1 tread feel: snap-to-cruise/lock-pivot/lean
- Bot/SeatManager.cs        left/right tread seat claim + leaver-safety

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-10 23:24:47 +01:00