Proximity Spawn rates

EQ2Emulator Development forum.

Moderator: Team Members

Post Reply
User avatar
John Adams
Retired
Posts: 9684
Joined: Thu Jul 26, 2007 6:27 am
EQ2Emu Server: EQ2Emulator Test Center
Characters: John
Location: Arizona
Contact:

Proximity Spawn rates

Post by John Adams » Wed Dec 10, 2008 10:34 pm

LE,
Long ago the server gained this ability to not slow down a clients performance by sending to the client only those spawns that particular client could "see" (telling the story for the benefit of others, since you know what I am going to ask heh). So if my client can see 500', everything that is supposed to be within that 500' should be visible by my client as I move through the zone. As I leave an area, I believe those spawns are removed from my clients entity list and cannot be seen unless I return to that same area later. Correct?
Here's what I'm seeing lately - running at /speed 0, with a moderately popped zone (antonica: 2500 spawns). I literally run into a vacant area and stand there, while spawns appear around my character - both in front of and behind me. In other words, the spawn rate seems extremely slow - slower than normal. This is running on Release code, most recent from dev svn, but has been a problem for some time.
When I turn on /speed 40, which is me simulating a mount or bard speed, I can literally pass through an entire area of spawns without ever seeing one pop up unless I stop still for up to 10s, to allow the server/client to sync up. I usually run my client at Very High Quality so I assumed I could see more than I am seeing as I run around.
Is this something intentional for now, or is this a problem that has creeped up? I don't think this is a bug, unless you tell me something's wrong, then we can move it over. :)
edit: to be a little more fair, obviously the spawn speed is worse when player speed is enhanced heh. But this report is that even at speed 0, sometimes you will get great lag in visual spawn appearances and I am wondering what the cause could be... if it's in the DB, we can look at additional indexing, etc.

LethalEncounter
Team: Zombie
Posts: 2717
Joined: Wed Jul 25, 2007 10:10 pm

Post by LethalEncounter » Thu Dec 11, 2008 8:51 am

You simply have more spawns in the area then World can send you in the short time frame. I don't have a single problem on my World in tutorial island, so it is either:
1. You have a ton of mobs in the area.
2. Your network connection can't keep up.
There might be an extremely remote possibility that there is a problem with the server, but I really doubt it.

User avatar
John Adams
Retired
Posts: 9684
Joined: Thu Jul 26, 2007 6:27 am
EQ2Emu Server: EQ2Emulator Test Center
Characters: John
Location: Arizona
Contact:

Post by John Adams » Thu Dec 11, 2008 11:30 am

I think you and I can agree if anyone should know what "normal" looks like by now, it would be me. :) Something doesn't feel right, maybe with all the scripts, spells, items, and players we have now something doesn't seem like it used to.
Q1: You don't have that spawn distance inhibiter code left in there, do you? Remembering that behavior is similar to this.
Do me a favor, using the TessEQ2 spawn DB... create a new toon on your server, /speed 40, and haul ass around the island. Tell me that you see every spawn pop up well before you are in KOS range, and I will concede. :) I'm rebuilding a few VMs today (Windows and Linux) and will run some trials myself... just to be sure.
Q2: 1GB RAM should be more than enough to keep EQ2World.exe fat and happy, yes?

User avatar
John Adams
Retired
Posts: 9684
Joined: Thu Jul 26, 2007 6:27 am
EQ2Emu Server: EQ2Emulator Test Center
Characters: John
Location: Arizona
Contact:

Post by John Adams » Thu Dec 11, 2008 12:39 pm

Take a look at these vid clips. I'm fairly confident I do not have too many spawns. :)
Client on Very High Quality - I ran back and forth in front of the ramp up from the Commonlands docks to take some baseline measurements. Things to note are the Freeport guard standing in the middle of nowhere, a totem-like pole that I believe is not even a spawn, and mobs popping into view well withing KOS radius.
Run 1
In this clip, you see me running from one point in the Commonlands (/speed 40) to another 30s away. Note the guard standing post. Note the totem thingy that just pops in (which I do not think is even a spawn, but a hard-coded zone object?) and finally the end of the run where the spawns all appear within KOS range and would have killed me before I had even seen them if I had factions setup.
Run 2
Running back the other way, same session a few minutes later (allowed for entities to leave my client due to proximity). Note this time the guard is nowhere to be seen, that same "totem" pole just pops in again, and the Manticores pop into view when I get to their grassy area - and not all of them spawned immediately even though I was standing right in their spot (see next ending)
Run 3
A comparitive view, just showing this time that all the Manticores were in place on a second run so it is not my spawns or data that is wrong.
Hope you can see these vids, they should be standard Windows Media. If not, don't worry about it. I know something's up, and it'll come up eventually =)
(btw, this was done on a Fedora Core 8 Linux VM with 512mb ram allocated, using the same MySQL server as the live TessEQ2 server uses... so there is still an off chance it's my hardware :p )

LethalEncounter
Team: Zombie
Posts: 2717
Joined: Wed Jul 25, 2007 10:10 pm

Post by LethalEncounter » Thu Dec 11, 2008 4:05 pm

The problem is just the amount of processing required to send a single spawn to the client. First it has to customize the spawn for each player as certain information like arrow color and various other parameters change for each client that needs the packet. Then it has to put that spawn information into a packet and send it to the player. All that might sound trivial, but when you have 50-100 spawns in a small area it adds up fast. One solution would be to have a cache behind the scenes that automatically does everything except send the information to the client if they are in a range of maybe 2-5 times the distance required for World to send the player the spawn packets. The current minimum distance between a client and a spawn before the spawn is sent to the client is 100 which is 5 times the aggro distance. We could also increase this value.

User avatar
John Adams
Retired
Posts: 9684
Joined: Thu Jul 26, 2007 6:27 am
EQ2Emu Server: EQ2Emulator Test Center
Characters: John
Location: Arizona
Contact:

Post by John Adams » Thu Dec 11, 2008 4:17 pm

Naw, doesn't sound trivial at all. Remember, I've been with you through the proximity nightmares ;) It may not be a problem *right now*, but I think it's something we should consider before we hit Beta 0.8 (wayyy next year heh). As a player, it is a problem for me right now only in that I can actually get attacked before I even see the mob when I have factions(KOS) enabled.
I know we had our reasons for limiting distance - processing, lag, etc. I thought that type of control was left up to the individual client anyway based on their quality/lod/distance settings? Could we allow the client(s) to make that distance determination? If it lags them out, they can scale down the settings. Dunno, just throwing out ideas. I am not sure what a load this would put on the World too once you get into zones like TimDeep with thousands of spawns - even if only a small percentage are visible at any one time.
Caching sounds good, too. But you would know more than I about how expensive that is, both to the world utilization and forward progression of the Emu.
Thanks for tolerating my bitching, yet again :)

User avatar
John Adams
Retired
Posts: 9684
Joined: Thu Jul 26, 2007 6:27 am
EQ2Emu Server: EQ2Emulator Test Center
Characters: John
Location: Arizona
Contact:

Re: Proximity Spawn rates

Post by John Adams » Sun Jan 04, 2009 11:19 pm

I'd like to continue this discussion now that I have ruled out a) excessive spawn data in one area, b) bad or slow hardware, c) slow MySQL connection, d) slow internet connection and e) anything else that makes this my personal issue and not everyone elses. :) :D :P

I don't think anything in the server has changed regarding spawns, but something has changed - maybe in SOE client. My client runs horribly slow now, lagging bad and desynching constantly. Even logging into Live takes twice as long as it used to. Once I set Factions on these mobs, this situation will become a problem with players getting aggro before they even see the mob. Couple that with the fact the mobs aggro and fly 200mph and attack you, and you got a recipe for a royal ass-rape pie. :)

LethalEncounter
Team: Zombie
Posts: 2717
Joined: Wed Jul 25, 2007 10:10 pm

Re: Proximity Spawn rates

Post by LethalEncounter » Mon Jan 05, 2009 4:36 pm

John Adams wrote:Even logging into Live takes twice as long as it used to.
I'm not saying the code is perfect and there are lots of things I can do to increase performance, but if this is affecting you on Live then it is likely something with your configuration that EQ2 doesn't like.

User avatar
John Adams
Retired
Posts: 9684
Joined: Thu Jul 26, 2007 6:27 am
EQ2Emu Server: EQ2Emulator Test Center
Characters: John
Location: Arizona
Contact:

Re: Proximity Spawn rates

Post by John Adams » Mon Jan 05, 2009 4:40 pm

Sigh.

Logging IN takes longer. Running between two sets of 10 mobs does not. And in Live, I can see things practically on the horizon - which is not what I am asking for her. I simply do not want to be standing in a spot for 10 seconds and THEN see spawns appear around my toon.

But this has reached the beating-a-dead-horse phase. You definitely do not believe there is a problem =) So until others complain, I'll just live with it. Sorry if I sound argumentive... but I am only trying to create the best experience possible with what we got.

LethalEncounter
Team: Zombie
Posts: 2717
Joined: Wed Jul 25, 2007 10:10 pm

Re: Proximity Spawn rates

Post by LethalEncounter » Mon Jan 05, 2009 4:57 pm

You just have to give me some way to reproduce it. If you seriously only have 20 mobs spawned and are running at normal speed there shouldn't be any issue with them spawning before you reach them. If you can find a way to reproduce the problem so that I can see it I have no problem taking a look at it, I just need to see the problem before I can think of solutions to it :P

User avatar
John Adams
Retired
Posts: 9684
Joined: Thu Jul 26, 2007 6:27 am
EQ2Emu Server: EQ2Emulator Test Center
Characters: John
Location: Arizona
Contact:

Re: Proximity Spawn rates

Post by John Adams » Mon Jan 05, 2009 6:03 pm

Sold! Let me make a backup of my current DB and you can source it. Just the spawns stuff should be enough.


Edit: egads, those items quadrupled the size of my backup. :) sending to you now... and no i don't expect you to look at it immediately, as long as you use this data, I'm sure you'll see the same thing I do. If not, I give up. lol

LethalEncounter
Team: Zombie
Posts: 2717
Joined: Wed Jul 25, 2007 10:10 pm

Re: Proximity Spawn rates

Post by LethalEncounter » Tue Jan 06, 2009 3:49 pm

Hm, did you email it? If so I didn't receive it.

User avatar
John Adams
Retired
Posts: 9684
Joined: Thu Jul 26, 2007 6:27 am
EQ2Emu Server: EQ2Emulator Test Center
Characters: John
Location: Arizona
Contact:

Re: Proximity Spawn rates

Post by John Adams » Tue Jan 06, 2009 4:20 pm

No silly, it's where I always put it. :) Private DB SVN, ./Trunk/Database/... something.

LethalEncounter
Team: Zombie
Posts: 2717
Joined: Wed Jul 25, 2007 10:10 pm

Re: Proximity Spawn rates

Post by LethalEncounter » Tue Jan 06, 2009 4:28 pm

Ahh kk, the ONE place I didnt look :P

User avatar
John Adams
Retired
Posts: 9684
Joined: Thu Jul 26, 2007 6:27 am
EQ2Emu Server: EQ2Emulator Test Center
Characters: John
Location: Arizona
Contact:

Re: Proximity Spawn rates

Post by John Adams » Tue Jan 06, 2009 4:29 pm

It's always in the last place you look, ya know.

Post Reply

Who is online

Users browsing this forum: No registered users and 0 guests