You kind of did quote the whole sentence there including the "monsters organizing into groups to take on bigger monsters"
Ah yea, my answer was meant only for first part, which was for monsters leveling up and improving their fighting powers as time goes on.
Its not that monster organizing is hard to do, its that it requires more time to create such interactions against something.
And as I see it, nobody cares about such details. Not worth spending ~6 hours to script 1 encounter, where monsters team up to take on bigger monster like professionals.
Its already quite interesting enough to just drop x amount of monsters into 1 zone and give them all 1 enemy.
That random mess already is funny to look at for some time.
(no clue can monsters even attack each other in default TFS, but seen it on several servers so I guess its default)
The sheer scale of 10k creatures "thinking" all the time would be too much for a single node...
Why would you need to activate that many monsters?
If the monster AI is mostly written on C++ (into source) then I don't think that would be problem anyway.
But there are so many ways to reduce the think amount anyway.
If no players around, algorithms can continue which calculate the passed time and what groups of monster could have done and where they are now.
There is no need to access monsters every second and give them commands if there is nobody to see them. If player gets online or gets nearby to their passing zones then the area and monsters will get updated and activated.
If I would have more players in my server, I could put that theory in practice as I already have entire map divided into areas which are also linked to monsters.
All I would need to do is add a algorithm and parameters to monsters what are they capable of doing and which are their goals on the map to go to.
+ A function to trigger update when player walks near or in the area