nibbio
Member
I was thinking about how multithread could be used inside a networked game emulator like ServUO and I found these points:
Maybe there are other options that I didn't find.
I want modify the core in order to use a multithreaded CPU that is the standard by many years: do you want to discuss about these and other options with me?
Thanks!
- Spatial partitioning: execute mobile "commands" in parallel based on where they are, using the already implemented grid system (sectors) or a new spatial partitioning (like quad-tree). Every sector will be a different "microshard" for commands that are isolated by mobile's position
- System partitioning: split "commands" (e.g. movements) by their kind and execute them in parallel: this could require an "update late" approach where every state modification will be executed at the end of the loop, so every system (e.g. movements and damage) can read the same state even if they depends on the same data; updates will be applied at the end of the loop
Maybe there are other options that I didn't find.
I want modify the core in order to use a multithreaded CPU that is the standard by many years: do you want to discuss about these and other options with me?
Thanks!