Version 26 (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.1forum threadBigStalled
Threading to use more than one CPU core #1886 BigNot started
Long/Tile Pathfinder Rewrite#1756BigStalled
Short/Vertex Pathfinder Rewrite#1942BigNot started
Assorted "megapatch" patches git branch MediumWork in progress
Incremental update of pathfinder's passability grid#930MediumStalled, to do with new pathfinder
Upgrade SpiderMonkey from 1.8.5 to 24+#1886 forum threadSmall or NoneWork in progress
GUI code improvement#885MediumStalled
CCmpRangeManager optimization#1707MediumWork in progress
ComponentManager optimization#1860MediumWork in progress
Implement caching of terrain normals#2039MediumWork in progress
UnitAI/UnitMotion repathing improvement#1200MediumNot started
Sim interpolation optimization (game and editor)r13500MediumLanded in alpha13, reverted in alpha14
Non behavior changing optimizations#1923 forum threadSmallWork in progress
Other Kuranes patches#2022 #2026?Work in progress
Optimization with many selected units#2179SmallWork in progress
Optimisation of Fixed Point Trigonometic Approximations#2109SmallWork in progress
Save GUI Sprites and Images in vectors / maps as pointers#1984SmallWork in progress
Implement a Quadtree/Octreeforum thread 1 forum thread 2?Work in progress
Rewrite the AI base system in C++forum thread?Not started
Benchmark mode#837n/aNot started
Heap usage profiling#187n/aNot started
Graphic settings system#475n/aNot started
Implement profiling for any thread#807n/aNot started

Completed improvements

Feature Relevant link(s) Performance impact Appeared in
Renderer optimizationsr13902 r13903 r13904 r13906 r13911Mediumalpha15
Optimize fixed multiplies on Windowsr13873Mediumalpha15
Optimize Move() in CcmpUnitMotion#2094Smallalpha15
Text rendering optimizationsr14017 r14018 r14019 r14020Smallalpha15
Avoid slightly-expensive QueryInterface?() callsr13825Smallalpha15
Improve game setup GUI performancer13828Smallalpha15
GetPercentMapExplored optimization#2012Mediumalpha14
Disable distance-sorting for most transparent objectsr13753Mediumalpha14
VBO support for minimap entity renderingr13454Smallalpha14
Water improvementsr13374 r13555 r13720Smallalpha14
JS GUI code optimization#1878Smallalpha14
AI API v3 and Aegis AIforum threadMediumalpha13
GetInterpolatedTransform math optimization#1854Smallalpha13

Other related resources

Note: See TracWiki for help on using the wiki.