Several former Etilica players have commented about the lag on that world. That is my fault and I learned a great deal from it. Allow me to explain. In part II, I’ll list what I would have done differently if I were to work on that world again.
The buzzword on ETI is cruft. ETI was built by three generations of builders who overlapped very little or not at all. It had about 250 areas (small zones) and an immense number of placed NPCs when I started overhauling it in earnest; even in places where players rarely went. I think I counted 400 placed NPCs when I started cataloging them. ETI’s NPCs also had a heavy heartbeat script (which fires every six seconds on that platform) and heavy combat scripts; courtesy of me. I think in many respects, it catalogs a list of mistakes that can be made when building and running a server. There are many things that can be learned from examining the life and death of ETI, but here I will concentrate on my lag. When I took over as lead builder, I made two server killing mistakes:
I did not completely familiarize myself with the mod as much as I should have – This was ultimately fatal. There were big parts of the module – especially in the desert (about 2/3 of the world was in the desert) – that were so hard to get to that I only ever saw them in the toolset or via DM client teleport when testing. The very first thing that I should have done was to catalog all of the areas and familiarize myself with them; even the rarely visited ones. I quickly grew intimate with the high traffic portions of the mod, but not the low traffic areas. Had I done this, I would have been aware of the placed NPC count.
I did not stress test the server before making changes live – I brought in a couple of AI systems that I had worked on for my NWN version of Epoch. They included custome a waypoint walker, a new heartbeat routine and a heavily modified version of Jasperre’s combat AI package to spice up combat.
Altogether, they were heavy in terms of CPU. They worked fine on Epoch, which was small and heavily dynamic. Most NPCs were only around when there was actually a PC in the area. On ETI, this caused an enormous amount of overhead on the server. It only took one player getting into a heavy fight somewhere on the server to cause serious lag. Also, there was a rebuild of the main high traffic areas. They were arguably nicer, prettier and more immersive. They were also prone to lag afterwards as well. Sometimes a plain soundstage is the best. A proper scheduled stress test would have revealed this.