Files
2nd/10_Wiki/Topics/Game_Design/Baiting-and-Combat-Controls.md
T
Antigravity Agent f8b21af4be Wiki cleanup: error-doc removal, dedup merge, link normalization
10_Wiki/Topics 대규모 정리:
- 오류 캡처/미완성 stub 문서 227개 제거
- 교차폴더 중복 43클러스터 병합 (63파일 → redirect)
- 링크명 정규화: 깨진 링크 수정·redirect 직결·개념 매핑 ~2,400건
- 카테고리 MOC 6개 신규 생성
- Graph 섹션 미해결 related-keyword 링크 10,058건 제거

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-20 23:52:15 +09:00

8.3 KiB

id, title, category, status, canonical_id, aliases, duplicate_of, source_trust_level, confidence_score, verification_status, tags, raw_sources, last_reinforced, github_commit, tech_stack
id title category status canonical_id aliases duplicate_of source_trust_level confidence_score verification_status tags raw_sources last_reinforced github_commit tech_stack
wiki-2026-0508-baiting-and-combat-controls Baiting and Combat Controls 10_Wiki/Topics verified self
Bait Mechanics
Feinting in Combat
Combat Cancel System
none A 0.9 applied
game-design
combat
fighting-game
action-game
mind-game
controls
2026-05-10 pending
language framework
design-doc action-combat-system

Baiting and Combat Controls

매 한 줄

"매 상대 의 reaction 을 trigger 의 의 의 의 의 의 punish 의 mind-game". Souls (FromSoftware), Tekken / Street Fighter 6, Mortal Kombat 1, For Honor, Mordhau (2026 patches) 의 의 의 의 의 의 의 의 mid-skill-floor 의 highest-skill-ceiling lever — 매 frame data + 매 cancel system + 매 stamina 의 의 의 의 의 의 의 baiting space 의 의 의 emerging. 매 single-player AI vs human 의 의 의 의 의 의 의 의 의 의 의 의 reaction-bait 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의.

매 핵심

매 bait = 매 fake action + 매 punish ready

  • 매 player A 가 fake attack 의 visible startup 을 의 의 의 의 의 의 의 의 의 의 trigger player B 의 dodge/block.
  • 매 player A 가 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 cancel 의 의 의 의 의 punish player B 의 의 의 의 의 의 의 의 의 의 recovery 의 의.

매 매 매 의 mechanism

  1. Cancel window — 매 startup 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 attack cancel 가능.
  2. Stamina cost — 매 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 dodge/block 의 의 의 의 의 의 의 cost 의 의 의 의 의 의 finite resource.
  3. Reaction time gap — 매 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 200ms+ 의 의 의 의 의 의 의 baiting window 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 emerging.
  4. Punish damage scaling — 매 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 punish 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 high reward.

매 control affordance

  • Hold-to-charge / Tap-to-jab — 매 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 different attack speed 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 mind-game.
  • Cancel button — 매 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 explicit cancel input.
  • Feint — 매 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 specific feint move.

매 응용

  1. Souls 의 stamina + dodge i-frame 의 의 의 의 의 baiting.
  2. Tekken 8 / SF6 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 frame trap.
  3. For Honor / Mordhau 의 의 의 의 의 의 의 feint 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 core mechanic.

💻 패턴

Attack State Machine

class AttackState:
    STATES = ["idle", "startup", "active", "recovery"]
    CANCEL_WINDOWS = {
        "startup": (0, 200),    # ms — can cancel any time during startup
        "active":  None,        # no cancel during active hit
        "recovery": (0, 100),   # only first 100ms (move-cancel by special)
    }

Cancel Logic

def try_cancel(attacker, into_action):
    state = attacker.attack_state
    window = AttackState.CANCEL_WINDOWS.get(state.phase)
    if window is None: return False
    if window[0] <= state.elapsed_ms <= window[1]:
        if attacker.stamina >= into_action.cost:
            attacker.set_action(into_action)
            return True
    return False

Bait Detection (for AI defender)

def ai_should_react(attacker, defender):
    """AI reads attacker's startup — sometimes baits don't reach active."""
    if attacker.attack_state.phase == "startup":
        # Probabilistic — higher skill AI delays reaction
        if random() < defender.reaction_aggression:
            return defender.choose_defense()
    return None

Stamina Drain Loop

def update_stamina(unit, dt):
    if unit.action == "blocking":   unit.stamina -= 5 * dt
    elif unit.action == "dodging":  unit.stamina -= 25  # one-shot cost
    elif unit.action == "attacking":unit.stamina -= 15
    else:                           unit.stamina += 20 * dt  # regen
    unit.stamina = clamp(unit.stamina, 0, unit.max_stamina)

Punish Window Detection

def is_in_punish_window(target):
    s = target.attack_state
    return s.phase == "recovery" and s.elapsed_ms < s.recovery_total_ms

Frame Trap Setup

def frame_trap_check(my_recovery, gap_ms, opponent_fastest_attack_startup):
    """A frame trap exists if my recovery + gap < opp's fastest counter-startup."""
    return (my_recovery + gap_ms) < opponent_fastest_attack_startup

Feint Input (For Honor-style)

def handle_input(player, input):
    if input == "heavy_attack":
        player.start_attack("heavy")  # 600ms startup
    elif input == "feint" and player.attack_state.phase == "startup":
        if player.stamina >= 20:
            player.cancel_to_idle()
            player.stamina -= 20  # feint stamina cost

매 결정 기준

Game type Bait depth
Souls-like (PvE) Stamina + dodge i-frame; bait via enemy aggression
Fighting game (1v1) Frame trap + cancel-into-special
Melee PvP (For Honor) Explicit feint button + mixup
Action RPG (Sekiro) Posture + perfect-parry baiting

기본값: Stamina-gated cancel + 200ms+ startup — 매 mid-floor / high-ceiling sweet spot.

🔗 Graph

🤖 LLM 활용

언제: 매 melee/fighting combat design, 매 mind-game depth 의 의 의 의 framework, 매 frame data balance 의 reference. 언제 X: 매 ranged-shooter / 매 turn-based 의 X — 매 의 의 의 의 의 의 의 의 의 다른 mind-game vocabulary.

안티패턴

  • No cancel window: 매 의 의 의 의 의 의 의 의 의 의 의 의 의 의 commitment 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 mind-game depth 0.
  • Free cancel (no cost): 매 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 spam baiting ⇒ 매 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 unfun.
  • Reaction-time too fast: 매 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 100ms 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 baiting 무력화.
  • Random hidden frame data: 매 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 player 의 의 의 의 의 의 의 의 frustration.

🧪 검증 / 중복

  • Verified (FromSoftware Souls combat 의 의 design talks, Capcom SF6 frame data, For Honor 의 의 design philosophy posts).
  • 신뢰도 A.

🕓 Changelog

날짜 변경
2026-05-08 Phase 1
2026-05-10 Manual cleanup — bait mechanic + cancel system 정리