×
Community Blog Global Gaming Servers: How to Apply Architecture Designs to Solve Common Issues

Global Gaming Servers: How to Apply Architecture Designs to Solve Common Issues

This blog describes architecture designs for supporting global gaming servers, and examples of applying these designs to solve common issues.

Every day, the gaming industry grows at a breakneck pace, paralleling the exponential expansion of the global customer base. Network and server lag can cause sluggish responses and disconnecting from the game for game players. As a result, solving these problems has become a top priority for the game community in order to better players' experiences.Reliable servers, real-time data analysis and low-latency are essential for high-quality content and outstanding player experience.

This makes gaming a natural fit to run on cloud. Moreover, gaming companies no longer need to estimate the game servers they will need or even to make additional purchases in advance, as cloud computing offers flexible and scalable infrastructure.

Mobile gaming is now the largest segment of the gaming industry. With modern mobile technologies developed enough to handle medium-to-heavy workload games, many console gaming companies have entered the mobile segment. Mobile gaming tends to lean toward innovation, VR/AR, mobility, connectivity, and even going global. The underlying architecture for mobile gaming should be able to handle heavy workload and global connectivity while keeping costs at a minimum, making cloud computing the best choice for mobile gaming companies.

Global Gaming Servers (1): Content Acceleration and Architecture Comparison

Global Server Game Acceleration

The architecture of Global Server Game Acceleration (or Global Accelerator) is built with the centralized game servers deployed in a single region, and edge locations deployed worldwide with the accelerated public network access. Players are geographically routed to the closest edge locations through Express Connect. This aids to minimize the latency, ensures high-quality performance and availability and to realize the global acceleration.

Currently, the prime pain area of global server games is the unfair gaming experience caused by different network latencies of players located in different regions. The technical complications such as price and quality variations of dedicated network connection from the third-parties, the high O&M costs involved in the worldwide edge location deployment, complex proxies are to name a few.

Mobile Accelerator

Game developers may encounter the following problems:

  1. Slow app installation and launch
  2. Slow game loading
  3. High latency
  4. Slow interaction among the carriers like China Mobile, Unicom, and Telecom
  5. Chaotic carrier IP libraries
  6. High failure rate of server access
  7. Low availability with non-WiFi connection
  8. High packet loss rate and domain name hijacking
  9. Poor interactive experience
  10. Differences in gaming experience of the users spread across the world.

These problems make Alibaba Cloud Mobile Accelerator the most appropriate fit to resolve the "last mile" acceleration between clients and edge locations. See the following figure.

Alibaba Cloud Mobile Accelerator

Global Acceleration

With Alibaba Cloud Global Acceleration, you do not have to manually configure content delivery acceleration to edge locations, which can be complicated, and requires longtime debugging. Global Acceleration ensures you the high availability, scalability, performance, and flexible routing.

Basically, Global Acceleration provides the point-to-point acceleration by using EIPs (elastic IP addresses) to map the ECS instances or VPC Server Load Balancer instances on your centralized servers to the public network. Global Acceleration speeds up the cross-region and cross-country connection to the servers, as shown in the following figure:

Global Acceleration

Whole-Path Acceleration

By combining Mobile Acceleration with Global Acceleration, we can accelerate the entire data path from the server to the client. In this solution, Mobile Acceleration speeds up the connection between clients and edge locations based on dynamic routing, while Global Acceleration speeds up the connection between the centralized servers and edge locations through Express Connect. See the following figure.

Whole-Path Acceleration

In this article, we looked at several architecture designs for supporting global gaming servers, as well as evaluated the strengths and weaknesses of each design.

Global Gaming Servers (2): Typical System Design and Case Study

Typical System Design

Global Rankings Design

When designing a global rankings service, you must consider demand, analysis, data structure, rank data persistence, rank server SPOF issues, and other issues. A ranking service architecture is shown in the following figure:

Global Rankings Design

This architecture uses Redis to implement data at regular intervals. The game server reports rank data to the rank server. Clients pull rank data from the game server and the game server pulls rank data from the rank server.

Game Time Design

All the game servers use GMT Jan 1, 1970 00:00:00 offset (generally an absolute value of 1 for the second count) to express the in-game time. This time is synced to game clients, who use the time zone set on the cell phone to compute the game time to be displayed in the client. The specifications are shown in the figure below.

Game Time Design

Why is the game time synchronization necessary?

  1. To prevent client modifications to the local time from confusing the game logic, the client must use the server time.
  2. Basically all techniques to solve game status synchronization problems, such as predictive pull or server verification sync, require time synchronization.
  3. In games, some timed events or time-related gameplay features require a standard and uniform game server time to ensure fair play.
  4. During the client and server communication, a more secured method is to add a timestamp to each packet so that the server can verify the validity of the packets.

Game Data Synchronization

Solution 1: Use a Cache for Instant Data Writeback

In this method, data is stored centrally and the local caches instantly write data back to the database. The specific architecture is shown in the following figure.

Use a Cache for Instant Data Writeback

Currently, there are two main scenarios that involve data synchronization:

Scenario 1 Players log on in their local regions (explanation marked in red text in the previous figure).

  1. The database proxy reads role data from the database.
  2. The database proxy inserts the role data into the cache.
  3. The role data read from the cache is used in computing.
  4. When the data changes, the cache data and database data are updated simultaneously.
  5. When players exit the game, the data in the cache is deleted.

Scenario 2 Players log on across regions.

  1. First, the system checks if the player is logged on in another region. If yes, it goes to step 2. If no, it goes to step 3.
  2. The player's role data is written back to the database and deleted from the cache when the player is logged out.
  3. The database proxy reads role data from the database.
    The database proxy inserts the role data into the cache.
  4. The role data read from the cache is used in computing.
  5. When the data changes, the cache data and database data are updated simultaneously.
  6. When players exit the game, the data in the cache is deleted.

Solution 2: Real-time Regional Database Synchronization

The various regional databases are synchronized in real time. You can accomplish this using Message Service or Alibaba Cloud DTS. Each of the regional databases store data for all players.

Real-time Regional Database Synchronization

Advantages:

The players can play the game from different regions, their data need not be migrated. All regions support local data reading and writing.

Disadvantages:

The asynchronous data synchronization can produce data inconsistencies. If the player uses a VPN to access the game, a transient VPN disconnection can cause the player to log on again in another region. If data synchronization messages are lost or delayed, the data read when a player logs in again may not be up to date.

The various regions contain all player data, so real-time synchronization may put a high level of pressure on the database. Real-time synchronization between regional databases demands a great deal of cross-region leased line bandwidth.

Solution 3: Cross-Region Data Update

When a player logs on from a different region, the player's local server must remotely read combat data. The combat results call an API to trigger a data update on the local server.

Cross-Region Data Update

Advantages:

For players in the same region, role data is read/written to/from the nearest local node.

Disadvantages:

The implementation logic is complicated. All gameplay results must be abstracted to an interface and data is centrally changed by the original server interface.

Solution 4: Remote Data Migration

When a player logs on from a different region, the player data is remotely migrated from the player's previous server. Each time a player logs on, the system must check if data migration is required.

Remote Data Migration

Game Localization Solutions

Game localization is an important factor for consideration of games seeking to enter overseas markets. Games, either being released overseas or looking to expand to new regions must be attentive to localization work. The general approach is to build a standard client installation package, which contains several basic material packages, art material packages for different languages, and some program materials. This allows the game to be dynamically rendered based on the phone's language version.

There are three common installation strategies:

  1. After the client installation package is downloaded, the user manually sets the language version. Such large packages contain various language packs and support one-click language selection.
  2. When the game is installed on the client, it detects the language used by the mobile device to dynamically select the language version to install. These installation packages generally have a built-in default language and, if another language is needed, a language pack is downloaded from the Internet.
  3. Different language versions of the client installation package are submitted to the app store. Then, different installation package versions are served to different regions. Each installation package must be customized.

This article shows specific examples of applying architecture designs to solve common issues in the gaming industry.

Related Products

Global Accelerator

Global Accelerator is a network acceleration service, benefiting from the high-quality bandwidth and global transmission networks that are provided by Alibaba Cloud. Global Accelerator enables nearby access to the Internet and cross-region deployment of applications, improving the user experience of Internet services. Global Accelerator features high network quality, high security, high availability, and low latency. In addition, Global Accelerator can be activated within several minutes, making service deployment more agile.

Related Documentation

Global Accelerator overview

This topic describes the service of Global Accelerator (GA). Each GA instance is an acceleration service running on a global scale. GA provides six types of GA instance specifications with different acceleration capabilities to help you meet the diverse needs in different scenarios.

0 0 0
Share on

Alibaba Clouder

2,554 posts | 577 followers

You may also like

Comments