performance-optimization · git:20260912.6a4e943 · 2026-09-12 · sha256 80e58f55c150f9ec
performance-optimization git:20260912.6a4e943A
Immutable. This exact content never changes and is served at /api/v1/blob/80e58f55c150f9ec.
--- name: performance-optimization description: Frame time is a design constraint. Ask 30-stable vs 60-stable vs unlocked-with-floor vs handheld-dock-dual. Profile before cutting art. Never fake speed or hitstop by scaling Engine.time. --- # Performance optimization Ask the column: | Column | Contract | |---|---| | 30-stable | 33.3ms, no stumble | | 60-stable | 16.6ms, logic at 60 | | unlocked-floor | present as fast as possible, logic fixed, floor 30 or 60 | | handheld-dock-dual | two published budgets, same cartridge | ## Rules 1. Logic step is fixed. Render may skip frames. Feel lives on the logic clock. 2. Budget the frame before the asset: CPU sim, GPU opaque, GPU transparent, UI, audio, GC. 3. Cut in this order: off-screen work, overdraw, shadow casters, particle lifetime, simultaneous AI, then mesh LOD. 4. Hitch is worse than a lower cap. A 60 that falls to 12 on a burst fails 60-stable. 5. Do not shrink hitstop, input windows, or vehicle accel to hide a miss. 6. Measure on the target device. See platform-targets. 7. Lock the scene, resolution, and backend before you quote a number. Report sim ms, submit count, and frame time as three lines. A cull that helps one scene is that scene only. 8. A lower internal resolution is a quality cost you name, not a free fps. ## Accept - A 5-minute slice on the target device holds the published cap - Combat, race boost, or boss VFX does not drop below the floor - A loading hitch is named and owned - A quoted speedup names the scene and the bucket