Page 2 of 5
Re: Combat Revamp Discussion
Posted: Sun Jul 29, 2012 5:28 pm
by Jabantiz
I put combat back in its own thread on my server and noticed a few issues, it was laggy at times but not as bad as it was, and the spawns I killed vanished right away, didn't even have a chance to start the death animation. The combat calls require the use of spawn_list wich is a MutexList so not sure if that is the cause of the lag when on a diffrent thread. My server (Silent Destiny) is running the combat on a seprate thread, so far I like the performance on EQ2TC better, still needs a lot of stress testing in my opinon though.
Re: Combat Revamp Discussion
Posted: Sun Jul 29, 2012 9:40 pm
by Jabantiz
I spent about an hour tonight with 5 clients logged into EQ2TC, all DoV, and had them all kill there own stuff (it is hard to actually play 5 clients at a time) and had pretty much no lag, what there was is probably the result of 5 DoV clients on max settings running on the same comp. There was no dealy in casting spells/combat arts and I was able to loot more often then I was not. I did notice that it seems when a kos mob aggro's you before you attack them you are almost never able to loot them. I tested with some range attacks as well and was still able to loot more often then not, I was using thrown weapons though not a bow.
It appears to be more stable then before but would still like to see this tested with more clients, also with people spamming skills wich I wasn't able to do to well swapping back and forth through windows making sure every one was attacking something.
Re: Combat Revamp Discussion
Posted: Mon Jul 30, 2012 10:07 am
by John Adams
Since getting players to help is probably never going to happen, I suggest we wait til this weekend (Fri/Sat) and get all devs on EQ2TC with at least 2 clients - I can probably get 6, seeing how I have 3 workstations with 2 clients each). We could get up to 12 running at once that way, and go to The Ruins, aka spammiest combat zone in the galaxy.
I need Scatman to convince me that Combat being on the zoneserver thread is a moot concern, because if it works better, we should leave it there - unless the combat causes that thread to crash - and the whole world collapses.
I want fewer total failures, at the expense of performance. We are just an emulator, after all.
Re: Combat Revamp Discussion
Posted: Mon Jul 30, 2012 11:02 am
by Zcoretri
Lets hammer that bitch

... dev stress test, haha
Re: Combat Revamp Discussion
Posted: Mon Jul 30, 2012 2:44 pm
by John Adams
Jabantiz wrote:I did notice that it seems when a kos mob aggro's you before you attack them you are almost never able to loot them. I tested with some range attacks as well and was still able to loot more often then not, I was using thrown weapons though not a bow.
There is definitely something to this. I was just on EQ2TC with a bow only, and everything I 1-shotted I was able to loot. But if the arrow aggro'd (riposte), they came running and the swords came out before the bow's delay expired, and I cannot loot.
I think we're onto something.
Re: Combat Revamp Discussion
Posted: Mon Jul 30, 2012 3:21 pm
by Jabantiz
I left my 5 clients connected all night, I was expecting at least one to crash like they were before but when I got up this morning they were all still connected. I am going to play around with getting combat more stable on its own thread, might end up replacing MutexList<Spawn*> with a vector<Spawn*>, will see if there is something else I can do first though.
Re: Combat Revamp Discussion
Posted: Mon Jul 30, 2012 7:50 pm
by Jabantiz
Jabantiz wrote:...spawns I killed vanished right away, didn't even have a chance to start the death animation.
After adding a bunch of debug logging I determined that the spawns vanishing were mostly spawns with loot, again this is putting combat back on its own thread. There is also a random crash that I have only ever seen when combat is on its own thread. So far I have been unable to get it to work as good as it does when it is on the main zone thread, may have something to do with the fact that the spawn_list is used on all threads the zone uses (2 always running, 3 if you add combat to its own).
Re: Combat Revamp Discussion
Posted: Tue Jul 31, 2012 7:04 am
by John Adams
Jab, if you think Combat is far more stable in the zoneserver thread, we can leave it there for now and commit the code, then do extensive testing to make sure we know what the pitfalls are (crashing threads breaking entire zones or worlds). Again, since this is just an "emulator", I doubt anyone will have 100's of players or raiding going on - considering the non-existence of players in our little project.
We can always enhance it later if we need to. I don't want to take any more of your valuable time trying to make threaded combat work if it simply is not going to with the current system. Your call tho, whatever you want to do.
Re: Combat Revamp Discussion
Posted: Wed Aug 01, 2012 1:27 pm
by Jabantiz
I finally got combat working well on its own thread again, the source of the problem was a MutexMap...
After going through replacing it with a normal map and adding locks and adjusting code for a map it is working rather well but haven't been able to do any extensive tests like I was before yet. Will do some more tests later today before I commit the code.
Re: Combat Revamp Discussion
Posted: Wed Aug 01, 2012 1:39 pm
by John Adams
If it isn't crashing, go ahead and commit to Dev SVN (public update is turned off for now) so I can grab it and get it on EQ2TC. We can do mass logins again tonight when I get home.
I can probably run another 3-6 clients if I had to. Might try it to see how my workstations hold up just to see if I can run 12 EQ2 Clients off 3 computers

Re: Combat Revamp Discussion
Posted: Wed Aug 01, 2012 2:18 pm
by Jabantiz
I have not been able to get it to crash in my limited tests, I commited it as well as various other fixes I have been working on.
Re: Combat Revamp Discussion
Posted: Thu Aug 02, 2012 12:18 am
by Jabantiz
It looks like the zone ruins on EQ2TC has froze or deadlocked. I am posting it here because it is similar to the situation before the changes to combat, I can't do crap but my client is maintaining the connection, I was able to log in another char in a diffrent zone and that client is not effected. The first char can also see the guild chat from the second. All I did was log in check traits then left the char sitting there, same spot I was at before for at least an hour with no problems.
EDIT: Looks like the same thing happened to queens colony when I went to log that char off, again left the char afk and had the char in that zone earlier with no problems. The only thing I can think of that changed from then to now is the traits data but this doesn't happen on my server so no clue...
Re: Combat Revamp Discussion
Posted: Thu Aug 02, 2012 8:40 am
by John Adams
Let's re-test this today (or soon), because I found some of my "tier" info was still set to 0 (thanks, Zcoretri). I have fixed that on DB Patcher, so you should all have proper Traits-related spell data now. If not, let me know.
I will wait to run that other update on race < 255 for Innate until you say it's 100% sure.
Re: Combat Revamp Discussion
Posted: Thu Aug 02, 2012 7:57 pm
by Jabantiz
I have not been able to reproduce the issues on EQ2TC again, however It does look like I got booted back out to login, not sure if the zone crashed or what, was able to log back in just fine though.
EDIT: This happened again as I was running around the zone, found some corpses of guards that looked like they were staying longer then they should, clicked on one and got booted to login (not sure if that was the cause or not). I was able to log right back in with no problems, it looked like the zone remained active so was probably a crash in the client process that is booting me, that is my best guess at this point at least.
EDIT 2: Finally got EQ2TC zone to freeze/dead lock, I was running around the zone saw guards and orcs kind of frozen in combat, tried a /who all and it worked went up to the orc and tried to attack and I got flagged as in combat but nothing after that, tried /who again and it didn't work. Tried to /zone another char into the zone and hangs at logging into zone server so it has to be the zone deadlocking.
I noticed odd behavior when I fought an orc with /invul 1, had that set last night as well, the zone also didn't appear to deadlock until the player engaged in combat even though it looked like combat was frozen, don't remember if I tried to fight last night or used /kill when it happened the first time in ruins, in QC I only noticed it when I did attack a mob.
Re: Combat Revamp Discussion
Posted: Fri Aug 03, 2012 6:49 am
by John Adams
Few things; first off, great reporting. If you add the time which you think these things are happening, we can correlate them to the log better. For your booted issue, I think this is when that happened:
20:07:55 D GSpawn: No item_harvested
20:08:42 E LUA: Error loading cannot open : Invalid argument (file name: '')
20:08:42 E LUA: Error LUA Spawn Script ''
20:08:42 E Zone: Exception caught when in ZoneServer::ClientProcess() for zone 'Ruins'!
ZoneServer::ClientProcess, 2152
20:08:42 I Zone: Scheduling client 'Jabantiz' for removal.
When you are /invul 1, the attack animations stop. Not sure why, or when that started, but that may be a bug. I seem to remember using /invul 1 and attacking dragons in the past who still breathed their fire on me.
Last, yes... EQ2TC is hung, 2 clients 1 zone active. No debug, no deadlock messages, nothing. This is the root issue we're having, whether it be caused by combat, scripting or something else, THIS is the thing that is bringing me the most hate. If you can fix that, you're a god.