Game Developer
Performance and debugging questions
85 questions on Performance and debugging for game developers, easiest first.
Easy 13
- Spawning many bulletseasy
- GetComponent every frameeasy
- Health ratio is always zeroeasy
- Why games pool objectseasy
- Seeing why AI behaves oddlyeasy
- Many sprites, many draw callseasy
- Batching rocks that never moveeasy
- Normalising a zero vectoreasy
- Frame budget at 60 FPSeasy
- What one draw call iseasy
- Why meshes use index bufferseasy
- Finding why a mesh is invisibleeasy
- Drawing a full-screen passeasy
Medium 34
- Too many draw callsmedium
- Garbage in Updatemedium
- UObject pointer gets destroyedmedium
- Error after enemy is destroyedmedium
- Memory keeps growing with Addressablesmedium
- Thousands of detailed treesmedium
- Drawing rooms behind wallsmedium
- Shader build time explodedmedium
- Many identical rocksmedium
- Is the game CPU or GPU boundmedium
- Raycast ignores the Ground layermedium
- Textures use too much memory on mobilemedium
- Timer text slows the whole HUDmedium
- Rotation reads back as 350medium
- Each enemy checks every other unitmedium
- Checking an object's tagmedium
- Finding the player every framemedium
- Hitches when firing a minigunmedium
- Every skin loads at startupmedium
- Finding garbage in the Profilermedium
- Small Blueprint loads the whole bossmedium
- Explosion query creates garbagemedium
- Deep Profile timings look wrongmedium
- Memory for a 2048 texturemedium
- What 4x MSAA multipliesmedium
- Cost of static batchingmedium
- Different colours per instancemedium
- Open world texture memorymedium
- What temporal upscalers domedium
- Holding frame rate in busy scenesmedium
- Load and store actions on mobilemedium
- Why command buffers help threadingmedium
- Branches that cost both waysmedium
- Measuring one pass on the GPUmedium
Hard 38
- GPU-bound on mobile with particleshard
- Why ECS can be fasterhard
- Running out of memory in a large levelhard
- Job safety system errorhard
- Thousands of tiny temporary allocationshard
- Main menu loads the whole gamehard
- Alpha-tested foliage on mobilehard
- Stutter the first time an effect appearshard
- Angle between vectors is NaNhard
- Two hundred animated charactershard
- Checking collisions among 5,000 objectshard
- Why ECS iteration is fasthard
- Clustered objects in a spatial structurehard
- Many short-lived allocations per framehard
- Rendering while the simulation updateshard
- Rollback is too slowhard
- Updating 100,000 particles fasterhard
- Mesh memory is twice what you expecthard
- Memory for a 2K RGBA32 texturehard
- Smoke effects drop FPS on phoneshard
- Memory of a 4K render texturehard
- Frame budget at 90 Hzhard
- Thousands of actors checking every Tickhard
- Hitch when equipping a weaponhard
- Same texture in two bundleshard
- Gfx.WaitForPresent in the Profilerhard
- Static batching uses too much memoryhard
- Phone gets slower after 10 minuteshard
- Fill rate for heavy overdrawhard
- Hundreds of small lights in forwardhard
- Size of a G-bufferhard
- Discard makes opaque slowerhard
- Is the frame GPU-boundhard
- Virtualised geometry like Nanitehard
- Frame time spikes on readbackhard
- Benefit of bindless textureshard
- Dense meshes shade slowlyhard
- Vertex shader runs too oftenhard