Nowadays, with the rapid development of the internet, there always emerge new world-wide network applications. One of them, having its origins just a few years ago, are the massively multiplayer online games (MMO games). The common feature of these games is that they consist of an imaginative world that is simulated by one or more servers and of many (up to thousands) players who are connected to the simulation simultaneously controlling their characters and interacting with the simulated world in the real time.
The simulation mentioned typically runs 24 hours a day 7 days a week and players can take part from any corner of the world. After a player disconnects, his character cannot interact with the world any more, but it keeps its qualities and possessions until the player connects again.
As obvious, development of such a distributed system (especially when the simulation is spread upon more servers) is an extremely time-consuming task requiring a good financial background and it seems that only commercial companies could afford to undertake such a difficult development. And here comes the Massiv to propose a solution to this situation.
The Massiv creates a platform for easier development of the MMO games. It provides functionality to hide the distribution from the programmer to some extent. It also provides an object model for an efficient simulation. Hhowever, the programmer still has to respect that the system is distributed, but still his situation is much easier, because much work has been already done for him.
There is a significant difference between the Massiv and other existing MMO games. Whereas existing games usually simulate the world on several servers located in the same cluster (in the same broadcast domain), the Massiv is designed to run on many servers located anywhere in the world. This makes the development more difficult, because it brings in new issues such as longer delays, security or locating object efficiently. The main advantage of this architecture is that it enables more independent subjects to set up a simulation together without having to be physically in the same location. Thus, the Massiv should be more open to the non-commercial community.
Note that along with the Massiv Core library (the one this book is all about) this distribution contains also a demonstration application (we call it simply the Demo). When discussing non-trivial features of the Core, this book often references the Demo as a real-world example.
Although we talk about a world simulation, a player, etc. throughout this documentation, please note that the Massiv can have a much more general usage. It is not limited only to games, but you can use it for anything that conforms to the object model that will be described below.
The goal of this book is to get you acquainted with the Massiv programming as quickly as possible. However, note that you won't be familiar with every detail and trifle of the Core right after you finish reading. You also have to use the Massiv Core Reference Guide generated from the source codes and to make a few experiments to get more experienced before you can start developing a 'real' application using the Massiv.