Atavisms Quadtree is a very advanced solution.
First, it is taking geometry size with 1mln x 1mln meters, and checking if the number of objects within that quad is higher than the parameter atavism.quad_tree_node_max_objects value. If the value is higher than This quad will be divided and each smaller quad chunk will be checked separately until one of the two conditions will be met
- The maximum depth of such division will be reached (parameter responsible for this value is atavism.quad_tree_max_depth and it’s set by default to 20)
- Number of entities within the quad chunk will be lower than the atavism.quad_tree_node_max_objects parameter (default value of this parameter is 30)
These parameters can be set per server basis in the atavism_server/bin/world.properties file.
The best part is that these chunks can also be rectangles not only perfect squares, so we can end up with chunks with sizes 2×1 meters.
When the map/instance will be divided into chunks, the main role will play one additional parameter: World.perceiverRadius which is responsible for loading all quad chunks within that range, you can set this value in the atavism_server/bin/wmgr_local1.py file, and by default value of this parameter is set to 100 meters.