All right, lets get a bit technical shall we?
Conan Exiles has a very big world with everything running on one server. The world has 6000+ NPCs roaming the world, not counting player thralls and pets. Actually, probably even more by now.
The simple fact is that running NPC behavior on all of these NPCs all the time on such a big world is not something current hardware can handle with UE4. And it only gets worse when you add in players and their dynamic content, such as buildings, placeables, thralls and pets. The developers have however done a lot of trickery to counter this. And the performance players have today is leaps improved from the early days. They are also constantly working on improving this and have more optimization coming with one of the next patches.
The “static world” that [the author of the forum thread] is describing is part of a system they call the AI LOD (Level of Detail) system. Which turns down the amount of CPU resources an actor (Placeable, building or NPC) receives based on their proximity to a player. Outside of a certain range they go into a suspended mode where they are not given any CPU cycles, and basically go into a sleeping mode. The developers do this because there is, in most cases, no point in having the actor run at full speed without a player nearby. And they have “catch up” methods in place where they are needed to make sure they account for the suspended time.
Example: A crafting station.[edit | edit source]
The crafting station needs to tick and update the progress of whatever is being crafted at real time when a player is standing nearby, so that you can see the progress bar move if you are inspecting it, or see the fire in your furnace turn off the moment the crafting is done. If a player can not even see the crafting station, it can do this much slower or even not at all. When a player returns to the area and wakes it up, it needs to catch up on X amount of minutes of work. And when you inspect it, you will see the same result as if you had been standing there for those X minutes. (The reality is slightly different, they run a few ticks of crafting here and there even if the player is not around).
A note for admins[edit | edit source]
Please be careful with this and try at your own risk:
If an admin wants to have some “fun” and see what happens when nothing is allowed to be suspended, and all logic will run at full speed and all NPCs will start roaming around, you can attempt this command: ForceAILOD 0.
Could be a fun experiment for you to see what our optimizations have actually contributed on this front. You can turn it back on with ForceAILOD -1. It’s very possible that you will not be able to do so, so be prepared to restart your server. This shouldn’t influence anything on the server per se.
Summary[edit | edit source]
tldr; NPCs remaining fully awake when players aren’t nearby is not worth no one being able to play.