Meerkat: Extending Entity-based Programming to Networked Games
Hamza, MD Ameer
Game development , Networked game , Digital games , Game engine
Game development is a complex and time-consuming activity that requires domain-specific knowledge and implementation skills. Networked games are particularly difficult due to the additional challenges of implementing the distribution. In recent years, game development has been simplified through tools that allow game development based on entities (objects that compose the game, e.g., avatar, vehicles, trees, and monsters). Entity-based tools simplify game programming by providing entity-level constructs and abstractions to the game developer. However, current entity-based tools fail to appropriately address the development of networked multiplayer games; they either do not support network gaming at all, or compromise the purity of the model by exposing low-level network programming to the game developer. In this thesis, we present a pure entity-based model for developing networked multiplayer games. In our model, the game developer is completely shielded from network programming concerns. In order to demonstrate the model’s practicality, we implemented a game development toolkit called Meerkat. Meerkat uses a combination of generic distribution algorithms and a proxy-based architecture to provide a pure entity-based game programming interface. The same interface can be used to develop both distributed and non-distributed games. Meerkat automates all aspects of networking for the game developer. To evaluate the performance of our system, we built three multiplayer games of different genres. Our experiments show that the overhead of using fully-automated networking can be acceptable for a wide range of games, except in extreme cases where there are strict performance requirements. Meerkat demonstrates that it is possible to extend the pure entity-based approach to networked games while ensuring sufficient performance.