Files
2nd/10_Wiki/Topics/Domain_General/Game_Design/Baiting-and-Combat-Controls.md
T
Antigravity Agent c24165b8bc refactor(topics): 멀티 에이전트용 지식 재편 — _Common(공통 기본기) + Domain_* 구조
에이전트 8종(대화형/프로그래머 C·S/디자이너/설계자/기획자/QA/PD/PM)에게
[공통 기본 능력 + 롤별 Specialty] 2층으로 지식을 주입하기 위한 재분류.
문서 내용·포맷은 무수정, 폴더 이동만 (6,372개 문서 수 보존 확인).

- Topic_Programming → Domain_Programming (내부 구조 보존)
- Topic_Graphic → Domain_Design
- Topic_Business → Domain_Product
- Topic_General → Domain_General
- _Common 신설: Math(구 Topic_Math_Specialty), Reasoning(구 General/From_Thinking & Reasoning),
  Reasoning_Creativity(구 General/From_창의성), Communication(Poetic_Blog_Writing + From_writing)
- 타 도메인의 From_* 폴더는 유지 (출처 표기일 뿐, 이미 도메인에 맞게 분류된 문서)
- 빈 폴더 정리 (memory/procedures)
- 에이전트→폴더 매핑은 workspace의 .astra/agent-knowledge-map.json (9개 에이전트)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-11 11:05:56 +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 정리