找回密码
 立即注册
搜索

大家都在用的开源游戏服务端框架大盘点

2024-11-20 15:49| 发布者: admin| 查看: 71| 评论: 0|来自: 知乎

摘要: 虽然从理论上讲,所有具备网络编程能力的语言,都可以作为服务端语言。但是,都2024年了,谁还从零开始构建自己的服务器呢?站在巨人的肩膀上,才能推进文明的进步。麒麟子从 2013 年开始,就一直处于引擎、客户端、 ...
虽然从理论上讲,所有具备网络编程能力的语言,都可以作为服务端语言。

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

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

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

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

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

TSRPC

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

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

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

Colyseus

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

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

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

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

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

skynet

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

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

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

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

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

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

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

ET

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

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

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

due

这是一个服务端大佬使用 Golang 编写的高性能游戏服务端框架,其节点式的抽象架构使我们很容易写出可扩展的分布式游戏服务器。

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

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

ioGame

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

但可能是宣传比较低调,star 数量并不高。喜欢 Java 的朋友可以试试。

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

Pomelo(已停更)

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

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

Pinus

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

Pitaya(推荐)

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

写在最后

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

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

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

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

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

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


路过

雷人

握手

鲜花

鸡蛋

QQ|Archiver|手机版|小黑屋|软件开发编程门户 ( 陇ICP备2024013992号-1|甘公网安备62090002000130号 )

GMT+8, 2024-11-21 14:20 , Processed in 0.040714 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

返回顶部