Skip to main content

Technical overview of AGS

Last updated on October 29, 2024

Overview

AccelByte Gaming Services (AGS) is a fully managed Software-as-a-Service (SaaS) platform developed by AccelByte. AGS enables game developers to build and launch their online games without having to develop and manage their own backend services.

Components

AGS includes these components out of the box:

  • Service endpoints: Services grouped into multiple logical service areas.
  • Game SDKs: The SDKs cover Unreal and Unity (talk to us if your game uses another game engine).
  • Admin Portal: You can use this web portal to administer AGS modules and change their behavior to suit your game.
  • Server SDK to extend AGS: This includes custom services and custom tooling to solve specific game needs.

Services Architecture

The first thing to know about AGS is that the services are organized as loosely coupled microservices, each serving a set of REST APIs. This section covers some other important points about the services.

We adopted Open Authorization (OAuth 2.0) as the standard to authorize all clients (public and confidential) to communicate with AGS. All communication between various microservices and clients is secured using JSON Web Tokens (JWT).

The services communicate with each other either Synchronously (using REST HTTPS calls), or using Asynchronous Messaging using Message Broker.

AGS clients communicate with the services using HTTPS. This includes the game client, game server, website, or any custom tools. The one exception is the Lobby Servicewhich uses persistent secure WebSocket (WSS) connections.

Lastly, each microservices manages its own persistence logic, to minimize the blast radius whenever things go wrong in individual services. Since AGS supports multiple games natively, every AGS component uses namespaces to handle logical partitioning of player data for each game.

AGS Overview

Deployments and Namespaces

AGS supports two models of deployments: Public Cloud and Private Cloud. For both models, AccelByte is responsible for maintaining and operating the environments 24x7.

AGS is designed to handle one studio (root) namespace, as well as multiple game namespaces. Namespaces act as a logical partitioning on all player data and service configurations, and every AGS component adheres to this principle.

More details about namespace management can be found in the Access Service Guides.

Scalability

Every Service in AccelByte Gaming Services supports a response time target of less than 200ms (in and out from our data center). We also have internal goals for horizontally scalable throughput (requests per minute) per unit of infrastructure. These goals vary based on the nature of the service.

We start performance testing once the software is stable. We simulate how our users use our services and create load test clients to simulate the concurrent load caused by that usage profile. In the course of our performance testing, several different tests are done.

  • Load test - These tests ensure the service is stable under its expected capacity and the expected throughput and response time requirements are met.
  • Scalability test - These tests ensure throughput scales horizontally (up and down) with the amount of parallel hardware.
  • Resilience test: Tests that ensure our services will behave correctly under unexpected conditions (e.g., unavailable dependencies due to network failure). These test also check that services will return errors to the callers but not create cascading effects on other components.
  • Stress test A special case of resilience test when higher than normal load is encountered (e.g., caused by unexpected events of failure on hardware scaling)

An iterative approach is used in load testing our services as illustrated in the diagram below.

Performance Testing Lifecycle

Security and Compliance

AccelByte takes information security seriously. We have implemented best practices for protecting customer data across all our systems, processes, and products. Specifically, AccelByte has implemented the appropriate internal controls to meet the ISO 27001 requirements. These requirements provide a comprehensive framework for managing information security risks, including those associated with software development and deployment. This covers topics such as access control, network security, incident management, and information security governance. AccelByte is ISO 27001 compliant.

AccelByte contracts with an independent third-party cybersecurity vendor to perform regular penetration testing against the AGS infrastructure and services.

In addition to these internal information security measures, AGS also provides features that helps you ensure your game's compliance with the European Union's General Data Protection Regulation (GDPR), as well as the California Consumer Privacy Act (CCPA) of the state of California.

For more information, see Introduction to legal compliance.

24x7 Monitoring and Operation

AGS maintains comprehensive logging, monitoring, and alerting for every component of our backend. This includes data from infrastructure system components along with applications and services.

Every client and game environment (development and production) is monitored by our 24x7x365 Live Operations (LiveOps) team with detailed runbooks for troubleshooting and mitigating incidents detected by our monitoring systems, or reported by our clients and their players. LiveOps incident response time, as well as time to resolution or mitigation, for production environments is backed by our SLA.

The AGS monitoring tech stack is made up various components including Open Telemetry collectors, Prometheus, and fluentd. These components collect metrics, logs, and traces and send them to our monitoring platform. The monitoring platform is configured with numerous alerts that our Live Operations team are constantly triaging and monitoring 24x7.

Cross-Platform Support

AGS natively supports cross-platform with these capabilities:

  • Cross-Identity: Login from multiple platforms, and linking a single AccelByte account to multiple platform identities.
  • Cross-Presence: Enforcement of Single Point of Presence from the Lobby service.
  • Cross-Progression: Store player progression on Cloud Save or Stats so players can continue their progression on another platform.
  • Cross-Play: Cross-Platform Matchmaking Engine. This includes automatic sync of Session and Party information to the user's current Platform.
  • Cross-Social: Platform agnostic Friends List.
  • Cross-Commerce: Virtual Wallet system and Entitlement Sync to reconcile and fulfill purchases from Platform Stores.
  • Customizing and Extending AGS: AGS supports code-level customization and extensions using the AGS Server SDK.

You can customize (or override) AGS built-in functionality by registering your own gRPC server endpoint on specific service endpoints. For instance, you can provide a gRPC endpoint to override Matchmaking matching logic, Loot Box behavior, etc. For more details, please refer to the individual AGS service guides to identify which services and features support code-level customization.

You can also extend AGS capabilities by using the Server SDK (available in languages such as Golang, Java, and Python) to write your own Backend service endpoints, or to write your own tools that fit your workflow better. For more details, please refer to the Extend documentation.