Core Algorithms
Motivation: due some several technical issues found along PServers over the years related to lag, rubberbading, network and other issues kinda related to themselves, they were still a challenge for PServer developers to solve and most of them given up along possible patches for this scenario.
Therefore, after some weeks studying about possible patch, I decided to investigate what is the relationship between each other (lag, rubberbanding, network issues occurrences) and just found an algorithm whose integrates all of them, see FLLogicTicker
for more details. Summarizing, this algorithm is responsible to render and simulate the game time every 200 milliseconds whose represents 1 tick of RealmTime
.
So, based on this situation Core Algorithms (CA) come to split this overwhelming task and build an organized way to manage internal methods that require intense / massive processing over ticks of time based on system environment specs.
How CA would impact in game performance for NR-Core servers?
CA is designed to manage not exclusively time and tick operations, but critical threads that require such attention by processor cores provided by system environment. CA use a powerful feature from .NET framework available since C# 4.0 which is PFX (Performance Framework) whose contains definitions for parallel programming and concurrency scenarios, see Joe Albahari's article
about this topic.
Version 1.0
Replacement for time simulation to system environment tick core (not needed to simulate a time since system already does that).
Version 2.0
Multithreading based-off on Joe Albahari's article to split threads that require to not being synchronous, but asynchronous instead (currently main issue found along debug diagnoses made).
Version 3.0
Improvements along multithreading procedures on CA and replacement of Core Task to Core Thread due thread-unsafe issues, see this article
for more details.
TO-DO List