Go Actor Game Server Framework

专注游戏逻辑,并发交给 ActorGo

ActorGo 是面向实时游戏的 Go Actor 服务端框架。用清晰的消息边界组织状态,让单机开发简单,也让集群扩展自然。

Typed HandlerAGP · HTTPNATS · RabbitMQ
ACTORGO / CORE MESSAGE PATH ONE CONTRACT
01 / UNIFIED ENTRY
AGPHTTPLOCAL
METHOD 1001 + BODY

METHOD TABLE1001 → Player.Login

02 / QUEUESingle Mailbox状态串行处理
03 / EXECUTETyped Handler注册时校验签名
SAME BUSINESS API

LOCAL进程内直接调用

CLUSTER按节点平滑扩展

CONTRACTStable Method ID所有入口共用方法表
STATESerial by default业务状态无需共享锁
SCALELocal → Cluster调用模型保持一致
TCPWEBSOCKETHTTPPROTOBUFNATSRABBITMQ

01 / ARCHITECTURE

一张方法表,
打通所有入口

外部请求不再携带 Actor Target,也不依赖函数名反射。顶层方法按稳定 Method ID 路由,内部子 Actor 才使用完整 ActorPath——边界更简单,也更安全。

ACTORGO RUNTIMEAGP
INGRESS
TCP / WebSocketBinary Packet
HTTP ActorPOST /actor/:id
METHOD ID + BODY
ACTOR SYSTEM
Typed Method Table1001 · Player.Login
01CodecJSON / PB
02MailboxSerial
03HandlerTyped
PLAYER / 10826ROOM / 42MATCH / 7
CLUSTER MESSAGE
SCALE OUT
NATSDefault · Low latency
RabbitMQOptional · MQ topology

02 / CORE CAPABILITIES

为游戏服务端
设计的运行时

从接入层到 Actor 运行时,再到集群与组件生态,ActorGo 提供一套边界清晰、可以渐进扩展的工程基础。

01

Actor 并发模型

每个 Actor 独享执行上下文,业务消息串行处理,隔离共享状态与锁竞争。

02

稳定 Method ID

Typed Handler 在初始化阶段完成签名校验,AGP、HTTP 与集群入口共用方法表。

03

统一 AGP

TCP 使用长度帧,WebSocket 一条 Binary Message 对应一个 Packet,客户端只提交方法与 Body。

04

弹性集群传输

默认 NATS,也可切换 RabbitMQ;Invoke / Notify 业务 API 与底层消息中间件解耦。

05

JSON + Protobuf

内置双 Body Codec,可按调用选择编码;集群控制面固定 Protobuf,行为清晰可预测。

06

故障边界清晰

业务 Handler、事件与定时器 panic 均有保护,单个 Actor 异常不会拖垮整个进程。

COMPONENT ECOSYSTEM
GinGORMMongoDBRedisCronGopsData Config

03 / BUILT FOR GAMES

一个模型,
适配多种玩法

Actor 将玩家、房间、场景或服务映射成独立状态单元。你可以从单机节点起步,再随在线规模平滑拆分。

查看游戏场景示例

实时对战

房间、玩家与战局独立 Actor,天然串行化状态更新。

房间服战斗服

大型世界

顶层服务与动态子 Actor 组合,按节点分布并水平扩容。

世界服场景服

长生命周期玩法

事件、定时器与分层时间轮统一编排在线状态。

SLG模拟经营

平台型服务

Gin、GORM、Mongo、Redis 等组件按需接入。

大厅社交

OPEN SOURCE · MIT LICENSE

准备好构建你的
下一个游戏世界了吗?