Mammoth is a massively multiplayer game research framework. It’s goal is to provide an environment for experimentation in an academic setting in areas such as distributed systems, fault tolerance, databases, modeling and simulation, artificial intelligence and aspect-orientation.

The world of Mammoth is viewed from a 3D perspective. The world contains a fixed number of game characters, some of which can be controlled by humans. A player can move around in the game, examine objects, pick them up, and drop them again. Player can also talk to other players in private, or engage in multiplayer conversations. The following picture is a screenshot from our McGill Campus world map.

The distribution middleware of Mammoth is based on replicated objects, and therefore allows developers to run classic client-server, hybrid, or Peer-2-Peer configurations of the game. At run-time, Mammoth supports remote monitoring of nodes participating in a Mammoth game, as well as logging of game events to a central database for offline analysis. Mammoth also offers a modular and flexible infrastructure for the definition of non-player characters with behavior controlled by complex artificial intelligence algorithms or statechart-based models. The Mammoth code is organized in a modular architecture where different components, such as the network engine, the replication engine, or interest management, can easily be replaced.