finds.dev← search

// the find

zllangct/rockgo

★ 696 · Go · Apache-2.0 · updated Sep 2022

A developing game server framework,based on Entity Component System(ECS).

RockGO is a Go game server framework built around ECS (Entity-Component-System) with an Actor model layered on top. It targets small-to-mid sized game backends — think card games, lobby/room systems — where you want to develop single-node and deploy distributed without rewriting anything. The README is entirely in Chinese, which is fine if that's your world, but a real barrier otherwise.

The single-codebase/multi-topology deployment model is the standout idea: same code runs as single-node for dev and multi-node in prod by swapping a config file, no code changes. The protocol abstraction is clean — implementing the three interfaces (ServerHandler, Conn, Protocol) is all you need to add KCP or any reliable UDP variant. Built-in support for TCP, UDP, and WebSocket out of the box covers most game transport needs without pulling in extra dependencies. The ECS lifecycle system (Initialize/Awake/Start/Update/Destroy) makes graceful shutdown and state serialization a first-class concern rather than an afterthought.

Abandoned since September 2022 — the README even links to a rewrite (zllangct/ecs) that never shipped a stable release either, so you'd be picking up dead code. The internal RPC uses Go's stdlib net/rpc, which has known limitations (single codec, no streaming, no context cancellation in older versions) and the author explicitly admits service governance is "good enough" rather than production-hardened. No load balancing, no service discovery, no health check beyond heartbeat — the distributed story falls apart past a handful of nodes. Documentation is almost entirely Chinese with no English translation, and the example client is a Laya game engine project with a checked-in Chrome user profile directory, which tells you something about the project's release hygiene.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →