Quick answer: Frame drops that only happen during combat are a situational bottleneck caused by combat's extra load: lots of entities, particle effects, physics interactions, and AI all active at once, spiking the per-frame work beyond budget. The fix is to profile a heavy combat scene, find which of these dominates the cost, and optimize it, cap particle/effect counts, simplify physics or AI under load, or reduce entity processing.
When a game runs smoothly until combat starts and then drops frames, it's a situational performance problem, the game is fine at baseline but combat pushes it over budget. This is actually good news for diagnosis: the drop is tied to a specific, reproducible situation (combat), so you know exactly when to profile and what's different about those moments.
Why Combat Drops Frames
Combat typically does much more per-frame work than calm gameplay, all at once. The usual culprits: many entities active simultaneously (enemies, projectiles, summons), each needing updates, AI, and rendering; particle and visual effects (explosions, hits, spells) that can be very expensive, especially many at once; physics interactions spiking as things collide and move; and AI computation as multiple enemies think and act. Any of these, or their combination, can spike the frame's workload above budget specifically during combat, causing the drop.
Because the drop is situational (combat-only), the cause is whatever combat adds that calm play doesn't. The frame is over budget only when that extra load is present, so identifying which part of the combat load dominates is the key.
How to Diagnose It
Profile during combat, not calm play, since that's when the drop happens. Capture a frame in a heavy combat scene and see what's consuming the time: is it particle/effect rendering, entity updates, physics, or AI? The profiler shows the dominant cost during the spike, which is your target. Test the worst case (the most chaotic combat, the most enemies/effects) since that's where the drop is worst.
In the field, frame drops that correlate with combat-heavy moments confirm the situational pattern across players' hardware (and may be worse on lower-end machines that have less headroom for the combat spike). Bugnet's performance monitoring surfaces where frame drops occur and on what hardware, so combat-correlated drops show up, confirming it's a real player problem and where, complementing your local combat profiling.
How to Fix It
Optimize whatever the combat profile showed as dominant. For particles/effects (a very common combat cost), cap the number of simultaneous particles/effects, use cheaper effects, and budget VFX so a chaotic moment can't spawn unlimited expensive particles. For entity load, optimize per-entity processing, limit simultaneous active entities, or use level-of-detail (cheaper updates for distant/less-important entities). For physics, simplify or limit physics under heavy load. For AI, reduce AI cost under load (stagger AI updates across frames, simplify behavior when many are active).
A key technique is budgeting the combat load, cap the things that scale with combat intensity (particles, simultaneous entities, physics interactions) so the worst-case combat can't blow the frame budget, ensuring even maximal combat stays within performance limits. After optimizing, verify the worst-case combat scene holds frame rate, and confirm via field data that combat drops stop, especially on lower-end hardware. Since combat is often the most important, most intense moment, keeping it smooth matters disproportionately for how the game feels.
Combat frame drops are a situational spike from everything happening at once, entities, particles, physics, AI. Profile a heavy combat scene, find the dominant cost, and budget it.