kruise-game is a free, open source gaming project written in Go and released under Apache-2.0. It has 1,079 GitHub stars, 173 forks and 47 open issues, and was last pushed 2 months ago. On this registry it ranks #39 of 40 tracked projects in Gaming, with 5 head-to-head comparisons available.

What is kruise-game?

OpenKruiseGame (OKG) is a Kubernetes workload for teams running multiplayer game servers on Kubernetes who need hot updates, per-server operations, and game-specific networking that built-in workloads do not provide.

What it is

OpenKruiseGame, often abbreviated OKG, is a multicloud-oriented, open source Kubernetes workload specialised for game server scenarios. It is a sub-project of OpenKruise, a workload project of the Cloud Native Computing Foundation, in the gaming field, and it is written in Go under the Apache-2.0 licence. Rather than replacing Kubernetes, it extends the platform with a custom workload designed specifically for game server scenarios, and it connects game servers to cloud service providers, matchmaking services, and O&M platforms while integrating logging, monitoring, network, storage, elasticity, and matching through low-code or zero-code techniques.

The concrete problem it addresses is that built-in Kubernetes workloads such as Deployment and StatefulSet tie a pod's lifecycle to its image, so publishing an image recreates pods and can interrupt player battles or change network metadata on player servers. Game servers are also stateful in most scenarios, so operations such as PVP updates and offline changes may only touch servers without online active players, and PVE suspension or merging may target servers with specific IDs. Standard Service-based networking suits stateless cases, while network-sensitive game servers need high-performance gateways, fixed IP addresses and ports, or lossless direct connections.

Key capabilities

  • Hot update and in-place update of running game servers without recreating pods, keeping player sessions intact across an image release.
  • Management of specified game servers by ID, so only servers without online active players are changed during a PVP update, and PVE servers with particular IDs are targeted during suspension or merging.
  • Network models suited to game traffic, including high-performance gateways, fixed IP addresses and ports, and lossless direct connections rather than plain Service declaration.
  • Game server orchestration that composes gateway servers and other specialised servers into the complex topologies used by MMORPG player servers.
  • Automatic integration of logging, monitoring, network, storage, elasticity, and matching through low-code or zero-code technologies during cloud-native transformation.
  • Centralised management of clusters across multiple clouds and hybrid clouds using the consistent delivery standard of Kubernetes.
  • Extension through Kubernetes templates or API calls, custom workload development, and connection to delivery systems such as KubeVela for GUI-based orchestration and full lifecycle management.

Who uses it and how

  • Game server teams migrating existing game servers onto Kubernetes who must preserve player sessions through hot updates and hot reloads rather than pod restarts.
  • O&M teams performing targeted operations on stateful servers, updating only servers without active players during PVP releases and operating on specific IDs during PVE suspension or server merges.
  • Operators running across multiple clouds and hybrid clouds who want one consistent Kubernetes delivery standard for clusters in different environments.
  • Teams integrating game servers with matchmaking, cloud service providers, and O&M platforms, or building custom release and O&M platforms on top of the workload.
  • Organisations that want a GUI-driven workflow by connecting OKG to delivery systems such as KubeVela for lifecycle management.

Getting started

The project documentation lives at https://openkruise.io/kruisegame/introduction, and the repository provides installation instructions for deploying OpenKruiseGame onto a Kubernetes cluster, after which workloads are defined through Kubernetes templates or API calls.

How it compares

OpenKruiseGame sits alongside the built-in Kubernetes workloads it extends — Deployment and StatefulSet — rather than substituting for them, since it adds game-specific behaviour such as hot update, in-place update, and per-server operations that those workloads do not offer. Among the tools named in these facts, KubeVela is a complementary delivery system OKG connects to for GUI-based orchestration, not a competing workload. No comparable standalone alternatives are named in the project materials.

When to use it — and when not

You should pick it when game servers need pod-lifecycle-independent updates, targeted operations on named servers, or game-shaped networking on Kubernetes; teams whose workloads are stateless, or who are satisfied with plain Deployment and Service behaviour, gain little from it. It is a Kubernetes custom workload, so a self-hoster or operator must run a Kubernetes cluster with CRDs installed and take responsibility for the surrounding integrations — logging, monitoring, storage, elasticity, and matching are described as integrated rather than bundled. The README also notes that game server architectures grow complex, so the operational surface extends beyond the workload itself, and there are 47 open issues to weigh against adoption.

project readme (upstream, from github) — read inline

kruise-game

License Go Report Card codecov Contributor Covenant

English | 中文

Overview

OpenKruiseGame (OKG) is a multicloud-oriented, open source Kubernetes workload specialized for game servers. It is a sub-project of the open source workload project OpenKruise of the Cloud Native Computing Foundation (CNCF) in the gaming field. OpenKruiseGame makes the cloud-native transformation of game servers easier, faster, and stabler.

What is OpenKruiseGame?

OpenKruiseGame is a custom Kubernetes workload designed specially for game server scenarios. It simplifies the cloud-native transformation of game servers. Compared with the built-in workloads of Kubernetes, such as Deployment and StatefulSet, OpenKruiseGame provides common game server management features, such as hot update, in-place update, and management of specified game servers.

In addition, OpenKruiseGame connects game servers to cloud service providers, matchmaking services, and O&M platforms. It automatically integrates features such as logging, monitoring, network, storage, elasticity, and matching by using low-code or zero-code technologies during the cloud-native transformation of game servers. With the consistent delivery standard of Kubernetes, OpenKruiseGame implements centralized management of clusters on multiple clouds and hybrid clouds.

OpenKruiseGame is a fully open source project. It allows developers to customize workloads and build the release and O&M platforms for game servers by using custom development. OpenKruiseGame can use Kubernetes templates or call APIs to use or extend features. It can also connect to delivery systems, such as KubeVela, to implement the orchestration and full lifecycle management of game servers on a GUI.

Why is OpenKruiseGame needed?

Kubernetes is an application delivery and O&M standard in the cloud-native era. The capabilities of Kubernetes such as declarative resource management, auto scaling, and consistent delivery in a multi-cloud environment can provide support for game server scenarios that cover fast server activation, cost control, version management, and global reach. However, certain features of game servers make it difficult to adapt game servers for Kubernetes. For example:

  • Hot update or hot reload

To ensure a better game experience for players, many game servers are updated by using hot update or hot reload. However, for various workloads of Kubernetes, the lifecycle of pods is consistent with that of images. When an image is published, pods are recreated. When pods are recreated, issues may occur such as interruptions to player battles and changes in the network metadata of player servers.

  • O&M for specified game servers

Game servers are stateful in most scenarios. For example, when a player versus player (PVP) game is updated or goes offline, only game servers without online active players can be changed; when game servers for a player versus environment (PVE) game are suspended or merged, you can perform operations on game servers with specific IDs.

  • Network models suitable for games

The network models in Kubernetes are implemented by declaring Services. In most cases, the network models are applicable to stateless scenarios. For network-sensitive game servers, a solution with high-performance gateways, fixed IP addresses and ports, or lossless direct connections is more suitable for actual business scenarios.

  • Game server orchestration

The architecture of game servers has become increasingly complex. The player servers for many massive multiplayer online role-playing games (MMORPGs) are combinations of game servers with different features and purposes, such as a gateway server responsible for network access, a central server for running the game engine, and a policy server responsible for game scripts and gameplay. Different game servers have different capacities and management policies. Hence, it is difficult to describe and quickly deliver all the game servers by using a single workload type.

The preceding challenges make it difficult to implement cloud-native transformation of game servers. OpenKruiseGame is aimed to abstract the common requirements of the gaming industry, and use the semantic method to make the cloud-native transformation of various game servers simple, efficient, and secure.

List of core features

OpenKruiseGame has the following core features:

  • Hot update based on images and hot reload of configurations
  • Update, deletion, and isolation of specified game servers
  • Multiple built-in network models (fixed IP address and port, lossless direct connection, and global acceleration)
  • Auto scaling
  • Automated O&M (service quality)
  • Independent of cloud service providers
  • Complex game server orchestration

Users of OpenKruiseGame (OKG)

What to do next

  • Install and use OpenKruiseGame. For more information, see Getting Started & User Manuals.
  • Submit code for OpenKruiseGame. For more information, see Developer Guide.
  • Submit issues to offer suggestions for OpenKruiseGame or discuss the best practices of cloud-native transformation of games.
  • Join the DingTalk group (ID: 44862615) to have a discussion with core contributors to OpenKruiseGame.
  • Contact us by email at zhongwei.lzw@alibaba-inc.com.

Frequently asked questions

Is kruise-game free to use?

kruise-game is open source under the Apache-2.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does kruise-game do?

Game Servers Management on Kubernetes

What is kruise-game written in?

kruise-game is primarily written in Go. Its source is publicly available at https://github.com/openkruise/kruise-game, and it has 1,079 GitHub stars.