"매 weapon kick은 매 visual displacement + 매 control penalty + 매 audio impact의 multi-layer composite — 매 한 layer만으로는 'feel' 안 남." Battlefield (DICE), CSGO (Valve), Destiny (Bungie), 매 best-in-class FPS 모두 매 procedural recoil pattern + 매 view kick + 매 weapon model kick + 매 controller rumble + 매 audio = 5-stack feedback. 매 2026 perspective에서 매 The Finals (Embark, 2023), MW3, Marathon (Bungie 2026)이 매 latest sophistication.
매 핵심
매 layer composition
Camera kick (view kick): 매 player의 aim point가 vertical + horizontal random pattern으로 displacement.
Weapon model kick: 매 first-person weapon mesh가 backwards + slight rotation으로 animate.
Crosshair bloom: 매 reticle expansion → 매 next shot accuracy degrade.
Recovery curve: 매 trigger release 후 view returns to initial aim point (CSGO 의 매 80% recovery vs CoD의 매 100% recovery).
Audio kick + rumble: 매 sub-bass thump + controller haptic.
매 pattern types
Random spread: 매 cone bloom — 매 oldschool (Quake 1996).
Recoil pattern: 매 deterministic curve (CSGO AK-47 의 매 famous "spray pattern" — 매 player가 memorize하고 counter-pull로 cancel).
Mixed: 매 deterministic core + 매 random jitter (CoD MW2019+, Apex Legends).
매 응용
CSGO AK-47 spray: 매 7 vertical + 매 그 후 horizontal sway — 매 pro player는 매 muscle memory로 30 round 모두 head height에 lock.
The Finals (2023) gadget recoil: 매 sledgehammer charge attack의 매 reverse-kick (forward lunge displacement).
Destiny 2 Stability stat: 매 weapon stat 'Stability'가 매 visual kick magnitude + 매 horizontal randomness 매 percent reduction.
💻 패턴
Multi-layer recoil controller
publicclassWeaponRecoil:MonoBehaviour{ [SerializeField]AnimationCurveverticalKick;// x: shot index, y: degrees up [SerializeField]AnimationCurvehorizontalKick;// x: shot index, y: degrees lateral [SerializeField]floatrecoveryRate=8f;// degrees/sec back to aim [SerializeField]floatcameraKickFactor=0.7f;// 매 camera는 weapon보다 less [SerializeField]floatweaponKickFactor=1.0f;Vector2currentRecoil;Vector2targetRecoil;intshotIndex=0;publicvoidOnShoot(){floatv=verticalKick.Evaluate(shotIndex);floath=horizontalKick.Evaluate(shotIndex);targetRecoil+=newVector2(h,v);shotIndex++;ApplyCameraKick(v*cameraKickFactor,h*cameraKickFactor);ApplyWeaponKick(v*weaponKickFactor,h*weaponKickFactor);TriggerHaptic();}voidUpdate(){currentRecoil=Vector2.MoveTowards(currentRecoil,targetRecoil,Time.deltaTime*120f);targetRecoil=Vector2.MoveTowards(targetRecoil,Vector2.zero,Time.deltaTime*recoveryRate);if(Time.time-lastShot>0.3f)shotIndex=0;}}
// 매 first 7 shots = vertical, 매 then horizontal swaystaticreadonlyVector2[]AK47_PATTERN=newVector2[]{new(0f,0f),new(0.1f,1.2f),new(-0.05f,2.1f),new(0.08f,2.8f),new(-0.1f,3.4f),new(0.15f,3.9f),new(-0.2f,4.3f),// 매 sway phasenew(0.6f,4.5f),new(-0.7f,4.4f),new(0.8f,4.3f),new(-0.9f,4.2f),new(1.0f,4.0f),/* ... */};Vector2GetKick(intshotIndex){inti=Mathf.Min(shotIndex,AK47_PATTERN.Length-1);returnAK47_PATTERN[i];}
Haptic + audio coupling
publicvoidTriggerHaptic(){Gamepad.current?.SetMotorSpeeds(0.4f,0.7f);Invoke(nameof(StopHaptic),0.05f);audioSource.PlayOneShot(gunshotClip);cameraShake.Shake(0.2f,0.04f);// 매 magnitude, duration}
매 결정 기준
상황
Approach
Competitive FPS (skill expression)
Deterministic pattern (CSGO 식)
Casual / accessibility
Mostly random + small kick
Realism sim
Larger kick, slower recovery
Mobile FPS
Reduced kick — 매 small screen에서 kick 너무 크면 매 disorient
VR FPS
매 minimal camera kick (매 motion sickness)
기본값: 매 5-stack composite (camera + weapon + bloom + audio + haptic). 매 single-layer kick은 매 cheap-feel.
🔗 Graph
🤖 LLM 활용
언제: 매 weapon stat tuning 시 LLM에게 매 reference weapon (AK-47, M4A1, MP5) 의 매 standard recoil parameters 요청 — 매 starting baseline 제공.
언제 X: 매 final feel tuning — 매 pure subjective, 매 playtester가 매 직접 시행.
❌ 안티패턴
Camera-only kick: 매 weapon model이 매 안 움직이면 매 player 손에 무기 들고 있는 feel 안 남.
Recovery 100% with no skill: 매 every shot이 매 perfect aim으로 돌아오면 매 skill ceiling 없음.
Random-only spread: 매 player가 learn할 수 있는 게 없으면 매 mastery feel 없음.
No audio coupling: 매 visual kick 있는데 매 audio가 weak하면 매 disconnect.
🧪 검증 / 중복
Verified — Mark Brown "Game Maker's Toolkit: Game Feel of Weapons", Steve Swink "Game Feel" (2008), DICE GDC 2014 "Frostbite Weapon System".
신뢰도 A.
🕓 Changelog
날짜
변경
2026-05-08
Phase 1
2026-05-10
Manual cleanup — multi-layer composite recoil, deterministic vs random pattern, full Unity controller