Alpha — epic: PvP arena for friends #107

Open
opened 2026-07-20 18:37:32 +02:00 by marco · 0 comments
Owner

Alpha objective

PvP arena for friends. A group of friends logs into a remote server, creates their character (name + UO-style appearance via an authentic paperdoll), enters an arena built from real statics, and fights in PvP with weapon variety (melee + ranged), dying and re-entering automatically, for a full evening without crashes.

This is a friends game today, but the target is a real MMORPG. Every system below must be built general and extensible (ModernUO-style, per CLAUDE.md) — a reusable static-content system, a weapon/skill catalog, a projectile path, an appearance model, a resurrection-point system — not one-off hacks scoped to this single arena.

The four pillars

1. Character creation + UO paperdoll

  • #106 equip-layer system + paperdoll
  • #19 extract UO gump art
  • #39 authentic inventory/paperdoll UI (+ #14 widget framework as needed)
  • #18 show equipped items on other players
  • #108 character appearance model + creation wizard (hair/beard + colours + name)

2. Arena built from statics — map subsystem tracked in #115

  • #89 static content system (runtime): sparse statics, server collision, client render — size-agnostic
  • #113 map editor (minimal): paint terrain + statics on the iso grid (pan/zoom/brush/fill/eraser, MonoGame + ImGui)
  • #109 author the PvP arena map (content, using #113 on top of #89)
  • post-alpha: #114 large ~1000x1000 world map

3. Combat refinement + weapon variety

  • NEW melee weapon variety (Mace Fighting + Fencing weapons & skills)
  • NEW ranged combat — Archery (projectile + line-of-sight + ranged range)
  • NEW death re-entry: auto-respawn at a resurrection point
  • #30 ghost full-screen overlay (death feedback)
  • #68 keep the current target when it leaves the AoI
  • #105 combat balance simulator (tuning)

4. Stability + remote deploy

  • #15 verify the client on Windows (mixed Windows/Mac group — verify early, does not block Mac)
  • #11 (subset) cross-platform deploy scripts + per-environment config + structured logging

Ordering (waves, dependency-respecting)

Explicitly out of alpha (backlog)

#114 large world map · #65 spawner (PvP fights players, not mobs) · #74 audio · #73 SystemMessage→catalog · #52 broadcast perf (invisible at friends scale) · #51 nits · #103 PR#100 follow-ups · #70 asset editor UX · #17 Core/Content split

Definition of Done

Base DoD applies on top (tests green, whole solution builds, zero warnings, multi-platform preserved).

  • Every child issue in the four pillars is closed.
  • A friend (Windows or Mac) can, on a remote server, create a character with a chosen name and appearance, enter the arena, and fight another player using at least one melee and one ranged weapon.
  • Dying triggers automatic re-entry without a GM.
  • A multi-player session runs for a full evening with no server crash and no save corruption (demonstrable: session log + intact world save).
# Alpha objective **PvP arena for friends.** A group of friends logs into a remote server, **creates their character** (name + UO-style appearance via an authentic paperdoll), enters an **arena built from real statics**, and fights in **PvP with weapon variety** (melee + ranged), **dying and re-entering automatically**, for a full evening **without crashes**. > This is a friends game today, but the target is a real MMORPG. Every system below must be built **general and extensible** (ModernUO-style, per `CLAUDE.md`) — a reusable static-content system, a weapon/skill catalog, a projectile path, an appearance model, a resurrection-point system — **not** one-off hacks scoped to this single arena. ## The four pillars ### 1. Character creation + UO paperdoll - ✅ #106 equip-layer system + paperdoll - ✅ #19 extract UO gump art - ✅ #39 authentic inventory/paperdoll UI (+ #14 widget framework as needed) - ✅ #18 show equipped items on other players - ✅ #108 character appearance model + creation wizard (hair/beard + colours + name) ### 2. Arena built from statics — map subsystem tracked in #115 - ✅ #89 static content system (runtime): sparse statics, server collision, client render — size-agnostic - ✅ #113 map editor (minimal): paint terrain + statics on the iso grid (pan/zoom/brush/fill/eraser, MonoGame + ImGui) - #109 author the PvP arena map (content, using #113 on top of #89) - _post-alpha:_ #114 large ~1000x1000 world map ### 3. Combat refinement + weapon variety - **NEW** melee weapon variety (Mace Fighting + Fencing weapons & skills) - **NEW** ranged combat — Archery (projectile + line-of-sight + ranged range) - **NEW** death re-entry: auto-respawn at a resurrection point - #30 ghost full-screen overlay (death feedback) - #68 keep the current target when it leaves the AoI - #105 combat balance simulator (tuning) ### 4. Stability + remote deploy - #15 verify the client on Windows (mixed Windows/Mac group — verify early, does not block Mac) - #11 (subset) cross-platform deploy scripts + per-environment config + structured logging ## Ordering (waves, dependency-respecting) - **Wave 0 — de-risk:** #15 - **Wave 1 — foundations:** #106, #19, #89 - **Wave 2 — features:** #39 (+#14), #108 appearance, #18, #113 map editor -> #109 arena, #110 melee, #111 ranged, #112 respawn, #30, #68 - **Wave 3 — refine + stabilize:** #105, #11, final playtest ## Explicitly out of alpha (backlog) #114 large world map · #65 spawner (PvP fights players, not mobs) · #74 audio · #73 SystemMessage→catalog · #52 broadcast perf (invisible at friends scale) · #51 nits · #103 PR#100 follow-ups · #70 asset editor UX · #17 Core/Content split ## Definition of Done _Base DoD applies on top (tests green, whole solution builds, zero warnings, multi-platform preserved)._ - [ ] Every child issue in the four pillars is closed. - [ ] A friend (Windows or Mac) can, on a remote server, create a character with a chosen name and appearance, enter the arena, and fight another player using at least one melee and one ranged weapon. - [ ] Dying triggers automatic re-entry without a GM. - [ ] A multi-player session runs for a full evening with no server crash and no save corruption (demonstrable: session log + intact world save).
marco added this to the Alpha milestone 2026-07-20 18:37:32 +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#107
No description provided.