Note: If you have performance issues not covered feel free to make a request
A simple mod to improve AIs, increase performance, and give more control over AIs. With the core goal focused on reducing CPU cost of large sums of AIs.
AI Improvements was born out of the need to improve server performance for large heavily modded servers. As any experienced server owner will know a server's CPU clock time is eaten away by mods all trying to fight over resources. Most server owners and developers will try to attack this problem by trimming mods. Rather than going after the mods installed I started to look at Minecraft itself. Focusing down on how it was designed to work and how it lent to performance problems.
I found that as a server's population grows so does the amount of entities and other resources. At first, I thought "lets reduce the spawn rate of mobs on the server" this lead to a complaint about mob farming. Even with testing, it didn't show a major solution to the problem. So rather than taking that approach, I decided to improve how the AI's function. This resulted in a lot of resource and insight into different areas. After many hours, I found my solution and created this mod.
I installed but didn't see a large gain as promised?
Newer versions of MC implement fixes for the AI. With the last few versions, the rotation fix was implemented in addition to other fixes. Thus, the impact of this mod is much lower than in older versions.
Can this be installed on the server only?
Yes, the mod is coded to function without it being client side
Can this be installed on the client only?
Yes, though it may not do much to improve fps.
Where is the config?
What will happen if I disable the EntityLookHelper replacement?
You're not going to see much of an improvement in the AI code. However, if you enabled the other disable configs it should be fine.
How does this mod work for fixing performance?
It depends on the feature and version of Minecraft. Most of the performance comes from caching heavily calculated values. This has the result of reducing CPU time at the cost of an ignorable amount of RAM. See feature list for exacts...
Config to disable AI Watch Closest Entity
By default the config is set to false and will not do anything. When changed to true it will remove an AI segment called EntityAIWatchClosest. This AI segment handles the coded AIs use to rotate their head towards a nearby entity.Visually this will cause a few odd issues. However, for the CPU this frees up a lot of usage caused by entities.
Config to disable AI look random, config is not enabled by default
By default the config is set to false and will not do anything. Setting the config to true will cause entities to no longer use the 'look idle' AI code. This can improve performance for servers will large populations. As almost every entity on the map will use this when not doing anything important. Visually this can cause the entities head to not rotate sometimes but mostly goes unnoticed.
Config to replace EntityLookHelper with a more efficient version, config is enabled by default
This is the main feature of the mod and can greatly improve CPU performance at a small cost to RAM. How this works is MC's look helper code is replaced with a custom version. The custom version stores some data that makes it faster to get the angle for a location. Threw some testing with VisualVM result have shown a 50% to 80% decrease in CPU usage by the AI code. For a server with 25 people on constantly this resulted in a gain from 5 to 7 tps.
- Multithreading for AI nav pathfinder
- Mob spawning restrictions
- Disable Visual AI code when not near players
- Reduce wondering distance
- Reduce wondering distance when not near players
- Reduce how often Mobs raytrace targets
- Config to control the amount of RAM atan2 cache uses
No need to ask for permission. However, any modpack containing the mod will need to follow BBM's modpack policy
It is also recommended when making modpacks to make this mod optional. As it is primarly designed for server side use and provides only a small boost to client side.
Join us on Esper.net IRC #BuiltBroken #BuiltBrokenModding