Jump to content

digital

Member
  • Posts

    2
  • Joined

  • Last visited

digital's Achievements

Newbie

Newbie (1/14)

0

Reputation

  1. Thank you for the response! Looks like you have it figured out Looking forward to seeing how it turns out and for more blog posts down the road.
  2. Lots of questions, but I'm really curious on how you are planning on raising the bar on distributed game server architectures. Naturally these are very specific and may be confidential on your side. I don't want to seem like I'm trying to scoop you guys or anything. Just a curious grad student who happens to be taking a distributed systems course. Language Choice While using the Actor model greatly simplifies logic regarding synchronization and concurrency, C++ is still has no memory safety. Do you see C++ being an issue in this regard or do you believe that the latest C++11 features, such as shared_ptr, help mitigate some of these concerns? Given that your early prototype was in Scala+Akka, how have you fared in terms of losing the language features and functional style that Scala offered? Scalability The O(n2) update problem for games has a lot of solutions, but none of them are perfect. Your solution is to use Area of Interest (AOI) calculations and allowing for clients to be reassigned to servers based on load. How is player state going to be transferred between servers quickly, reliably, and transparently? What type of communication model are you using on the backend game servers in order to share game state? How does this relate (if at all) to academic efforts such as Colyseus (https://web.stanford.edu/class/cs340v/papers/colyseus.pdf) which use a P2P game server architecture? How are you persisting data in a scalable way? EVE Online uses a single master DB which simplifies things, but requires a heavy server and created a single-point-of-failure. Fault Tolerance What happens if a server managing a region goes down? What state will be lost? How are you persisting data and what type of replication do you anticipate will be needed to assure availability? Consistency Regarding consistency, what happens if multiple people attempt to access a resource simultaneously from different servers? How do the servers communicate in order to resolve the ordering for who gets access? Security Knowing that the client can never be trusted, how are you going to make sure that no game-breaking cheats are possible?
×
×
  • Create New...