It makes sense to choose the optimal server structure at the very beginning of the project. This is not only an important technical consideration, but also directly affects the entire project’s profitability and viability. If you are going to work on a massively multiplayer online (MMO) gaming project, you must clearly understand that here, “massive” refers to an infinitely large number of users. Undoubtedly, no one wants to deliberately limit the number of application users, because every user is a potential source of profit. Server structure is the element that is responsible for accepting and supporting all of the available users. Therefore it has to meet very high standards of speed and reliability. Let us help you select the best server structure for your application. To illustrate the process, we will consider two parallel solutions for online project development.
• The database was designed specifically for this project (for maximum performance)
• The server was fully debugged and laboratory tested (with excellent results)
• Approximately 10% of the budget was allocated for server development.
• The developers worked hard and were able to build the server on a fast deadline
The resulting servers were more unified, but not as fast as the server in Project A. Also, it took more time and money to develop the servers in Project B – about 30% of its budget. Both projects were successfully launched, and it really looked like the server solution in Project A ran faster and smoother. Yet, there was more to Project B than was immediately obvious.
Following its advertising campaign, Project B saw an increase in users. After their number reached a certain level, additional server capacity was added, allowing to distribute the load evenly among the project’s services. What observations can we make? Users are happy - the project is stable - the profit increases. Since there were no server collapses, each new advertising campaign attracted the greatest number of users possible. Project B quickly paid for itself, which freed up some of the funding for further development. Because the server end allows for logical and functional improvements, new game levels can be created, and modifications can be made for adaptability to other platforms. This upward movement even helps attract new users from other projects. Project B finishes in first place and becomes a trend-setter for other players in the market. So why did Project A, with its perfectly balanced server, start out in front, but finished considerably behind Project B?
It is fairly obvious that the choice of server structure in Project B was much more optimal.
So how do you find the right server solution for your project?
Formula for stable server operating conditions.
Tk – time required for single user calculation
Nk – number of users
2) Reducing the number of users
• Each server component is independent and does not store information about previous calculations
• Each server component can quickly access the data necessary for calculations
• The data are distributed based on their type and quantity
• Server Communications are based on messages acrossRAM Pipes TCP UDP
The components are created in such a way that each has a universal application anywhere in the server system. Therefore, we can combine our building blocks in any way we want in order to create the optimal server structure. So, the next time you decide to use a typical server engine, make sure that its components can be lined up in the best possible way for your particular gaming project. Otherwise, you may need to change your game play to fit that server. As for our distributed server, let us take a look at how the building blocks are combined to make it work.
The diagram above shows a simplified structure (a.k.a., a program) for calculation of game objects. A distributed system consists of many such programs; they could either work simultaneously or asynchronously. When game object data are calculated, they are entered into the calculation program that determines the object’s properties via appropriate tools and formulas. In other words, the program has access to all of the scripts and formulas for game object calculation. Afterwards, the results are communicated to each user and to other game objects with which the user has interacted. This simplified diagram allows us to understand the general idea behind a distributed server system.
This is a functional diagram; it does not describe where these services are actually located on a computer. Any computer can contain services (or portions thereof) for calculation, communication and operational data storage. The exact setup depends on specific project requirements. Each group of services undergoes dynamic changes with fluctuations in data load. When a large number of users are connected, new instances of services are automatically started. Likewise, when the number of users goes down, unnecessary services are automatically closed. This work is performed by the service manager.
Possible service locations on a computer