Author the PvP arena map on the static content system #109

Closed
opened 2026-07-20 18:37:35 +02:00 by marco · 1 comment
Owner

Part of the Alpha epic (pillar 2). The alpha's playfield is a PvP arena built with real statics (walls, pillars, gates, floor), authored on top of the general static-content system (#89) — not the current bare ./# grid.

Depends on #89. The arena is content, not engine: it must be a data file the static system consumes, so future maps reuse the same path (no arena-specific code).

Scope

  • Design a compact, readable arena layout suited to 3-6 players (clear sightlines, cover from statics, one or more entrances/resurrection points).
  • Author it as map + static-placement content (the format #89 defines), copied to server and client output like the existing content/maps/world.map.
  • Statics block movement server-side (walkability) and render client-side with real static art + placeholder fallback.
  • Mark the arena entrance / resurrection point(s) used by the death-re-entry issue.

Out of scope

  • An in-game map editor (authoring is by content file for now).
  • Multiple arenas / world map redesign.

Definition of Done

Base DoD applies on top.

  • The arena loads on server and client from content files, with statics rendered and colliding.
  • Two players can move around cover and fight inside it; statics block movement server-side (demonstrable: walking into a wall is rejected).
  • At least one entrance/resurrection point is defined and consumed by the auto-respawn issue.
Part of the Alpha epic (pillar 2). The alpha's playfield is a **PvP arena built with real statics** (walls, pillars, gates, floor), authored on top of the general static-content system (#89) — not the current bare `.`/`#` grid. > Depends on #89. The arena is **content**, not engine: it must be a data file the static system consumes, so future maps reuse the same path (no arena-specific code). ## Scope - Design a compact, readable arena layout suited to 3-6 players (clear sightlines, cover from statics, one or more entrances/resurrection points). - Author it as map + static-placement content (the format #89 defines), copied to server and client output like the existing `content/maps/world.map`. - Statics block movement server-side (walkability) and render client-side with real static art + placeholder fallback. - Mark the arena entrance / resurrection point(s) used by the death-re-entry issue. ## Out of scope - An in-game map editor (authoring is by content file for now). - Multiple arenas / world map redesign. ## Definition of Done _Base DoD applies on top._ - [ ] The arena loads on server and client from content files, with statics rendered and colliding. - [ ] Two players can move around cover and fight inside it; statics block movement server-side (demonstrable: walking into a wall is rejected). - [ ] At least one entrance/resurrection point is defined and consumed by the auto-respawn issue.
marco added this to the Alpha milestone 2026-07-20 18:37:35 +02:00
Author
Owner

Design agreed (game-design review, 2026-07-22)

Full design: docs/game-design/systems/pvp-arena.md (PR #148). Reviewed by a 3-persona panel (power-gamer, coherence/server-authority, new-player).

Shape: a sealed, symmetric dueling pit carved into world.map (NOT a separate/instanced map — that'd be a new mechanic, out of scope), floor rocky_ground, entry by teleport (alpha: GM /tp; dedicated mechanism deferred). Cover concentrated in the CENTRE (corners bare) so turtling a corner is death vs ranged and the centre is the real fight; cover staggered so the longest sightline < ranged/bolt range (the owner's hard 'must get out of LoS' rule); varied cover kinds (columns/statue/boulder/brazier/ruined-wall) with symmetric positions + varied kinds; a central focal point; two ankhs in protected alcoves (un-surroundable, away from centre). No-loss is inherited from the global rule — the arena authors no death rule. Geometry in world.map/.statics; ankhs GM-/placed in world.sav (documented steps in the DoD). No wire change.

Dependencies the review surfaced (technical breakdown to follow — the arena isn't playable/fair without these):

  • #149client mobile unification (blocker: you can't click a player to attack today).
  • #150AoI line-of-sight filter (cover is defeated by a modified client).
  • Death feedback (YouAreDead catalog msg) + ankh ghost-beacon + arena onboarding (welcome/HUD hint).
  • #91 — cursor tile-highlight (cover readability).
  • Content: extract real UO art for wall + the cover kinds into the pack, coordinated with #137 (avoid an assets.isoa binary conflict).
  • Deferred (depth): post-resurrection immunity (anti ankh-camp); win-condition / rounds.

Player-observable DoD is in the design doc. Depends on #113 (map editor, merged in #147) to author it. Scope of THIS issue stays: author the arena content on the static system.

## Design agreed (game-design review, 2026-07-22) Full design: `docs/game-design/systems/pvp-arena.md` (PR #148). Reviewed by a 3-persona panel (power-gamer, coherence/server-authority, new-player). **Shape:** a **sealed, symmetric dueling pit carved into `world.map`** (NOT a separate/instanced map — that'd be a new mechanic, out of scope), floor `rocky_ground`, entry by **teleport** (alpha: GM `/tp`; dedicated mechanism deferred). **Cover concentrated in the CENTRE** (corners bare) so turtling a corner is death vs ranged and the centre is the real fight; cover **staggered so the longest sightline < ranged/bolt range** (the owner's hard 'must get out of LoS' rule); **varied** cover kinds (columns/statue/boulder/brazier/ruined-wall) with symmetric *positions* + varied *kinds*; a central focal point; **two ankhs in protected alcoves** (un-surroundable, away from centre). **No-loss is inherited from the global rule** — the arena authors no death rule. Geometry in `world.map`/`.statics`; ankhs GM-`/place`d in `world.sav` (documented steps in the DoD). **No wire change.** **Dependencies the review surfaced (technical breakdown to follow — the arena isn't playable/fair without these):** - #149 — **client mobile unification** (blocker: you can't click a player to attack today). - #150 — **AoI line-of-sight filter** (cover is defeated by a modified client). - Death feedback (`YouAreDead` catalog msg) + ankh ghost-beacon + arena onboarding (welcome/HUD hint). - #91 — cursor tile-highlight (cover readability). - Content: extract real UO art for `wall` + the cover kinds into the pack, **coordinated with #137** (avoid an `assets.isoa` binary conflict). - _Deferred (depth):_ post-resurrection immunity (anti ankh-camp); win-condition / rounds. **Player-observable DoD** is in the design doc. Depends on #113 (map editor, merged in #147) to author it. Scope of THIS issue stays: author the arena content on the static system.
marco closed this issue 2026-07-22 18:58:33 +02:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
marco/IsoMmo#109
No description provided.