Charles445 / AIReducer

Mod to reduce or optimize AI for performance in Minecraft
MIT License
3 stars 1 forks source link

[1.12.2] AIReducer not reducing AI (probably mod conflict) #1

Open Krutoy242 opened 12 months ago

Krutoy242 commented 12 months ago

There is no difference in running modpack with or without AIReducer.

I expect that AIReducer not working at all.

Maybe there some conflicts with other mods? Some kind of mixing incompatibility or so? How could I check that?

debug.log

Charles445 commented 12 months ago

You could turn "Debug Mode" on in the config and see if it's working at all, it should spit out some messages like "Wrapped task with priority" and "Applying (mobname) delay" into the debug log

Honestly AIReducer is pretty terrible, it mostly comes in handy for when myrmex get out of control The problem with it is that it only really kicks in if mobs can't pathfind very easily and are constantly looking for new tasks, i.e. mobs in pens, for everything else it's as good as useless

You might want to look into adding the mod rltweaker2, the default config of that should boost server performance significantly (due to the presence of Advanced Rocketry and RecurrentComplex in the pack) It might be a chore to configure if it breaks something, but it's well worth it in the long run

Krutoy242 commented 11 months ago

Thank you, I will take a look at rltweaker and debug mode.

Krutoy242 commented 11 months ago

I enabled debug mode and I can see this lines related to AIReducer:

[Client thread/TRACE] [FML]: Sending event FMLConstructionEvent to mod aireducer
[Client thread/TRACE] [FML]: Mod aireducer is using network checker : No network checking performed
[Client thread/TRACE] [FML]: Testing mod aireducer to verify it accepts its own version in a remote connection
[Client thread/TRACE] [FML]: The mod aireducer accepts its own version (0.3.0)
[Client thread/DEBUG] [FML]: Attempting to inject @SidedProxy classes into aireducer
[Client thread/DEBUG] [FML]: Attempting to inject @EventBusSubscriber classes into the eventbus for aireducer
[Client thread/DEBUG] [FML]: Registering @EventBusSubscriber for com.charles445.aireducer.config.ModConfig$EventHandler for mod aireducer
[Client thread/DEBUG] [FML]: Injected @EventBusSubscriber class com.charles445.aireducer.config.ModConfig$EventHandler
[Client thread/DEBUG] [FML]: Attempting to inject @Config classes into aireducer for type INSTANCE
[Client thread/TRACE] [FML]: Sent event FMLConstructionEvent to mod aireducer

and

[Client thread/TRACE] [FML]: Sending event FMLPostInitializationEvent to mod aireducer
[Client thread/DEBUG] [AIReducer]: minecraft:elder_guardian
[Client thread/DEBUG] [AIReducer]: minecraft:wither_skeleton
[Client thread/DEBUG] [AIReducer]: minecraft:stray
[Client thread/DEBUG] [AIReducer]: minecraft:husk
[Client thread/DEBUG] [AIReducer]: minecraft:zombie_villager
[...] all mobs
[Client thread/DEBUG] [AIReducer]: warptheory:doppelganger
[Client thread/TRACE] [FML]: Sent event FMLPostInitializationEvent to mod aireducer

Where should I see useful information about mod working? How errors or malfunction could looks like?

Log with debug mode enabled debug.log

Charles445 commented 11 months ago

it looks like debug mode got turned on successfully, it's printing out all the mobs it can find on startup. I don't see what we're looking for, though... It could be that nobody was around the taskDelay mobs at the time, but it's unlikely.

Here, try spawning in these three mobs with the debug mode on sheep, rabbit, myrmex worker

See if that makes anything happen in the debug log

Krutoy242 commented 11 months ago

I spawned this three mobs and debug.log added new lines:

Replacing 1 tasks of net.minecraft.entity.ai.EntityAIAvoidEntity
Replacing 1 tasks of net.minecraft.entity.ai.EntityAIAvoidEntity
Replacing 1 tasks of net.minecraft.entity.ai.EntityAIAvoidEntity
Replacing 1 tasks of net.minecraft.entity.ai.EntityAIAvoidEntity
Replacing 1 tasks of net.minecraft.entity.ai.EntityAIAvoidEntity
Replacing 1 tasks of net.minecraft.entity.ai.EntityAIAvoidEntity
Replacing 1 tasks of net.minecraft.entity.ai.EntityAIAvoidEntity
Replacing 1 tasks of net.minecraft.entity.ai.EntityAIAvoidEntity
Replacing 1 tasks of net.minecraft.entity.ai.EntityAIAvoidEntity
Replacing 1 tasks of net.minecraft.entity.ai.EntityAIAvoidEntity
Replacing 1 tasks of net.minecraft.entity.ai.EntityAIAvoidEntity
Applying betteranimalsplus:eel_saltwater delay: 40
Replacing 1 tasks of net.minecraft.entity.ai.EntityAIAvoidEntity
Replacing 1 tasks of net.minecraft.entity.ai.EntityAIAvoidEntity
Replacing 1 tasks of net.minecraft.entity.ai.EntityAIAvoidEntity
Applying betteranimalsplus:bobbit_worm delay: 40
Applying betteranimalsplus:bobbit_worm delay: 40
Applying betteranimalsplus:bobbit_worm delay: 40
Applying minecraft:sheep delay: 6
Applying minecraft:rabbit delay: 6
Removing net.minecraft.entity.passive.EntityRabbit$AIAvoidEntity from net.minecraft.entity.passive.EntityRabbit
Removing net.minecraft.entity.passive.EntityRabbit$AIAvoidEntity from net.minecraft.entity.passive.EntityRabbit
Removing net.minecraft.entity.passive.EntityRabbit$AIAvoidEntity from net.minecraft.entity.passive.EntityRabbit
Applying iceandfire:myrmex_worker delay: 10
Applying myrmex follow range: 50.0
Current Tasks Count: 13
Wrapped task with priority 6: com.github.alexthe666.iceandfire.entity.ai.MyrmexAIForage com.charles445.aireducer.ai.myrmex.WrappedTaskMyrmexAIForage
Wrapped task with priority 6: com.github.alexthe666.iceandfire.entity.ai.MyrmexAIForage com.charles445.aireducer.ai.myrmex.WrappedTaskMyrmexAIForage
Replacing 1 tasks of com.github.alexthe666.iceandfire.entity.ai.MyrmexAIForage
Wrapped task with priority 4: com.github.alexthe666.iceandfire.entity.ai.MyrmexAILeaveHive com.charles445.aireducer.ai.myrmex.WrappedTaskMyrmexAILeaveHive
Wrapped task with priority 4: com.github.alexthe666.iceandfire.entity.ai.MyrmexAILeaveHive com.charles445.aireducer.ai.myrmex.WrappedTaskMyrmexAILeaveHive
Replacing 1 tasks of com.github.alexthe666.iceandfire.entity.ai.MyrmexAILeaveHive
Wrapped task with priority 7: com.github.alexthe666.iceandfire.entity.ai.MyrmexAIMoveThroughHive com.charles445.aireducer.ai.myrmex.WrappedTaskMyrmexAIMoveThroughHive
Wrapped task with priority 7: com.github.alexthe666.iceandfire.entity.ai.MyrmexAIMoveThroughHive com.charles445.aireducer.ai.myrmex.WrappedTaskMyrmexAIMoveThroughHive
Replacing 1 tasks of com.github.alexthe666.iceandfire.entity.ai.MyrmexAIMoveThroughHive
Wrapped task with priority 0: net.minecraft.entity.ai.EntityAISwimming com.charles445.aireducer.ai.myrmex.WrappedProximityTaskMyrmex
Wrapped task with priority 0: net.minecraft.entity.ai.EntityAISwimming com.charles445.aireducer.ai.myrmex.WrappedProximityTaskMyrmex
Wrapped task with priority 0: com.github.alexthe666.iceandfire.entity.ai.MyrmexAITradePlayer com.charles445.aireducer.ai.myrmex.WrappedProximityTaskMyrmex
Wrapped task with priority 0: com.github.alexthe666.iceandfire.entity.ai.MyrmexAITradePlayer com.charles445.aireducer.ai.myrmex.WrappedProximityTaskMyrmex
Wrapped task with priority 0: com.github.alexthe666.iceandfire.entity.ai.MyrmexAILookAtTradePlayer com.charles445.aireducer.ai.myrmex.WrappedProximityTaskMyrmex
Wrapped task with priority 0: com.github.alexthe666.iceandfire.entity.ai.MyrmexAILookAtTradePlayer com.charles445.aireducer.ai.myrmex.WrappedProximityTaskMyrmex
Wrapped task with priority 1: net.minecraft.entity.ai.EntityAIAttackMelee com.charles445.aireducer.ai.myrmex.WrappedProximityTaskMyrmex
Wrapped task with priority 1: net.minecraft.entity.ai.EntityAIAttackMelee com.charles445.aireducer.ai.myrmex.WrappedProximityTaskMyrmex
Wrapped task with priority 2: com.github.alexthe666.iceandfire.entity.ai.MyrmexAIStoreBabies com.charles445.aireducer.ai.myrmex.WrappedProximityTaskMyrmex
Wrapped task with priority 2: com.github.alexthe666.iceandfire.entity.ai.MyrmexAIStoreBabies com.charles445.aireducer.ai.myrmex.WrappedProximityTaskMyrmex
Wrapped task with priority 3: com.github.alexthe666.iceandfire.entity.ai.MyrmexAIStoreItems com.charles445.aireducer.ai.myrmex.WrappedProximityTaskMyrmex
Wrapped task with priority 3: com.github.alexthe666.iceandfire.entity.ai.MyrmexAIStoreItems com.charles445.aireducer.ai.myrmex.WrappedProximityTaskMyrmex
Wrapped task with priority 4: com.github.alexthe666.iceandfire.entity.ai.MyrmexAIReEnterHive com.charles445.aireducer.ai.myrmex.WrappedProximityTaskMyrmex
Wrapped task with priority 4: com.github.alexthe666.iceandfire.entity.ai.MyrmexAIReEnterHive com.charles445.aireducer.ai.myrmex.WrappedProximityTaskMyrmex
Wrapped task with priority 4: com.charles445.aireducer.ai.myrmex.WrappedTaskMyrmexAILeaveHive com.charles445.aireducer.ai.myrmex.WrappedProximityTaskMyrmex
Wrapped task with priority 4: com.charles445.aireducer.ai.myrmex.WrappedTaskMyrmexAILeaveHive com.charles445.aireducer.ai.myrmex.WrappedProximityTaskMyrmex
Wrapped task with priority 6: com.charles445.aireducer.ai.myrmex.WrappedTaskMyrmexAIForage com.charles445.aireducer.ai.myrmex.WrappedProximityTaskMyrmex
Wrapped task with priority 6: com.charles445.aireducer.ai.myrmex.WrappedTaskMyrmexAIForage com.charles445.aireducer.ai.myrmex.WrappedProximityTaskMyrmex
Wrapped task with priority 7: com.charles445.aireducer.ai.myrmex.WrappedTaskMyrmexAIMoveThroughHive com.charles445.aireducer.ai.myrmex.WrappedProximityTaskMyrmex
Wrapped task with priority 7: com.charles445.aireducer.ai.myrmex.WrappedTaskMyrmexAIMoveThroughHive com.charles445.aireducer.ai.myrmex.WrappedProximityTaskMyrmex
Wrapped task with priority 8: com.github.alexthe666.iceandfire.entity.ai.MyrmexAIWander com.charles445.aireducer.ai.myrmex.WrappedProximityTaskMyrmex
Wrapped task with priority 8: com.github.alexthe666.iceandfire.entity.ai.MyrmexAIWander com.charles445.aireducer.ai.myrmex.WrappedProximityTaskMyrmex
Wrapped task with priority 9: net.minecraft.entity.ai.EntityAIWatchClosest com.charles445.aireducer.ai.myrmex.WrappedProximityTaskMyrmex
Wrapped task with priority 9: net.minecraft.entity.ai.EntityAIWatchClosest com.charles445.aireducer.ai.myrmex.WrappedProximityTaskMyrmex
Wrapped task with priority 10: net.minecraft.entity.ai.EntityAILookIdle com.charles445.aireducer.ai.myrmex.WrappedProximityTaskMyrmex
Wrapped task with priority 10: net.minecraft.entity.ai.EntityAILookIdle com.charles445.aireducer.ai.myrmex.WrappedProximityTaskMyrmex
Replacing 13 tasks of any
Wrapped task with priority 1: com.github.alexthe666.iceandfire.entity.ai.MyrmexAIDefendHive com.charles445.aireducer.ai.myrmex.WrappedProximityTaskMyrmex
Wrapped task with priority 1: com.github.alexthe666.iceandfire.entity.ai.MyrmexAIDefendHive com.charles445.aireducer.ai.myrmex.WrappedProximityTaskMyrmex
Wrapped task with priority 2: com.github.alexthe666.iceandfire.entity.ai.MyrmexAIForageForItems com.charles445.aireducer.ai.myrmex.WrappedProximityTaskMyrmex
Wrapped task with priority 2: com.github.alexthe666.iceandfire.entity.ai.MyrmexAIForageForItems com.charles445.aireducer.ai.myrmex.WrappedProximityTaskMyrmex
Wrapped task with priority 3: com.github.alexthe666.iceandfire.entity.ai.MyrmexAIPickupBabies com.charles445.aireducer.ai.myrmex.WrappedProximityTaskMyrmex
Wrapped task with priority 3: com.github.alexthe666.iceandfire.entity.ai.MyrmexAIPickupBabies com.charles445.aireducer.ai.myrmex.WrappedProximityTaskMyrmex
Wrapped task with priority 4: net.minecraft.entity.ai.EntityAIHurtByTarget com.charles445.aireducer.ai.myrmex.WrappedProximityTaskMyrmex
Wrapped task with priority 4: net.minecraft.entity.ai.EntityAIHurtByTarget com.charles445.aireducer.ai.myrmex.WrappedProximityTaskMyrmex
Wrapped task with priority 4: com.github.alexthe666.iceandfire.entity.MyrmexAIAttackPlayers com.charles445.aireducer.ai.myrmex.WrappedProximityTaskMyrmex
Wrapped task with priority 4: com.github.alexthe666.iceandfire.entity.MyrmexAIAttackPlayers com.charles445.aireducer.ai.myrmex.WrappedProximityTaskMyrmex
Wrapped task with priority 5: net.minecraft.entity.ai.EntityAINearestAttackableTarget com.charles445.aireducer.ai.myrmex.WrappedProximityTaskMyrmex
Wrapped task with priority 5: net.minecraft.entity.ai.EntityAINearestAttackableTarget com.charles445.aireducer.ai.myrmex.WrappedProximityTaskMyrmex
Replacing 6 tasks of any
Final Tasks Count: 13
Charles445 commented 11 months ago

Looks like everything's 'working'. I'm surprised the rabbit stuff didn't do anything noticeable in LagGoggles... The myrmex stuff is going to help a lot with performance though, they're nothing but trouble otherwise.

I think the best thing to do here is to just leave the mod in, but also to go through taskDelay json and make sure none of those are set above 10 (it's not doing a whole lot, but if it's too high it'll make the mobs lethargic)

I think you'll get the best results by adding rltweaker or rltweaker2, my current guess is that the mob's performance is high because of their collisions (which Advanced Rocketry messes with).

You might want to get Spark or Spark Unforged as well for profiling, their reports are harder to understand than LagGoggles but they are very in depth and very useful for modders.

Krutoy242 commented 11 months ago

Ok, i will keep the mod then.

Spark

I used it before and see no differences too. Also, since my modpack have many optimization mods, some function calls so spread i cant understand how to compute them 😅