game-profiling
Game Development Performance Profiling Skill
Use this skill when investigating frame hitches, low frame rate, memory growth, allocation spikes, rendering cost, or project-wide performance risks in Unity or Godot. Treat a profiler capture as evidence: preserve the workload and environment, separate measured facts from hypotheses, and recommend one change at a time so that a before/after capture can verify the result.
Start with a reproducible question
Before opening a tool, ask for (or record):
- engine and package versions, target platform/device, graphics API, build configuration, and commit/build identifier;
- target frame rate and frame budget (
1000 / target FPSms: 16.67 ms at 60 FPS, 33.33 ms at 30 FPS); - exact scene, player input, camera, quality settings, resolution, VSync/frame cap, and a short step-by-step reproduction;
- whether the symptom is a sustained low rate, an intermittent hitch, a memory/GC increase, or a visual/rendering issue.
Prefer a Development/Profiling player on the target hardware over the Editor. Keep the same quality, resolution, refresh rate, renderer, scripting backend, and asset data as the reported scenario. Warm up loading and shaders, then record a short steady-state window and repeat the scenario several times. Clarify whether a reported hitch duration is the total frame time, time over budget, or an added stall. For sustained workloads, compare like-for-like frame-time distributions. For event-triggered hitches, define a fixed event window and report the trigger frame or maximum frame per trial, the individual values, median, and sample count; report a tail percentile only when enough repeated events make it meaningful.
If a project-specific MCP server is available, use it to gather engine context before manual inspection: use the Unity MCP if available for Unity project/editor state, assets, scenes, and profiler setup; use the Godot MCP if available for Godot project/editor state, scenes, scripts, and profiler setup. Treat MCP output as context for choosing and configuring the profiler, not as a replacement for the runtime captures below.