OCGI (Open Cloud-native Game-application Initiative) is a opensource project created by Tencent Games Computing Resources Team, which mainly solves the problems when running and scaling game server on Kubernetes cluster.
Generally speaking, the online multiplayer games such as competitive FPSs and MOBAs, require a dedicated game server which simulating game worlds, and players connect to the server with separate client programs, then playing within it.
Dedicated game servers are stateful applications that retain the full game simulation in memory. But unlike other stateful applications, such as databases, they have a short lifetime. Rather than running for months or years, a dedicated game server process will exit when a game is over, which usually lasts a few minutes or hours.
The Kubernetes Statefulset workload does not manage such applications well. So we developed this project to make game servers runing and scaling better on Kubernetes.
-
Application Interactive Update
Support application interactive update, delete the replica only after the application confirmed. This is very important for game server, but the Deployment and Statefulset can not support this.
-
In-place Update
Support in-place update image, and the Pod will not be recreated. The local cache data of GameServer can be retained when updating.
-
Multiple Pod Auto-scaling Strategies
Support multiple modes (resource metrics/custom metrics/timing/events/webhook) Pod auto-scaling strategies. In many cases, the application wants to specify the number of service replicas by itself, which can be achieved through webhooks.
-
Application-defined Scaling-down Order
Application can define the scaling-down order of replicas. For example, application can choose the game server replica with least user-accessed to delete. This can not only reduce the cost of scaling-down, but also improve the resource utilization.
-
Better Cluster Auto-scaling
It can be seamlessly integrated with the cluster auto-scaling. Based on the application-confirmed mechanism, can choose any replica to delete after application confirmed when cluster scaling-down.
OCGI Workload Specification.
Welcome to contribute and improve OCGI.
For any question, welcome to contact us via:
OCGI is licensed under the Apache License, Version 2.0. See LICENSE for the full license text.