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|| #1886 ||Big||Not started|| ||Long/Tile Pathfinder Rewrite||#1756||Big||Stalled|| ||Short/Vertex Pathfinder Rewrite||#1942||Big||Not started|| ||Memory allocation reduction|| #1995 ||Big||Work in progress|| ||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] from [https://developer.mozilla.org/en-US/docs/SpiderMonkey/1.8.5 1.8.5] to [https://developer.mozilla.org/en-US/docs/SpiderMonkey/24 24]+||#1886 [http://www.wildfiregames.com/forum/index.php?showtopic=17289 forum thread]||Small or None||Work in progress|| ||GUI code improvement||#885||Medium||Stalled|| ||CCmpRangeManager optimization||#1707||Medium||Work in progress|| ||ComponentManager optimization||#1860||Medium||Work in progress|| ||ModelRenderer.cpp optimization||#1859||Medium||Work in progress|| ||Implement caching of terrain normals||#2039||Medium||Work in progress|| ||UnitAI/UnitMotion repathing improvement||#1200||Medium||Not started|| ||Sim interpolation optimization (game and editor)||r13500||Medium||Landed in alpha13, reverted in alpha14|| ||Non behavior changing optimizations||#1923 [http://www.wildfiregames.com/forum/index.php?showtopic=17310 forum thread]||Small||Work in progress|| ||Other Kuranes patches||#2022 #2026||?||Work in progress|| ||Better terrain normal calculation||#1987||Small||Work in progress|| ||Save GUI Sprites and Images in vectors / maps as pointers||#1984||Small||Work in progress|| ||Optimize Move() in CcmpUnitMotion||#2094||Small||Work in progress|| ||Other RedFox Patches||#2007 #2020 #2027 #2029||?||Work in progress|| ||Implement a Quadtree/Octree||#2016 [http://www.wildfiregames.com/forum/index.php?showtopic=16991 forum thread]||?||Work in progress|| ||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 =||= Status =|| ||GetPercentMapExplored optimization||#2012||Medium||Landed in alpha14|| ||Disable distance-sorting for most transparent objects||r13753||Medium||Landed in alpha14|| ||VBO support for minimap entity rendering||r13454||Small||Landed in alpha14|| ||Water improvements||r13374 r13555 r13720||Small||Landed in alpha14|| ||JS GUI code optimization||#1878||Small||Landed in alpha14|| ||AI API v3 and Aegis AI||[http://www.wildfiregames.com/forum/index.php?showtopic=17144 forum thread]||Medium||Landed in alpha13|| ||GetInterpolatedTransform math optimization||#1854||Small||Landed in alpha13|| }}} == Other related resources == * [http://www.wildfiregames.com/forum/index.php?showtopic=17274 Forum thread: (DISCUSS) Performance Improvements] * [[CodeAndMemoryPerformance]] * [[CodeQuality]] * [[Coding_Conventions]] * [[EngineProfiling]]