To leave WoW behind for a second and talk about the massively multiplayer world sim problem for a second, though; you’re absolutely right - geography alone is pretty terrible.
-
-
Vastauksena käyttäjille @kurtismcc ja @tloch14
Like, completely abstractly, the question we *should* be trying to answer is how to weigh the trade off of latency/complexity/visibility? Let’s take movement for example: a desired solution must be low latency and high visibility. Complex systems are out.
1 vastaus 0 uudelleentwiittausta 0 tykkäystä -
Vastauksena käyttäjille @kurtismcc ja @tloch14
Can you take complexity out by interpolating between fixed positions instead of playing back movement streams? Can you reduce the number of positions as you get further away from the mover?
1 vastaus 0 uudelleentwiittausta 0 tykkäystä -
Vastauksena käyttäjille @kurtismcc ja @tloch14
I feel like the “right” way to solve the problem is to break up a simulation using k-clustering (with interaction, not geographic weights) and move players among the clusters and their interactions shift.
2 vastausta 0 uudelleentwiittausta 0 tykkäystä -
Vastauksena käyttäjille @kurtismcc ja @tloch14
But the problem rapidly becomes the Kevin Bacon game: where do you actually cut long interaction chains?
2 vastausta 0 uudelleentwiittausta 0 tykkäystä -
Vastauksena käyttäjälle @kurtismcc
Interesting! I've always thought k-clustering was a good solution too, but never had an opportunity to try. Although I tended to think geographically, because for movement updates and combat, that's mostly what you want.
2 vastausta 0 uudelleentwiittausta 1 tykkäys -
Vastauksena käyttäjille @tloch14 ja @kurtismcc
The clusters effectively create something of a voronoi pattern too, and it seemed like a good opportunity for LODing updates. In a neighboring cluster? Get every 2nd update. Neighbor's neighbor? Every 4th update. And so on.
1 vastaus 0 uudelleentwiittausta 1 tykkäys -
Vastauksena käyttäjille @tloch14 ja @kurtismcc
Although, I do think that it's better for all this to be on one process, rather than a process per k-cluster, just for the headache of replicating across server boundaries. Instead, I'd be interested in seeing a process own a subsystem.
1 vastaus 0 uudelleentwiittausta 0 tykkäystä -
Vastauksena käyttäjälle @tloch14
I would want the whole point of the clustering to be that you wouldn’t need to mirror data at all for the computation of the interaction, just to pass data on the results to the clients for notification.
1 vastaus 0 uudelleentwiittausta 1 tykkäys -
Vastauksena käyttäjille @kurtismcc ja @tloch14
Aka, you are “close enough” to see the combat taking place next cluster over, but not directly affect it, so you can get lossy or delayed information about it.
2 vastausta 0 uudelleentwiittausta 0 tykkäystä
Depending on your game that might be ok. Or if your "visible range" overlaps a cluster by a certain amount, then you get every update for both clusters. Could probably use camera direction to influence this too.
Lataaminen näyttää kestävän hetken.
Twitter saattaa olla ruuhkautunut tai ongelma on muuten hetkellinen. Yritä uudelleen tai käy Twitterin tilasivulla saadaksesi lisätietoja.