Version 32 (modified by fabio, 10 years ago) ( diff )

update

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 Performance Optimizations forum thread.

Ongoing improvements

Feature Relevant link(s) Performance impact Status
Rewrite the renderer to require OpenGL 2.1 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
Assorted "megapatch" patches git branch Medium Work in progress
Incremental update of pathfinder's passability grid #930 Medium Stalled, to do with new pathfinder
Upgrade SpiderMonkey from 1.8.5 to 24+ #1886 forum thread Small or None Work in progress
GUI code improvement #885 Medium Stalled
ComponentManager optimization #1860 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 forum thread Small Work in progress
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
Save GUI Sprites and Images in vectors / maps as pointers #1984 Small Work in progress
Implement a Quadtree/Octree forum thread 1 forum thread 2 ? Work in progress
Rewrite the AI base system in C++ 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

Feature Relevant link(s) Performance impact Appeared in
Improve UnitAI range query performance #2156 Medium 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 forum thread Medium alpha13
GetInterpolatedTransform math optimization #1854 Small alpha13

Other related resources

Note: See TracWiki for help on using the wiki.