Postmortem: Etilica’s Lag – Part I

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.


About Dave

I’m a 38 year old American who has lived the past 9 years in Germany and India.
This entry was posted in Uncategorized and tagged , , . Bookmark the permalink.

7 Responses to Postmortem: Etilica’s Lag – Part I

  1. Thrym says:

    Opens the module and looks at it … 700 plus NPCs, 400 plus areas. Plus, several scripting systems that weren’t fully implemented or weren’t fully removed and a cached script list about 20 lines long.

    The biggest issue with lag (outside of scripts and NPCs) is area loading. Some of the scripts never ended on area load, specifically when the module loaded them.

    Finally, in NWN, the log file plays a crucial part of lag. Everytime you write to the file it has to load the file. This means, that when the file NEVER gets archived or cleared it reaches insane file sizes. ETI’s logs were hammered by scripts that logged a ton of data.

    On the worlds I manage I archive the file after 1mb. Which equates to 3-7 days of log entries. I provided access to the logs online so if anything was amiss DMs could check them.

    The last iteration of ETI I handled saw the removal of many of the problems but unfortunately retired management returned and obliterated much of the work.

  2. Dave says:

    Was it really 400? I thought that the last version had been cut down to 250.

  3. Opinvu says:

    Well, there is lag wherever you go. For 1000 reasons there is lag. So much internet communications and syncronizations…..

    I try not complain. And if in another topic I sounded like a complaint, I apolagize, it was not ment to be. Just a point of cost vs gain/goal.

  4. Thrym says:

    You forget that the latest version I had was the one AFTER Kel and AFTER San and finally Remus said something like, “I can’t work with this can you give me a hand.”

  5. Pingback: Postmortem: Etilica’s Lag - Part II « Dancing Elephants

  6. mule says:

    Ahh lag, yeah that’ll kill a server fast. I liked Eti a lot but it got insuferable after a while. But I am not very familiar with running of a server so I can’t speak much to it. I did not mean my comments to be construed as a complaint either. I merely was under the impression that people did not like the flash because it was seen as part of the lag problem.

  7. Pingback: Design Documents – Yes, you need them! « Dancing Elephants

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s