Initial scaffold: promote JANKENSTEIN idea to project (Unity, NGO+Relay prototype plan)
This commit is contained in:
commit
b5f7ef73ec
5 changed files with 296 additions and 0 deletions
44
docs/prototype-plan.md
Normal file
44
docs/prototype-plan.md
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
# Prototype build-plan — networked shared bot
|
||||
|
||||
**Goal:** the smallest thing that lets me + 2–5 friends get into a shared arena over the internet and feel out whether **coordinating one janky bot together is fun**. Throwaway code — feel over fidelity. If it's fun, we keep going; if it groans, we iterate the control model (or flip to the asymmetric drive fallback) before spending anything on real netcode.
|
||||
|
||||
## Stack (decided)
|
||||
|
||||
- **Unity** (engine, decided) — project lives on the Windows host.
|
||||
- **Netcode for GameObjects (NGO)** — high-level networking.
|
||||
- **Unity Relay + Lobby** — friends **join by code**, Relay handles NAT so nobody port-forwards. Needs a free Unity account / Unity Gaming Services project.
|
||||
- **Host-authoritative physics** — the host owns the bot's `Rigidbody` simulation; clients send tread **inputs** (RPCs / `NetworkVariable`s), host simulates, NGO replicates transforms. Remote clients see interpolated transforms (non-host bots/parts kinematic). This is the *simple* version of "Plan A" server-auth — **not** a commitment to the final architecture.
|
||||
|
||||
> Deliberately **not** doing client-side prediction, rollback, or Quantum here. Low-latency friends + host-authoritative + interpolation is plenty to judge the *feel*.
|
||||
|
||||
## Milestone 1 — "two treads, some friends, a flat floor"
|
||||
|
||||
The thesis test. Build order, each step independently testable:
|
||||
|
||||
1. **Empty networked scene.** NGO + Relay wired: Host button (creates a Relay allocation → shows a join code) + Join button (enter code). Two builds connect over the internet. Prove connectivity first, nothing else.
|
||||
2. **A capsule you can drive, replicated.** One networked player-controlled cube on the floor; movement host-authoritative (input → RPC → host moves it → replicates). Confirms the input→host→replicate loop and that it feels ok over real ping.
|
||||
3. **The shared bot: chassis + 2 treads.** One bot in the scene. Each tread is a force-applying part on the shared chassis `Rigidbody`. **Seat assignment:** first two players claim left/right tread (unclaimed treads = neutral/free, per leaver-safety).
|
||||
4. **Tread control = the v0.1 model.**
|
||||
- **Snap-to-cruise throttle** (stick/trigger): full-forward → fixed cruise force; partial = proportional. Both treads at cruise ⇒ straight.
|
||||
- **Lock-pivot** (button): plant this tread as a pivot anchor.
|
||||
- **Passive lean** (stick sideways): apply a ballast torque to fight tipping.
|
||||
- Apply as **literal forces** to the shared body so differential drive + jank emerge.
|
||||
5. **Something to do:** a big physics **ball** to shove around, or a few cones / a rough goal. No scoring needed — just a shared objective to make coordination *matter*.
|
||||
6. **Feel juice (cheap):** weighty tuning (mass/drag so it's not twitchy), a follow camera framing the whole bot, and — if quick — the audio "grind on mismatch" cue. Skip haptics/vfx for v1.
|
||||
|
||||
**Success = the answer to one question:** with friends on voice chat, is wrestling this bot around *funny and satisfying*, or *infuriating*? Watch for the **kill signal**: groans not laughs + people asking for direct solo control → iterate the model (try the asymmetric throttle/steer split) before going further.
|
||||
|
||||
## Explicitly out of scope for M1
|
||||
|
||||
Building/scavenge phase · weapons · gremlins · voting · themes/art · 25 players · dedicated servers · prediction/rollback · the real netcode architecture. All later.
|
||||
|
||||
## Milestone 2 (only if M1 is fun) — "add a hammer"
|
||||
|
||||
One weapon pilot on the shared bot → test the **three-body call-and-response** (telegraphed wind-up, braced-bonus plant-and-pound, weapon-as-counterweight). This is where the coordination comedy should really sing. See `DESIGN.md` → *Weapon pilots & three-body coordination*.
|
||||
|
||||
## Open setup tasks
|
||||
|
||||
- [ ] Create the Unity project on Windows; pick Unity LTS; add the NGO + Relay + Lobby packages via Package Manager.
|
||||
- [ ] Set up a Unity Gaming Services project (free tier) for Relay/Lobby; note the project link (not secrets) in `memory.md` references.
|
||||
- [ ] Decide the Unity project's version control (git on `F:\` pushed to Forgejo, vs symlinked into this repo).
|
||||
- [ ] Stand up the Unity MCP server so Claude can help build in-editor.
|
||||
Loading…
Add table
Add a link
Reference in a new issue