[DiscordArchive] Excuse me, does trinity have an API?
[DiscordArchive] Excuse me, does trinity have an API?
Archived author: leewheel • Posted: 2023-03-22T10:58:56.675000+00:00
Original source
Excuse me, does trinity have an API?
Archived author: ModoX • Posted: 2023-03-22T10:59:27.853000+00:00
Original source
Just soap to execute worldserver stuff
Archived author: ModoX • Posted: 2023-03-22T11:00:16.313000+00:00
Original source
https://trinitycore.info/how-to/SOAP <@1011485112153669685>
[Embed: SOAP with TrinityCore]
How to interact with TC using SOAP
https://trinitycore.info/how-to/SOAP
Archived author: leewheel • Posted: 2023-03-22T11:06:32.327000+00:00
Original source
Thanks, I think that can run a script(maybe quest, maybe loot items) code by c# or vb.net etc
Archived author: Pandaros • Posted: 2023-03-22T11:08:47.731000+00:00
Original source
Yeah the approach I took with the core was to thread some things on the loop. This resulted in some objects being accessed by more than one thread at a time. The max degree of parallelism I had was 20. I had various spots where I did this with benchmarks Mostly in map https://github.com/ForgedWoW/ForgedCore/...ap.cs#L586
I noticed that the VisitNearbyCellsOf would often call the same object more than once, so I changed the UpdaterNotifier to make a unique list of world objects. This was the first spot of thread contention on objects. now the thread is there just to find the objects, not execute the update on them.
after getting detailed metrics of each stage of the map update I was able to isolate where the majority of the time was being spent. Funny enough in the overworld maps, its actually transports that take the majority of the cycle. sometimes taking close to 1 second. As of right now I have not optimized this part, My fix for the moment is to throw the update in at TPL.
A lot of operations are so fast they dont make any sese to thread.
But after all this I realized that a lot of this can be avoided in the first place if it was refactored to accommodate threading and distribution of load in the first place.
So the refactor is not only going to break maps out into their own server where I can have multiple map servers. But also optimize the code to be more accommodating to threading where the use of locks can be reduced through either the changing of the access patterns on things or give the threads ownership of the contexts so they dont have to worry about the thread contention on objects.
Archived author: leewheel • Posted: 2023-03-22T11:09:07.642000+00:00
Original source
if trinity can use a dll or something api , that would be wonderful!