perf-cut

fps profiler pooling batching budget
by @iberry420gaming
Find and fix game performance methodically: profile first, frame-time budget, CPU-vs-GPU bottleneck, then pooling / draw-call batching / allocation control / asset budgets. Use when FPS drops, stutter, lag, profiler, frame budget, draw calls, GC spikes, object pooling, or the game runs slow. Gaming only, not a Godot tutor. Not tick-mass (physics feel).
SKILL PACKAGE

Directory layout for Grok — SKILL.md plus scripts, references, and assets. 6 file(s).

Select a file

Edit in place, then Save (full package security scan). Use fullscreen for a larger workspace.

SYNCED SUMMARY (from SKILL.md)
# Perf Cut

Guessing is how you ship a slower game. Profile. Name one bottleneck. Cut that. Measure again.

Inspired by gamedev-skills/awesome-gamedev-agent-skills performance-optimization (Apache-2.0). Original Grok remake. Engine-neutral. Complements tick-mass (integrator feel, not frame budget), pawn-mind (intent/path/steer — this skill only caps or staggers cost), juice-pass (hit pop on an action that already fires), seed-map, hud-stack, godot-teacher (engine profiler UI and node APIs). Gaming only. Not a Godot tutor.

Read `references/frame-rules.md` before you recommend a cut. Fill the three templates under `templates/`.

## When to use

- FPS drops, stutter, hitch, lag, or "the game runs slow"
- Need a frame-time budget (16.67 ms at 60 FPS, 33.33 ms at 30 FPS) and a CPU-vs-GPU call
- Profiler capture in hand, or they need a capture checklist before touching code
- Object pooling, draw-call batching, GC / allocation spikes, or asset budgets as the *fix after* the bottleneck is named
- A target platform (desktop 60, mobile 30/60) they are missing

## When NOT to use

- Physics jitter, tunneling, exploding stacks, floaty fall, FixedUpdate feel → use tick-mass
- Coyote / jump buffer / deadzone → use stick-map
- FSM / behavior tree / A* design (intent) → use pawn-mind (perf-cut may cap agent count or stagger ticks; it does not design the brain)
- Screen shake, hit-stop, juice → use juice-pass
- HUD layout / readability → use hud-stack
- Godot/Unity/Unreal profiler-window tours, node inspectors, copied GDScript/C# → use godot-teacher
- Web Core Web Vitals, SQL, or app-backend latency — not a game frame
- Aimbots, wallhacks, ESP, cheat overlays, malware, exploit kits

## Inputs

- Genre slice and platform (desktop / console / mobile) plus target FPS
- The scene that actually hurts (combat, a busy town, a particle-heavy skill) — not an empty menu
- Any profiler numbers they already have (frame ms, CPU vs GPU, draw calls, triangles, GC)
- Pain in their words: hitch, low FPS, spike on spawn, heat on mobile
- Engine name if they offered it (for *where to look*, not an API dump)

## Procedure

1. Read `references/frame-rules.md`. Refuse aimbots, wallhacks, ESP, cheats, malware, Godot/Unity API dumps, and copied GDScript/C#. Hand physics feel to tick-mass. Hand intent design to pawn-mind. Hand juice to juice-pass.
2. Fill `templates/profile-card.md`. Lock target FPS and the ms budget. Name the capture scene. Record CPU vs GPU, draw calls, allocations/GC, and the worst spike. If they have no capture, write the capture checklist and stop short of a code guess — or label every guess.
3. Name **one** bottleneck. Not five. Algorithmic "do less / do it later / do it cheaper" beats micro-tuning a hot line you have not measured.
4. Match the bottleneck to one lever on `templates/bottleneck.md`:
   - Spawn/despawn churn → pool, reset on checkout, never grow unbounded
   - Draw-call soup → batch (shared material/mesh, atlas, instance), cut unique shaders
   - GC hitch / per-frame new → stop allocating on the tick; move setup to init
   - Fat assets / overdraw → write budgets (tex, tris, particles, audio) and cut to them
5. One cut per pass. Write the expected before/after on the same card. Do not spray four unrelated "optimizations."
6. Fill `templates/verify-perf.md`. Same scene, same camera, same quality preset. Re-read FPS, frame ms, the bottleneck metric, and whether you created a new hitch. If it did not move, revert the guess and profile again.
7. Tiny original engine-neutral notes only if useful. No vendor API dumps. No copied GDScript or C#.
8. Deliver the three templates. One closing line: this is a measured frame-budget pass, not a physics-feel pass and not a Godot tutor.

## Output format

- Profile card (target FPS, ms budget, scene, CPU vs GPU, capture notes)
- Bottleneck card (one bottleneck, one lever, expected delta)
- Verify-perf checklist (same scene, before/after, revert rule)
- One line: measured perf pass; not tick-mass, not godot-teacher, not a cheat overlay

## Safety

- Follow `references/frame-rules.md` with no exceptions.
- Gaming design only. Engine-neutral notes. Not a Godot tutor.
- No cheat overlays, aimbots, wallhacks, ESP, malware, or exploit kits.
- No CSAM in mock content.
- No copied GDScript/C# from any source. Tiny original pseudocode only.

## Stop conditions

- Three templates delivered, or refused for cheats / godot-teacher API tours / physics feel (tick-mass) / AI brain design (pawn-mind) / juice (juice-pass) / HUD layout (hud-stack) / non-game latency
Version History
Comments (0)
No comments yet. Be the first!
Sign in to leave a comment.