Page 1 of 2
Bug 235: (zippyzee) NPC Stuttering Movement
Posted: Sat Oct 10, 2015 2:14 pm
by BugTracker
Bug ID : 235 - NPC Stuttering Movement
Bug Date : 2015/08/03 08:52:10
Assigned To : zippyzee
Priority : Low
Category : VGClient
Sub-Category : Graphics: Animation
Severity : Standard
Reproducible : Every time
Details:
Moving mobs in Khal jerk periodically as they move, as if they were turning as they walk. I have seen this with Rahia and all the Wasplings that chase me.
Originated From World: New Telon (1)
Chunk : Khal (85)
Location : 4896 -52942 1294
Entered on Oct 10, 2015 15:10 by John Adams
Zippyzee is not yet finished with movement, but some work has been done since August. Please verify movement is still "jerky" and report back.
Bug 237: (zippyzee) NPC Stuttering Movement
Posted: Sat Oct 10, 2015 2:17 pm
by BugTracker
Bug ID : 237 - NPC Stuttering Movement
Bug Date : 2015/08/03 09:13:27
Assigned To : zippyzee
Priority : Medium
Category : VGClient
Sub-Category : Graphics: Animation
Severity : Standard
Reproducible : Every time
Details:
This is a follow-up to my earlier bug about "jerky" movement. I just pulled a waspling and let it chase me for a while. While I was running away from it (and facing away from it), my offensive target display pointer would flip rapidly from pointing behind me (where it should have been pointing) to pointing ahead of me. This has happened with every waspling. Also, when watching the waspling approach me, I could clearly see it periodically turn around away move away from me, then turn back and pursue -- two steps forward, one step back -- so it took pretty long to catch up to me.
Originated From World: New Telon (1)
Chunk : Khal (85)
Location : 2537 -52519 1294
Re: Bug 235: (zippyzee) NPC Stuttering Movement
Posted: Sat Oct 10, 2015 5:21 pm
by zippyzee
This is some underlying issue that has been there since long before I started combat. I have looked and can't find the source of this. It looks like it is switching the offensive target on the compass and rapidly switching back. If you watch adds as they chase you, the direction stays consistent. I keep hoping to eventually stumble upon the reason for this.
Re: Bug 235: (zippyzee) NPC Stuttering Movement
Posted: Tue Oct 13, 2015 4:12 pm
by Xinux
Ok I found where in the code that is causing the bouncing arrow on the compass.
In WorldCharacter.cpp
Code: Select all
void WorldCharacter::NotifyOffensiveTargetDetailsChanged() {
// Get chunk_client:
auto chunk = this->GetCurrentChunk();
if (!chunk) {
LogWarn(LOG_CHARACTER, 0, "NotifyOffensiveTargetDetailsChanged: Chunk not found for character = %s", (this->GetDisplayName()).c_str());
return;
}
auto chunk_client = chunk->GetClient(this->GetAccountID());
if (!chunk_client) {
// note: this case will occur for a character that is changing chunks
return;
}
auto target = GetOffensiveTarget();
if (!target) {
LogDebug(LOG_CHARACTER, 0, "Minor warning: Character=%s was notified of change to offensive target details, without having an offensive target", this->GetDisplayName().c_str());
//TODO (Later): Review if this case is actually occurring. If so do one or both of:
//a) find and fix why this is occuring
//b) flag and later remove this item from the offensive_observers list
return;
}
// create and queue response packets:
PacketStruct* out;
uint32_t target_entity = target->GetUniqueID();
out = packet_struct_list.GetPacketStruct2Server("WS_ServerTarget3");
out->SetUInt32("entity_low", target_entity);
out->SetUInt32("entity_high", target_entity);
out->SetUInt32("unknown1", 0x04); //TODO: (Later): Review what this is for. Seems always 0x04?
//out->SetStringWide("name", ""); //TODO: (Later): Review if this is needed for something. Leave this unset unless we eventually see any use for it.
out->SetUInt8("health_percent", target->GetHealth()); //TODO: (Later): Replace with actual health value (%).
if (shared_ptr<SGOUnrealPawn> target_of_target = target->GetOffensiveTarget()) {
out->SetUInt32("tot_entity_low", target_of_target->GetUniqueID());
out->SetUInt32("tot_entity_high", target_of_target->GetUniqueID());
out->SetUInt32("tot_level", target_of_target->GetAdventureLevel());
}
chunk_client->QueuePacket(out->Serialize());
delete out;
}
If you comment out the sending of that packet the arrow stops bouncing but then ToT doesn't update anymore with the targets name. What i'm wondering is if this and your combat code is fighting over the updates?
Re: Bug 235: (zippyzee) NPC Stuttering Movement
Posted: Tue Oct 13, 2015 4:29 pm
by zippyzee
It is possible at this point. I do know the bouncy arrow issue was there before combat; just having anything targeted then moving around would do the same thing. At least this gives me a start. Thanks!
By the way, jerky movement of npcs is representative of server load and not a bug at this point. It gives me some feedback if there is too much going on; it just means the cycle to update npc location can't keep up with the projected movement in the client, and is not firing as rapidly as it is set up to do. There are ways to improve this efficiency but is not an unsolved issue, per se, and will eventually get balanced out.
Re: Bug 235: (zippyzee) NPC Stuttering Movement
Posted: Wed Oct 14, 2015 4:47 pm
by Xinux
Just for fun i put two loggers in one on that function and one on proccessDamage and here is the result of one fight.
Code: Select all
16:39:38.785 E Char Proccess Damage e:\vgoemu\trunk\src\world\combat.cpp:632
16:39:39.160 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:39:39.160 E Char Proccess Damage e:\vgoemu\trunk\src\world\combat.cpp:632
16:39:39.363 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:39:39.566 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:39:39.769 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:39:39.972 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:39:40.207 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:39:40.410 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:39:40.613 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:39:40.816 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:39:41.019 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:39:41.253 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:39:41.457 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:39:41.660 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:39:41.785 E Char Proccess Damage e:\vgoemu\trunk\src\world\combat.cpp:632
16:39:41.863 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:39:42.066 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:39:42.300 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:39:42.504 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:39:42.707 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:39:42.910 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:39:43.113 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:39:43.347 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:39:43.347 E Char Proccess Damage e:\vgoemu\trunk\src\world\combat.cpp:632
16:39:43.551 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:39:43.754 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:39:43.957 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:39:44.160 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:39:44.394 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:39:44.597 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:39:44.785 E Char Proccess Damage e:\vgoemu\trunk\src\world\combat.cpp:632
16:39:44.801 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:39:45.004 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:39:45.207 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:39:45.441 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:39:45.644 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:39:45.848 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:39:46.051 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:39:46.254 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:39:46.488 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:39:46.691 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:39:46.894 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:39:47.098 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:39:47.301 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:39:47.535 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:39:47.535 E Char Proccess Damage e:\vgoemu\trunk\src\world\combat.cpp:632
16:39:47.738 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:39:47.785 E Char Proccess Damage e:\vgoemu\trunk\src\world\combat.cpp:632
16:39:47.941 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:39:48.145 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:39:48.348 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:39:48.582 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:39:48.785 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:39:48.988 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:39:49.192 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:39:49.395 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:39:49.629 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:39:49.832 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:39:50.035 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:39:50.238 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:39:50.442 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:39:50.676 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:39:50.879 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:39:51.082 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:39:51.285 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:39:51.489 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:39:51.723 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:39:51.723 E Char Proccess Damage e:\vgoemu\trunk\src\world\combat.cpp:632
16:39:51.926 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:39:52.129 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:39:52.332 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:39:52.536 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:39:52.770 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:39:52.973 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:39:53.176 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:39:53.379 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:39:53.582 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:39:53.817 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:39:54.020 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:39:54.223 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:39:54.426 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:39:54.629 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:39:54.864 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:39:55.067 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:39:55.270 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:39:55.473 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:39:55.676 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:39:55.911 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:39:55.911 E Char Proccess Damage e:\vgoemu\trunk\src\world\combat.cpp:632
16:39:56.114 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:39:56.317 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:39:56.520 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:39:56.723 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:39:56.958 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:39:57.161 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:39:57.364 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:39:57.567 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:39:57.770 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:39:58.005 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:39:58.208 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:39:58.411 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:39:58.614 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:39:58.817 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:39:59.052 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:39:59.255 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:39:59.458 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:39:59.661 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:39:59.786 E Char Proccess Damage e:\vgoemu\trunk\src\world\combat.cpp:632
16:39:59.864 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:40:00.099 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:40:00.099 E Char Proccess Damage e:\vgoemu\trunk\src\world\combat.cpp:632
16:40:00.302 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:40:00.505 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:40:00.708 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:40:00.911 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:40:01.146 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:40:01.349 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:40:01.552 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:40:01.755 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:40:01.958 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:40:02.192 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:40:02.396 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:40:02.599 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:40:02.786 E Char Proccess Damage e:\vgoemu\trunk\src\world\combat.cpp:632
16:40:02.802 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:40:03.005 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:40:03.239 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:40:03.443 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:40:03.646 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:40:03.849 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:40:04.052 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:40:04.286 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:40:04.286 E Char Proccess Damage e:\vgoemu\trunk\src\world\combat.cpp:632
16:40:04.489 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:40:04.693 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:40:04.896 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:40:05.099 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:40:05.333 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:40:05.536 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:40:05.740 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:40:05.786 E Char Proccess Damage e:\vgoemu\trunk\src\world\combat.cpp:632
16:40:05.943 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:40:06.146 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:40:06.380 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:40:06.583 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:40:06.787 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:40:06.990 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:40:07.193 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:40:07.427 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:40:07.630 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:40:07.833 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:40:08.037 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:40:08.240 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:40:08.474 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:40:08.474 E Char Proccess Damage e:\vgoemu\trunk\src\world\combat.cpp:632
16:40:08.677 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:40:08.787 E Char Proccess Damage e:\vgoemu\trunk\src\world\combat.cpp:632
16:40:08.880 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:40:09.084 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:40:09.287 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:40:09.521 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:40:09.724 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:40:09.927 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:40:10.131 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:40:10.334 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:40:10.568 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:40:10.771 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:40:10.974 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:40:11.177 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:40:11.381 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:40:11.615 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:40:11.787 E Char Proccess Damage e:\vgoemu\trunk\src\world\combat.cpp:632
16:40:11.787 D Item Adding item 1054517 (Master Workman's Discerning Heavy Pants of Finesse) with unique_id 0 to pawn inventory.
16:40:11.818 D NPC Gataro Podling Exiting Combat
16:40:11.818 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
16:40:11.818 E Char Notify Offense Target e:\vgoemu\trunk\src\world\worldcharacter.cpp:653
Re: Bug 235: (zippyzee) NPC Stuttering Movement
Posted: Wed Oct 14, 2015 4:58 pm
by zippyzee
Wow! That seems excessive...
I did not write that function in worldcharacter (although I've modified it) but it is going a bit crazy. That's something I'll check out. It seems to be on a 200ms cycle which would match npc movement timing, among other things.
Re: Bug 235: (zippyzee) NPC Stuttering Movement
Posted: Wed Oct 14, 2015 5:17 pm
by John Adams
Yeah, I've been saying THAT too for months, because I'm the guy who enables loggers at level 9, often But I've been promised that stuff like this will be addressed in the big Performance Tuning that's coming soon(tm)
Re: Bug 235: (zippyzee) NPC Stuttering Movement
Posted: Wed Oct 14, 2015 6:01 pm
by Xinux
Yea imo it should only be triggering when there is a actual change in the target. FYI this only spam's like this in combat i can target a mob and walk around it with no issues, .summon a mob and target a mob while it is pathing via script and it is fine.
Re: Bug 235: (zippyzee) NPC Stuttering Movement
Posted: Wed Oct 14, 2015 6:35 pm
by zippyzee
Yep something is amiss there. This is not so much a tuning problem as a mistake in logic problem, I think.
Fwiw, our biggest performance issue by far is sendspawnsandremoves, or whatever it is called off the top of my head. I put timers on all the major functions once and posted some results somewhere around here, but that would be my first target. I believe 75-80ms per loop on my pc, with all npc movement for a chunk using about 12-14ms per loop to give some perspective. All in all, things run pretty smoothly, all things considered, and we are starting to wrap up a lot of the biggies so there is hope for the fine tuning part. I'd much rather do things in a way that is smart, and works, and tune for efficiency later than chase one thing into the ground and never get the big picture together.
I remember the vanguard beta days and getting 1fps during the first stress test in Khal. That was probably an 'oh f#ck' moment for those devs!