AgentSkillsCN

Game Balance

在分析或调整角色平衡、设计帧数据、设定伤害数值、构建伤害倍率系统、设计命中框以确保公平对战,或运用格斗游戏设计理论时,可选用此技能。内容涵盖帧数据、伤害系统、命中框设计、角色原型,以及竞技平衡的核心原则。

SKILL.md
--- frontmatter
description: Use this skill when analyzing or adjusting character balance, designing frame data, setting damage values, creating damage scaling systems, designing hitboxes for fair gameplay, or applying fighting game design theory. Covers frame data, damage systems, hitbox design, character archetypes, and competitive balance principles.

Game Balance

Overview

Balance in a fighting game means every character has viable options and no single strategy is overwhelmingly dominant. Good balance comes from careful tuning of frame data, damage values, hitbox/hurtbox design, and system mechanics.

Frame Data Fundamentals

Frame data describes the timing of every move in the game. At 60fps (IKEMEN Go's standard), each frame = 1/60th of a second = 16.67ms.

Move Phases

Every attack has three phases:

  1. Startup: Frames before the hitbox appears (vulnerable, no attack)
  2. Active: Frames where the hitbox exists (can hit opponent)
  3. Recovery: Frames after hitbox disappears (vulnerable, no attack)

Total frames = Startup + Active + Recovery

Frame Advantage

Frame advantage determines who can act first after a move connects:

On Hit: Frame advantage = Opponent's hitstun - Attacker's recovery

  • Positive = attacker recovers first (can continue pressure)
  • Negative = defender recovers first (attacker is punishable)
  • 0 = both recover simultaneously (neutral)

On Block: Frame advantage = Opponent's blockstun - Attacker's recovery

  • Usually more negative than on hit (blocking recovers faster)

Standard Frame Data by Move Type

Move TypeStartupActiveRecoveryOn HitOn BlockDamage
Light Punch3-52-36-8+3 to +5+1 to +320-30
Medium Punch5-73-410-14+2 to +4-2 to 050-70
Heavy Punch8-123-516-22+0 to +3-6 to -380-110
Light Kick4-52-37-9+2 to +40 to +220-35
Medium Kick6-83-412-16+1 to +3-3 to -155-75
Heavy Kick9-144-618-24-1 to +2-8 to -490-120
Crouch Light3-42-36-8+3 to +5+1 to +315-25
Crouch Medium5-73-412-15+2 to +3-3 to -145-65
Crouch Heavy/Sweep8-124-520-28Knockdown-10 to -680-100
Jump Attack5-84-8Until landVariesVaries40-90
Special Move8-163-818-30Varies-5 to +370-140
Super Move5-125-1525-40Knockdown-15 to -5200-350
Throw3-51-220+ (whiff)KnockdownN/A120-160

Frame Data in IKEMEN Go

Frame data is encoded in two places:

  1. .air file: Startup frames (before Clsn1 appears), active frames (Clsn1 present), recovery frames (after Clsn1, before state ends)
  2. .cns HitDef: pausetime (hit freeze), ground.hittime (hitstun), ground.slidetime (blockstun basis), guard.ctrltime (guard recovery)

Calculating Hitstun from HitDef

code
On-hit advantage = ground.hittime - (remaining recovery frames + pausetime.p1)
On-block advantage = ground.slidetime - (remaining recovery frames + guard.pausetime.p1)

Damage System

Base Damage

Set in HitDef: damage = hitDmg, guardDmg

  • hitDmg: Damage on successful hit
  • guardDmg: Chip damage when blocked (usually 0 for normals, 10-25% for specials)

Damage Scaling (Combo Proration)

To prevent infinite combos from killing instantly, implement damage scaling:

ini
; In the character's state logic, track combo hits
; Each subsequent hit in a combo does less damage

; Example scaling table:
; Hit 1: 100% damage
; Hit 2: 90% damage
; Hit 3: 80% damage
; Hit 4: 70% damage
; Hit 5+: 60% damage (minimum)

; Implemented via AttackMulSet controller:
[State combo, Scale Damage]
type = AttackMulSet
trigger1 = 1
value = ifelse(var(10) <= 1, 1.0, ifelse(var(10) = 2, 0.9, ifelse(var(10) = 3, 0.8, ifelse(var(10) = 4, 0.7, 0.6))))

Stun/Dizzy System

Optional mechanic where accumulated hits cause a dizzy state:

  • Track stun buildup in a variable
  • When threshold reached, enter dizzy state (5400)
  • Stun decays over time when not being hit
  • Different moves contribute different stun values

Juggle System

IKEMEN Go's juggle system uses juggle points:

  • Each character has airjuggle points (set in [Data], typically 15)
  • Each move costs juggle points (set in Statedef's juggle parameter)
  • Moves can only juggle if remaining points >= move's juggle cost
  • This prevents infinite air combos

Character Archetypes & Balance

Archetype Design Guidelines

Shoto/Balanced (Template character)

  • Life: 1000, Attack: 100, Defense: 100
  • Has fireball (zoning), dragon punch (anti-air), and strong normals
  • Good at everything, master of nothing
  • Walk speed: Medium (2.4), Run speed: Medium (4.6)

Grappler

  • Life: 1100-1200, Attack: 110, Defense: 90-95
  • Very high damage throws and command grabs
  • Slow movement, poor ranged options
  • Walk: Slow (1.8), Run: Slow (3.8), Jump: Low (-7.8)
  • Armor/super armor on some moves

Rushdown

  • Life: 850-950, Attack: 105, Defense: 95
  • Fast normals, good frame advantage, mix-up heavy
  • Walk: Fast (2.8), Run: Fast (5.2), Jump: High (-8.8)
  • Lower damage per hit, higher combo potential

Zoner

  • Life: 900-1000, Attack: 95, Defense: 100
  • Multiple projectiles, screen control tools
  • Weaker up close, strong at range
  • Walk: Medium (2.0), Run: Medium (4.2)
  • Anti-air specials, keepaway tools

Glass Cannon

  • Life: 750-850, Attack: 115-120, Defense: 85
  • Highest damage output, lowest survivability
  • Fast and mobile with strong offense
  • Requires precise play, punishes mistakes hard

Boss Character

  • Life: 1300-1500, Attack: 115, Defense: 80-85
  • Super armor, unique mechanics
  • Intentionally strong for single-player
  • May be banned in competitive play
  • Multiple phases or install supers

Balance Checklist

For each character, verify:

  • Light attacks are plus on hit, minus on block
  • Heavy attacks are negative on block (punishable)
  • At least one reliable anti-air
  • At least one combo starting from a light attack
  • Throw damage is reasonable (120-160)
  • Maximum combo damage doesn't exceed 40% life without meter
  • Maximum combo damage doesn't exceed 60% life with full meter
  • No infinite combos possible
  • At least one safe pressure string
  • One reversal option (invincible move with meter cost)
  • Walk speed allows approaching and retreating
  • Jump arc is appropriate for the archetype

Hitbox Design for Balance

General Principles

  1. Hitboxes should match the visual: Don't make invisible hitboxes
  2. Hurtboxes extend slightly beyond visuals: Prevents "phantom" misses
  3. Extend hitboxes on active frames only: Not during startup/recovery
  4. Low attacks must hit crouching opponents: Hitbox should go below mid-height
  5. Anti-airs need upward hitbox coverage: Extend above character head
  6. Sweeps have low, wide hitboxes: Cover ground level

Hitbox Size by Move Type

  • Light attacks: Small hitboxes (30-40px range)
  • Medium attacks: Medium hitboxes (50-70px range)
  • Heavy attacks: Large hitboxes (70-100px range)
  • Special moves: Varies by design intent
  • Supers: Usually very generous hitboxes

System Mechanics for Balance

Universal Mechanics

These mechanics apply to all characters and create balance:

  • Throw tech: All throws should be techable (escapable)
  • Push block: Blocked attacks push attacker back
  • Burst/Combo break: Emergency escape from combos (costly)
  • Guard cancel: Spend meter to counter-attack while blocking
  • Recovery roll: Options after knockdown to avoid okizeme

Power Meter Design

code
Standard 3-bar system:
- 1 bar = 1000 power
- Max = 3000 power
- Power gain from: hitting (0.7x damage), getting hit (0.6x damage), whiffing specials (small amount)
- EX moves: 500-1000 power (enhanced specials)
- Level 1 super: 1000 power
- Level 3 super: 3000 power

Tips

  1. Start with the shoto archetype as your baseline
  2. Balance characters against each other, not against a theoretical ideal
  3. Frame data is more important than raw damage numbers
  4. Every character needs weaknesses -- a character good at everything is broken
  5. Test with human players, not just AI
  6. Small changes (1-2 frames, 5-10 damage) can have big impacts
  7. Document your frame data in a spreadsheet for comparison
  8. Playtest every character matchup

Reference Files

  • references/frame-data-theory.md - Deep dive into frame data mechanics and formulas
  • references/damage-scaling.md - Damage scaling, guts, and comeback systems
  • references/hitbox-design-guide.md - Hitbox/hurtbox placement and sizing

Example Files

  • examples/frame-data-spreadsheet.md - Template for documenting a character's full frame data
  • examples/balanced-hitdef-values.md - Balanced HitDef values for every attack type
  • examples/archetype-templates.md - Complete data/size/velocity/movement sections per archetype