虽然从理论上讲,所有具备网络编程能力的语言,都可以作为服务端语言。

但是,都2025年了,谁还从零开始构建自己的服务器呢?

站在巨人的肩膀上,才能推进文明的进步。

从 2013 年开始,我就一直处于引擎、客户端、服务端都要涉及的状态。

在这十年中,有一些曾经流行的框架逐渐淡出了大家的视野,而有一些框架则经久不衰。

基于更新情况、易用性和流行程度,我整理了目前游戏开发中常用的框架给大家,希望对大家有帮助。

TSRPC

  • 开发语言:TypeScript

TSRPC 是一个专为 TypeScript 设计的全栈 RPC 框架,经千万级用户验证,适用于 HTTP API、WebSocket 实时应用、NodeJS 微服务等。

使用 TSRPC 可以非常容易地构建出分布式框架。

麒麟子自己的 TGX 游戏全栈开发框架,就是基于 TSRPC 构建的,真的很好用。

Colyseus

  • 开发语言:TypeScript

Colyseus 是一个多人游戏网络服务框架,提供了许多客户端 SDK,可以轻松和 H5小游戏引擎对接。

并且官方还提供了托管服务,使你部署起来非常简单。

美中不足的是,中文资料几乎为 0,对于中国大部分开发者来说,体验感不太好。

并且官方文档相对来说比较乱,并没有完整的使用教程。

英文能力不错的,并且有海外服务托管需求的开发者,可以考虑研究一下。

Skynet

  • 开发语言:lua
  • star:skynet 是云风大神开源的一套基于 c + lua 打造的轻量级 actor 模型的分布式服务端框架。

使用 skynet 可以很容易就构建出高效率、稳定的游戏服务器。

并且,还有大佬专门为 Skynet 写了一本书,叫《百万大线:大型网络游戏服务端开发》,值得一读。

曾经参与的项目中,一款 FPS 和一款 ARPG 使用过 skynet,非常顺手。

美中不足的是,lua 这个语言的生态很弱,许多东西需要自己造。

加上开发只能在 linux 环境,如果想要在windows环境下开发,需要配合虚拟机。

如果本身对 lua 熟悉,或者客户端逻辑使用的是 lua 语言,skynet 是一个不错的选择。

ET

  • 开发语言:C#

ET Framework 是一个基于 Actor 模型的 C# 服务端框架。并且配备了 Unity 客户端库,主要在 Unity 生态中比较流行。

采用 ET 框架制作的网络游戏案例很多,小到个人,大到团队都在用。

同时, ET 框架还有配套的诸多新手课程,对于熟悉 C#,或者客户端使用 C# 语言的开发者来说,非常不错。

due

  • 开发语言:Golang
  • 游戏服务端框架,其节点式的抽象架构使我们很容易写出可扩展的分布式游戏服务器。

美中不足的是使用案例较少、理解门槛较高。

但以我们的观察来看,这个项目的实用价值非常高,并且更新频繁,值得期待。

ioGame

  • 开发语言:Java

这是一个实用性非常强的 Java 游戏服务端方案,作者写了近 30 万字的说明书。

但可能是宣传比较低调,喜欢 Java 的朋友可以试试。

我的好几个朋友公司,Java 游戏服务端使用的都是这个 ioGame。

Pomelo (已停更)

  • 开发语言:Javascript

Pomelo 是网易团队开源的一个基于 NodeJS 的游戏服务端框架,配置了完整的游戏服务和Web服务。

但这个项目于 2019 年停更了。如果对 Pomelo设计理念很喜欢,想要继续使用的朋友,这里有两个变种可以选择:

Pinus

Pomelo 的 TS 版本,特性与 Pomelo 一样,只是变成了 TS 版本,不怎么更新。

Pitaya(推荐)

Pomelo 的 Golang 版本,是一个有线上产品的团队开源出来的框架,更新频率不算高,但一直保持更新。

写在最后

对于服务端框架的选择,我建议按下面的情况来选:

  • 如果有祖传的、稳定的、满足需要的方案,就优先使用。
  • 优先选择还在更新的、用的人多的
  • 优先选择编译型语言(PHP/LUA/PYTHON就算了)
  • 优先选择前后端同一个语言的

上面的这些框架,要么过于追求通用,只完成了一些底层建设,比如 TSRPC、skynet、due。

导致用户在构建项目时,依然需要完成大量的基础工作。

还有一些框架,追求大而全,塞了太多用得到和用不到的东西,学习成本很高。比如 ioGame、Pomelo、ET、ColySeus。

对此,麒麟子认为,服务端解决方案应该做到精而美,要针对具体的游戏类型进行构建,才能减少大家的使用成本。

下一篇会给大家分享网络游戏开发技术方案归类,以方便大家快速进行技术选型。

上面的框架中,如果要选的话,你喜欢哪一个呢?大家还有哪些框架要补充呢?

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐