MASSIV Massively Multiplayer Online Game Middleware

About the Massiv

What is the Massiv?

The Massiv is a distributed game middleware whose purpose is to simplify the development of distributed persistent massively multiplayer online games.

It is an object-oriented distributed system built on top of C++ and its standard library. It defines an "extended" object model, in a form of coding instructions, that allows the Core to fully manage application objects. This includes automatic object life time management (garbage collection), object serializability and full object introspection, ability to remote call object methods and migrate and replicate objects. All these features are self-contained and implemented by the Massiv core library. A potential application developer has only to know that these features are supported and how to use them properly.

Besides the object model the Massiv also supports transparent simulation state archivation, dynamic download of static data (textures, models) or server load balancing.

What the Massiv is not

The Massiv is not one of those fancy one-purpose game creation toolkits that could be used directly out of the box. Instead we have developed a generic distributed programmable environment that allows for a broader range of use, not limited to online games only. It does not make the development of such a game an easy task but it is much easier to use the Massiv than other generic distributed systems.

  • Client/Server architecture
  • Object Model ("managed" objects):
    • Classes written in accordance with object model instructions and described in IDL
    • Support for object introspection, serialization
    • Transparent object migration and replication (without users's assistance)
    • Migration & replication groups driven by persistent object references
    • Garbage collector
    • RPC in various flavours (asynchronous, synchronous, timed, delayed, ...)
    • Exceptions
    • Superior integration with the C++ language
  • Consistent archivation
    • Ability to automatically create a snapshot of the simulation state and restore the simulation from the snapshot
  • Management of static data and their distribution (textures, models)
    • Data organized in a tree-like structure
    • Versioning
    • When data are not available, the latest available version is used
    • Can be updated on-line
  • Server load balancing
    • CPU & Network traffic load balancing
  • Network
    • RSA authentization, traffic encrypted using a symmetric ciphre
    • Optimized protocols designed to save network traffic
  • Multiplatform portable code
    • Support for Windows and Linux platforms
    • OS dependent portions of the core library carefully isolated

The Massiv sources and documentation are currently distributed under LGPL. There is a talk in progress on license change for documentation and supporting a BSD-style license for sources.