RJ: "Project Darkstar was supposed to show how to build scalable game servers. However, the architecture doesn't seem very closely tied to games. In what way is the architecture aimed at games?"
Nevertheless the Darkstar environment offers an environment and structures supporting a massive multiplayer model where load scaling, load balancing, fault tolerance and minimizing latency are major concerns.
As far as game interaction with the clients goes, Darkstar offers a mechanism based on a set of servers, each holding copies of the game logic and of its behavior represented by the associated services. These copies can each process different events, the coordination between them being taken care of by the Darkstar environment. Also, the communication among players in and out of the game, crucial for MMOGs, and between internal tasks is supported by communication channels (implementing game validation techniques), which are part of the Darkstar infrastructure.
Furthermore, there are similarities with the traditional game engines in a way that Darkstar is also concerned with improving object localization during the game. However, in contrast with traditional engines, which are mostly using geographical decomposition (decomposing the world into areas that are assigned to servers during game development), Darkstar uses a novel approach where co-location is based on runtime information and can be adjusted based on the current playing pattern.
Compared with the traditional approach where the game engine keeps a significant game state in the memory in order to reduce latency, Darkstar offers again an efficient automatic persistence mechanism based on storing the entire game state in the data store and improved data caching and coherence. This mechanism allow for fail-over and hiding server errors as well as eliminating game rollbacks. Additionally the interaction with the environment is transactional, which helps eliminating some bugs typically associated with the traditional game engines (e.g. duplication, etc.)
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment