Optimizing for level design.

Optimizing for level design.

Optimizing for level design.

Optimization is the process of refining and improving your levels technical performance. This could mean anything from

  1. increasing FPS to decreasing load times.
  2. Planning and iteration are keys to professional level design
  3. Polishing the process of making minor adjustments to improve the core experience
  4. Good playtesting helps you identify weakness and problems you can’t see
  5. Optimization makes sure your level runs smoothly and packs as much awesome content as possible.

Performance Targets:

  1. Arbitrary goals set by the project common performance measures
    1. Frames per second
    2. Max load time
    3. Max memory usage
    4. Size on disc
  2. Common areas for optimization
    1. AI, running AI can be serious drain on CPU performance
    2. FX, particle emitter can quickly bog the FPS
    3. Script Execution, Scripted gameplay can eat CPU cycles
    4. Memory Usage, Assets count VS memory footprints
    5. Streaming & Culling, How much do you have loaded and drawing?

 

Improving AI Performance

  1. Use fewer NPC’s, usually the single biggest driver of AI load is the number of NPCs
  2. Use Simpler NPCs Using NPCs with less complex Ai can improve overall performance.

Improving FX Performance

  1. Work with Art, talk to tech, level and FX artist about the performance issues
  2. Consolidate FX, replace small fx used together to create a larger effect with single large FX
  3. LoD & Draw distance, FX should have a good LoDs and draw distance to save performance
    1. LoD, Level Of Detail

Symptoms of poor script performance

  1. Unreliable Execution
  2. Input lag
  3. Poor AI performance in scripted sequences
  4. Overall performance degradation

 

Use Count VS Memory Footprint

  1. Every model that appears in the level must be loaded into memory
  2. Additional appearances of loaded models are cheap
  3. Profiling tools can tell you how many times a model appears and how much memory it uses
  4. Replace high memory cost models that only appear a few times if you can.

Other memory Optimization

  1. Level streaming reduces the overall memory cost of the level by breaking into smaller chunks
  2. Sight lines and LoD reduces the GPU memory load by limiting the visibility and fidelity of distant objects
  3. Work with programmers, whether you can’t figure out what is causing a performance problem, or how to solve a problem you’ve identified, programmers can help you better understand the tools and techniques for optimizing your level

 

 

 

 

 

 

Links

https://learn.unity.com/tutorial/polishing-the-player-experience?courseId=5d076445edbc2a001f620730&projectId=5d07d209edbc2a001ebf21ef#5d07d1c9edbc2a001f622df9

 

https://docs.unity3d.com/Manual/LevelOfDetail.html

 

 

Back to blog