Social game server Development Guide
I read a blog scaling a few days ago.
Farmville talked about a concept of server design. Farmville was developed by Zynga, the famous social game operator. This game has created an amazing achievement of 7.5 million monthly active users. As a fellow player, I certainly need to pay attention to it.
From graduation to now as social
Game has been around for seven months. Let's talk about my experience first.
It is a great challenge for server developers to complete a successful social game. Due to the characteristics of social game itself, due to the pattern of virus transmission, the number of user installations of social game tends to increase exponentially during the development process. Taking Farmville as an example, the number of daily active users of the game reached 1 million four days after its launch, and 10 million after 60. Nine months later, FarmVille had 28 million daily active users and 75 million monthly active users. That is to say, its monthly active users even surpassed the French population! As a Facebook application, the peak Communication Between Facebook and Facebook is about 3 Gbps.
In addition, because social game provides a free service for most users, it only relies on a small number of players to spend money to purchase game items to earn revenue, in this way, when developing the social game server, we need to provide as reliable services as possible to improve the gaming experience of users. At the same time, we also need to pay attention to cost savings and minimize unnecessary computing consumption.
Third, like all other Internet applications, social
The development cycle of game is short. To take the lead in the fierce Internet industry, you must get more users before competitors. Therefore, time is one of the key factors for product success.
Fourth, the essence of social game lies in simplicity and interaction. The former caused social game to quickly replicate competitors. Taking the classic game Happy Farm as an example, after its release at the end of the year, it triggered a farm boom on the Internet, at that time, farm games were everywhere. Technically speaking, the client of Happy Farm is flash, and the background is a Web framework. Flash can be completely decompiled, and the latter has a relatively mature high-performance WEB Framework (LAMP). Therefore, there is no high technical bottleneck in replacing the art materials and copying a social game. In addition, in order to achieve interaction, the game needs to achieve rapid growth of user scale, so that users do not lose the fun of interaction because they do not have more friends to participate, and finally leave the game. These two "essence" will cause the operator to not want the game that has just been developed to perform an Internet test, because the test may lead to a competitor's copy, moreover, the scale limit of the test will also make the number of game Users unable to meet the demand. However, if you do not perform an Internet test, it may increase the chance of server problems. The unstable service will inevitably lead to the loss of many new players, therefore, it is undoubtedly more difficult for server developers.
Balabala has a lot to talk about. Let's talk about the server design. For farmvill, user statuses contain a large amount of data information, and there are still complicated relationships between them. In this way, if you change the user's status in the game, you may need to modify a batch of data. Farmvill requires more write operations for read-write applications such as Google and Facebook. The ratio of read-write data is about, which is a high write rate. In addition, farmvill is constantly maintaining updates to provide more game function extensions, which will undoubtedly increase the server load to a large extent. As mentioned above, social game development requires resource conservation, so computing resources may not be fully sufficient during service peaks, new services and a large number of users may cause problems in the server peak service phase. Farmvill introduces a mechanism called graceful degradation mode (downgrade service)
The so-called downgrade service means that an application can dynamically close or open a service at any time. In practical applications, in order to ensure low latency and normal server operation, some services are disabled during the Load peak phase. The core idea of such a service is to ensure that users can play basic games as much as possible, even if some user experience needs to be reduced. According to this principle, in the design stage of the server, some high-load services and some extended services need to be separated by callback error handling and timeout mechanisms, disable some functional services when necessary.
References:
Http://highscalability.com/blog/2010/2/8/how-farmville-scales-to-harvest-75-million-players-a-month.html
Http://perspectives.mvdirona.com/2010/02/13/ScalingFarmVille.aspx
Http://highscalability.com/blog/2010/3/10/how-farmville-scales-the-follow-up.html