Currently 0 A.D. performance is lower than that of similar RTS games, especially when playing with many units on a map. This page collects some tasks and suggestions to improve performance of pyrogenesis, the engine used by 0 A.D.. To discuss other performance related ideas you can use the [http://www.wildfiregames.com/forum/index.php?showtopic=16991 Performance Optimizations forum thread]. == Ongoing improvements == {{{#!table style="background: LightGoldenrodYellow" ||= Feature =||= Relevant link(s) =||= Performance impact =||= Status =|| || Rewrite the renderer to require OpenGL 2.1 || [http://www.wildfiregames.com/forum/index.php?showtopic=16734 forum thread] || Big || Stalled || || Threading to use more than one CPU core || || Big || Not started || || Long/Tile Pathfinder Rewrite || #1756 || Big || Stalled || || Short/Vertex Pathfinder Rewrite || #1942 || Big || Not started || || Improvement/replacement for AI entitycollections || #2370 || Big || Work in progress || || Assorted "megapatch" patches || [http://git.wildfiregames.com/gitweb/?p=0ad.git;a=shortlog;h=refs/heads/projects/philip/megapatch-split git branch] || Medium || Stalled || || Incremental update of pathfinder's passability grid || #930 || Medium || Stalled, to do with new pathfinder || || Upgrade [https://developer.mozilla.org/en-US/docs/SpiderMonkey SpiderMonkey] to [https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey/31 v31] || [http://www.wildfiregames.com/forum/index.php?showtopic=17289 forum thread] || Small || Work in progress || || Use new ES6 keyed collections (e.g. Map, Set) || #2475 || Medium || Work in progress || || GUI code improvement || #885 || Medium || Stalled || || ComponentManager optimization || #1860 || Medium || Stalled || || Implement caching of terrain normals || #2039 || Medium || Stalled || || UnitAI/UnitMotion repathing improvement || #1200 || Medium || Not started || || Sim interpolation optimization (game and editor) || r13500 || Medium || Landed in alpha13, reverted in alpha14 || || Other Kuranes patches || #2022 #2026 || Small || Up for Review || || More optimization with many selected units || #2179 || Small || Work in progress || || Optimisation of Fixed Point Trigonometic Approximations || #2109 || Small || Work in progress || || Implement a Quadtree/Octree || [http://www.wildfiregames.com/forum/index.php?showtopic=17384 forum thread 1] [http://www.wildfiregames.com/forum/index.php?showtopic=16991 forum thread 2] || ? || Stalled || || Rewrite the AI base system in C++ || [http://www.wildfiregames.com/forum/index.php?showtopic=16991 forum thread] || ? || Not started || || Benchmark mode || #837 || n/a || Not started || || Heap usage profiling || #187 || n/a || Not started || || Graphic settings system || #475 || n/a || Not started || || Implement profiling for any thread || #807 || n/a || Not started || }}} == Completed improvements == {{{#!table style="background: LightGreen" ||= Feature =||= Relevant link(s) =||= Performance impact =||= Appeared in =|| || Improve GCC build flags on x86 || #2329 || Small || alpha17 || || Improve UnitAI range query performance || #2156 || Medium || alpha16 || || Save GUI Sprites and Images in vectors / maps as pointers || #1984 || Small || alpha16 || || Improve speed of territory computation || r14530 r14531 || Small || alpha16 || || Speed-up of the foam generation code || r14514 || Small || alpha16 || || Make entity selection faster || #2358 || Small || alpha16 || || Minor LOS optimization || r14463 || Small || alpha16 || || Renderer optimizations || r13902 r13903 r13904 r13906 r13911 || Medium || alpha15 || || Optimize fixed multiplies on Windows || r13873 || Medium || alpha15 || || CCmpRangeManager optimization || #1707 || Medium || alpha15 || || Optimization with many selected units || r14296 r14306 || Small || alpha15 || || Optimize Move() in CcmpUnitMotion || #2094 || Small || alpha15 || || Text rendering optimizations || r14017 r14018 r14019 r14020 || Small || alpha15 || || Avoid slightly-expensive QueryInterface?() calls || r13825 || Small || alpha15 || || Improve game setup GUI performance || r13828 || Small || alpha15 || || GetPercentMapExplored optimization || #2012 || Medium || alpha14 || || Disable distance-sorting for most transparent objects || r13753 || Medium || alpha14 || || VBO support for minimap entity rendering || r13454 || Small || alpha14 || || Water improvements || r13374 r13555 r13720 || Small || alpha14 || || JS GUI code optimization || #1878 || Small || alpha14 || || AI API v3 and Aegis AI || [http://www.wildfiregames.com/forum/index.php?showtopic=17144 forum thread] || Medium || alpha13 || || GetInterpolatedTransform math optimization || #1854 || Small || alpha13 || }}} == Other related resources == * [http://www.wildfiregames.com/forum/index.php?showtopic=17274 Forum thread: (DISCUSS) Performance Improvements] * [[CodeAndMemoryPerformance]] * [[CodeQuality]] * [[Coding_Conventions]] * [[EngineProfiling]]