Files
open-wc/targets/roadmap/04-gameplay-systems.md
T

5.5 KiB

GMP — Gameplay Systems

Цель

Создать детерминированную клиентскую проекцию серверного gameplay и полный набор player intents WoW 3.3.5a без переноса authoritative правил на клиент.

GMP-1. World model

  • Typed entity registry и object hierarchy.
  • Components/read models: identity, transform, unit, player, item, gameobject, corpse, dynamic object.
  • Ownership, charm, pet, target, creator, transport и group relationships.
  • Reducers применяют domain events; presentation подписывается на changesets.
  • Snapshot/replay позволяют восстановить состояние без live socket.

GMP-2. Input and movement

  • Remappable action layer, keyboard/mouse и optional gamepad/accessibility mappings.
  • Walk/run/backpedal/strafe/turn/jump/fall/swim/fly/autorun.
  • Camera-relative или character-relative policy строго по original behavior.
  • Ground/collision query abstraction, slopes, water transition и falling.
  • Prediction/reconciliation только локального movement; corrections имеют smoothing/snap thresholds.
  • Debug flight/speed отделены от production profile.

GMP-3. Selection and interaction

  • Mouse/world picking, tab target, target/focus и target-of-target.
  • Hostility/faction/dead/visibility/selectability filters.
  • Facing, range, line-of-sight и interaction intents.
  • NPC flags определяют available services; client не выдумывает доступную функцию.
  • Gameobject use, gossip, trainer, vendor, mailbox, auctioneer, binder и flight master.

GMP-4. Combat

  • Auto attack/auto shot, swing state и attack stop.
  • Damage/heal/miss/absorb/resist/block/crit feedback.
  • Threat presentation, combat state, evade и unit flags.
  • Resources, regeneration presentation и combo points/runes where applicable.
  • Combat log canonical events отделены от floating text/UI formatting.
  • Server validates hit, damage и death; client показывает pending/cast state.

GMP-5. Spells and auras

  • Spellbook, ranks, passive/active, known/disabled spells.
  • Target requirements, range, facing, resource и client-predictable validation messages.
  • Cast/channel/interrupt/pushback, GCD и cooldowns.
  • Aura add/update/remove, stacks, duration, caster, dispel type и visibility.
  • Totems, shapeshift, pets, tracking, tradeskill casts.
  • Spell visual/audio descriptors separate from spell mechanics state.

GMP-6. Death and recovery

  • Death/release spirit, ghost, corpse, graveyard, reclaim delay.
  • Resurrection request/accept, spirit healer penalties.
  • Durability loss/repair и instance wipe/reset presentation.
  • Failure during map transfer/reconnect does not duplicate corpse/player state.

GMP-7. Items and economy

  • Inventory slots, bags, bank, keyring, equipment, ammo и currencies.
  • Stack/split/swap/equip/use/destroy with pending/server-confirmed states.
  • Loot windows, group rolls, master loot, disenchant и loot release.
  • Item fields, random properties, enchants, gems, durability, sets и cooldowns.
  • Vendor/buyback/repair, trade, mail, auction и guild bank.
  • Money formatting/display separated from authoritative transaction.

GMP-8. Quests and progression

  • Quest availability, accept, abandon, track, objectives, complete и reward choice.
  • Kill, item, gameobject, explore, spell, escort, timed, reputation objectives.
  • Chains, prerequisites, exclusive groups, repeatable/daily/weekly и conditions.
  • XP/rested/level, reputation, honor, achievements.
  • Skills, talents, glyphs, professions, recipes и trainers.
  • Quest state drives view models; authoring graph compiles to server-supported representation.

GMP-9. World activities

  • Area/subzone/exploration state и rest areas.
  • Taxi discovery/routes/flight, transports, elevators и boats.
  • Fishing, gathering, tracking, world events и scripted gameobjects.
  • Weather/time events feed render/audio but are owned by world state.
  • Minimap/world map POI and quest markers are projections, not quest logic.

GMP-10. Social

  • Chat types, channels, whispers, system messages и links.
  • Friends, ignore, who, AFK/DND.
  • Party/raid invites, leader, roles, loot rules, ready check, raid targets.
  • Guild roster, ranks, notes, MOTD, event/calendar.
  • Presence/reconnect updates and privacy/error handling.

GMP-11. Instances, PvP and vehicles

  • Difficulty, instance binds, lockouts, encounters, reset и transfer aborted.
  • LFG queue/proposal/roles/teleport/vote kick/rewards.
  • Duel, PvP flags, battleground queue/status/score/resurrection и arena teams.
  • Outdoor PvP objectives.
  • Vehicle seats, enter/exit/switch, possession action bar и transport-relative movement.

GMP-12. Cinematics and scripted presentation

  • Cinematic/movie start/stop, camera control и skippability.
  • Server-driven scripted sequences reflected as safe presentation commands.
  • Loading screens and map transitions preserve session state.
  • Gameplay input contexts prevent actions during restricted states.

Testing order

Для каждой системы: reducer unit tests → packet/domain contract → offline scenario → live core integration → original-client comparison → latency/reconnect scenario.

Gate

Gameplay state воспроизводим replay-ом; UI/render не владеют authoritative values; все intents имеют pending/confirmed/rejected lifecycle; core gameplay loop проходит end-to-end без оригинального клиента.