Files
TheDeclineOfWarriors/docs/gameplay/combat-resolution-gdd.md
T
2026-04-09 11:11:52 +07:00

12 KiB
Raw Blame History

Combat Resolution GDD

Purpose

Этот документ фиксирует единый порядок расчета боевого действия, правила псевдорандома и место crit, weak spot, status и защитных расчетов в общем pipeline.

  • docs/gameplay/attribute-system-gdd.md
  • docs/gameplay/attribute-reference.md
  • docs/gameplay/stat-catalog-mvp.md
  • docs/gameplay/attribute-stats-visibility-mvp.md

Design Goals

  • один общий combat pipeline для игрока, врага, оружия и навыков
  • chance-based события должны ощущаться честно и стабильно
  • в action RPG физический контакт не должен часто превращаться в нелогичный miss
  • crit, weak spot, penetration, status и stagger должны быть частью одной цепочки, а не отдельными системами
  • сервер должен быть источником истины для всех roll-based результатов

Core Position

Для MVP pseudo-random distribution применяется к chance-based исходам, но не заменяет фактическую физику попадания.

То есть:

  • hitbox, projectile impact и valid AoE contact сначала определяют, был ли контакт
  • только после этого идут roll-based проверки
  • псевдорандом используется для уменьшения длинных серий неудач и успехов

Combat Pipeline

1. Action Start

Система получает попытку действия:

  • melee attack
  • projectile attack
  • cast skill
  • area effect
  • block/guard reaction

Перед выполнением действия проверяется resource gate.

Проверяется:

  • использует ли действие Mana, Stamina или не использует отдельный ресурс
  • хватает ли нужного ресурса для старта
  • есть ли специальные cost modifiers от класса, оружия, навыка или Мастерства

Правила resource gate для MVP:

  • Stamina используется для dodge, sprint, block/guard upkeep, heavy attacks, charged attacks и weapon-heavy abilities
  • базовая легкая атака и простой core loop не должны регулярно блокироваться отсутствием Stamina
  • если Stamina исчерпана, игрок в первую очередь теряет доступ к сильным commit-действиям или получает short exhaustion pressure, а не полностью выключается из боя
  • Stamina Regen должен быть быстрым, чтобы темп open world ARPG не разваливался даже в PvP и затяжных PvE-сценариях

На этом этапе определяются:

  • источник действия
  • тип действия
  • weapon archetype
  • skill archetype
  • target rules
  • resource type
  • resource cost

2. Contact Resolution

Система определяет, был ли валидный контакт.

Примеры:

  • melee через hitbox/overlap
  • ranged через projectile collision
  • spell через trace, overlap или target validation
  • AoE через положение цели внутри области

Результат этапа:

  • No Contact -> дальнейшие offensive roll-этапы не выполняются
  • Valid Contact -> переход к следующему шагу

3. Server Validation

Сервер проверяет:

  • допустимость действия
  • валидность target
  • допустимость дистанции, угла, времени и состояния
  • отсутствие фальшивого попадания со стороны клиента

4. Hit Quality Resolution

Для MVP рекомендуется модель без обязательного stat-based miss после уже произошедшего контакта.

То есть:

  • если действие физически попало и прошло валидацию сервера, это считается попаданием
  • Accuracy и Evasion не являются обязательным MVP-слоем

Если позже потребуется accuracy-модель:

  • она должна стоять здесь
  • она должна использовать отдельный PRD accumulator
  • ее нельзя смешивать с crit или status rolls

5. Critical Resolution

Crit считается как комбинация трех разных сущностей.

Crit Chance

Отвечает на вопрос: сработал ли крит.

Источники:

  • Ловкость
  • weapon modifiers
  • buffs/debuffs
  • часть Мастерства у precision-архетипов

Правило:

  • Crit Chance является chance-based stat
  • для него используется PRD

Crit Quality

Отвечает на вопрос: насколько сильным будет крит.

Источники:

  • Ловкость
  • Мастерство
  • weapon archetype
  • skill modifiers

Правило:

  • Crit Quality не определяет факт крита
  • Crit Quality определяет величину бонуса при уже успешном crit roll

Weak Spot Logic

Отвечает на вопрос: было ли точное позиционное или skill-based попадание в уязвимую зону.

Источники:

  • hit zone
  • angle or position check
  • weapon type
  • skill archetype
  • Мастерство

Правило:

  • Weak Spot не заменяет Crit Chance
  • Weak Spot является skill-based усилителем
  • при наличии weak spot попадание может усиливать crit или давать отдельный bonus layer

Каноническая схема для MVP:

  1. определить факт контакта
  2. выполнить Crit Chance через PRD
  3. при успехе применить Crit Quality
  4. если сработал Weak Spot, усилить итог крита или применить отдельный precision bonus

Это дает:

  • случайность для крита
  • контролируемую силу крита
  • отдельную награду за точное исполнение

Base Damage Build

После того как подтверждено попадание и разрешены crit/precision-модификаторы, строится базовый урон.

В расчет входят:

  • weapon base values
  • skill coefficients
  • уровень оружия
  • relevant derived offense stats
  • Мощь, Фокус и другие атрибутные конверсии через derived stats
  • Мастерство как specialization modifier

Правило:

  • оружие и навыки не должны считать урон по собственным отдельным формулам в обход общего offense build

Penetration And Defense Pass

После построения offense value применяется защитный проход.

Участвуют:

  • Armor
  • Magic Resist
  • Armor Penetration
  • Spell Penetration, если введен для archetype
  • small mitigation и другие defense modifiers

Правило источников магической защиты:

  • Magic Resist формируется из сочетания Фокуса, Мастерства и экипировки
  • ни Фокус, ни Мастерство по отдельности не должны давать самодостаточную магическую защиту

Порядок на MVP:

  1. определить тип урона
  2. выбрать релевантную защиту
  3. применить penetration
  4. применить mitigation

Block And Guard Pass

Если у цели есть активный или пассивный defensive response, он обрабатывается после основного defense pass или как его часть, но в одном каноническом месте.

Участвуют:

  • Block Power
  • shield modifiers
  • guard state
  • directional defense rules

Status Resolution

После разрешения основного урона система считает статусные эффекты.

Участвуют:

  • Status Power
  • skill status modifiers
  • target resist hooks
  • mastery hooks

Если эффект chance-based:

  • применяется отдельный PRD accumulator

Примеры:

  • bleed
  • burn
  • poison
  • shock
  • slow proc

Stagger And Control Resolution

После урона и статусов обрабатываются control-related последствия.

Участвуют:

  • stagger power
  • Stagger Resist
  • Control Resist
  • Debuff Duration Reduction
  • interrupt resistance

Правило:

  • длительность и сила контроля не должны жить в отдельной автономной формуле вне общего pipeline

Pseudo-Random Distribution Rules

Scope

PRD используется только для chance-based событий.

Рекомендуемые MVP-области:

  • Crit Chance
  • chance-based Status Apply
  • chance-based Proc Effects

Не использовать для MVP:

  • фактического projectile contact
  • melee hitbox contact
  • AoE presence check

PRD State

Для каждого roll type хранится отдельное состояние.

Минимальный состав:

  • roll type
  • base chance
  • failure streak
  • current adjusted chance

Разделять состояния по типам:

  • Crit PRD
  • Status PRD
  • Proc PRD
  • Accuracy PRD, только если accuracy-layer появится позже

PRD Behavior

  • после неуспеха шанс немного растет
  • после успеха streak сбрасывается
  • итоговый шанс не должен слишком быстро гарантировать успех
  • PRD работает на сервере
  • клиент может показывать только результат, но не хранить authoritative PRD state

Attributes To Combat

  • Мощь -> physical damage, heavy impact, penetration, block power
  • Ловкость -> cadence, crit chance, crit quality, projectile handling, stamina recovery
  • Фокус -> spell power, mana, status power, part of magic mitigation
  • Стойкость -> HP, stamina pool, mitigation, control resistance, stagger resistance
  • Мастерство -> weak spot bonuses, proc quality, archetype specialization, part of magic mitigation

Weapons To Combat

  • задают base damage
  • задают hit delivery method
  • задают часть crit, penetration и block hooks

Skills To Combat

  • задают execution pattern
  • задают mana consumption или stamina consumption
  • задают coefficients и status hooks
  • задают mastery-specific behavior

Classes To Combat

  • задают стартовые attribute priorities
  • задают class affinity
  • задают доступ к разным mastery conversion rules

Final Position

Для MVP бой должен считаться в одном общем pipeline: контакт, валидация, crit/precision, offense build, defense pass, status, control. Псевдорандом нужен для chance-based механик и должен жить как отдельный серверный слой, а не как замена физическому попаданию.