Log inGet started
World

Fencing with Fences

base: playable loop — the Hedgerow Assizes fence duel end to end Scene, both fencers, controls, camera, core loop and win/lose. Placeholder primitives and untuned numbers throughout. - duel.module — the rules in one file: ground plan, frame data for thrust / sweep / parry, the triangle (resolveTouch), and the placeholder palette. - Fencer.component — one combatant: builds its own primitive body, footwork locked to the piste, windup/active/recover state machine. The panel's pose per phase is the tell. role=player reads input; role=rival is driven by FencerAI through the same methods. - FencerAI.component — the neighbour: closes the measure, reads a wind-up after a reaction delay it cannot beat on a thrust, holds guard, takes its riposte. - DuelMatch.component — the umpire: builds the garden and the boundary fence, spawns the rival, resolves exchanges, plants a post, drives the line into the loser's garden, runs the salute, calls the match at either hedge. - DuelHud.component — the umpire's card. - PisteCamera.component — the locked side-on broadcast view, on the PlayerPrototype's CameraRig. - fencing_controls.inputMap — A/D footwork on the canonical move axis, J thrust, K sweep, L/Space parry, with touch buttons synthesised. The fence runs ALONG the piste and its leading post IS the property line, so the health bar is a physical fence growing across the lawn and the won ground brightens behind it. Validated in a running engine: two full matches to a player win driven with synthetic input, both terminal branches (player and rival) reached, parry into riposte into touch observed in play, clear-and-reload rebuilds the whole arena, scene.json holds exactly 11 entities, zero component errors. --- docs: describe the fencing_controls input map so the world is publishable

eb84fe3bdcba6cd51a4c909fc80b812e2d27024566b3cb654d7e4b5d5e2968d7
Author
claude-code @ aura
Date
Aug 2, 2026
Branch
main
Parent
56c004b1dc

46 files changed

  • AddedDuelHud.componentFolderAfter
  • AddedDuelHud.component/.metadata17 BAfter
  • AddedDuelHud.component/README.md653 BAfter
  • AddedDuelHud.component/init.luau5.3 KBAfter
  • AddedDuelMatch.componentFolderAfter
  • AddedDuelMatch.component/.metadata17 BAfter
  • AddedDuelMatch.component/README.md1.2 KBAfter
  • AddedDuelMatch.component/init.luau11.8 KBAfter
  • AddedFencer.componentFolderAfter
  • AddedFencer.component/.metadata17 BAfter
  • AddedFencer.component/README.md1.1 KBAfter
  • AddedFencer.component/init.luau12.2 KBAfter
  • AddedFencerAI.componentFolderAfter
  • AddedFencerAI.component/.metadata17 BAfter
  • AddedFencerAI.component/README.md726 BAfter
  • AddedFencerAI.component/init.luau5.0 KBAfter
  • AddedPisteCamera.componentFolderAfter
  • AddedPisteCamera.component/.metadata17 BAfter
  • AddedPisteCamera.component/README.md897 BAfter
  • AddedPisteCamera.component/init.luau3.2 KBAfter
  • Changeddesign/journal.md5.5 KB → 21.8 KBBeforeAfter
  • Addedduel.moduleFolderAfter
  • Addedduel.module/.metadata17 BAfter
  • Addedduel.module/README.md881 BAfter
  • Addedduel.module/init.luau5.6 KBAfter
  • Addedfencing_controls.inputMapFolderAfter
  • Addedfencing_controls.inputMap/.metadata486 BAfter
  • Addedfencing_controls.inputMap/README.md1.2 KBAfter
  • Addedfencing_controls.inputMap/init.luau1.2 KBAfter
  • Addedlib/hedge.moduleFolderAfter
  • Addedlib/hedge.module/.metadata17 BAfter
  • Addedlib/hedge.module/README.md1.1 KBAfter
  • Addedlib/hedge.module/init.luau19.5 KBAfter
  • Addedlib/hedge_leaf.shaderFolderAfter
  • Addedlib/hedge_leaf.shader/.metadata17 BAfter
  • Addedlib/hedge_leaf.shader/README.md618 BAfter
  • Addedlib/hedge_leaf.shader/properties.yaml1.2 KBAfter
  • Addedlib/hedge_leaf.shader/shader.wgsl4.9 KBAfter
  • Addedlib/lawn_ground.shaderFolderAfter
  • Addedlib/lawn_ground.shader/.metadata71 BAfter
  • Addedlib/lawn_ground.shader/README.md75 BAfter
  • Addedlib/lawn_ground.shader/properties.yaml487 BAfter
  • Addedlib/lawn_ground.shader/shader.wgsl1.8 KBAfter
  • Changedscenes/main.sceneFolderBeforeAfter
  • Changedscenes/main.scene/entrypoint.luau4.7 KB → 1.8 KBBeforeAfter
  • Changedscenes/main.scene/scene.json3.7 KB → 11.0 KBBeforeAfter