欢迎使用 pomelo
Pomelo 是一个游戏服务器框架,与以往单进程的游戏框架不同,它是高性能、高可伸缩、分布式多进程的游戏服务器框架,并且使用很简单。它包括基础开发框架和一系列相关工具和库,可以帮助开发者省去游戏开发中枯燥的重复劳动和底层逻辑工作,免除开发者的重造轮子,让开发者可以更多地去关注游戏的具体逻辑,大大提高开发效率。Pomelo 强大的可伸缩性和灵活性使得 pomelo 也可以作为通用的分布式实时应用开发框架,用于一些高实时应用的开发,而且 pomelo 在很多方面的表现甚至超越了现有的开源实时应用框架。Pomelo 支持所有主流平台的客户端,并提供了客户端的开发库,使得客户端的开发变得很友好。Pomelo 当前可用最高版本为 shudingbo 所发布的升级版本 sex-pomelo,网址: https://github.com/sex-pomelo/sex-pomelo,本文发稿前最后更新日期为 2021 年 11 月 27 日,编者实测支持 node.js 最高版本为 v16.14.0 ,经真实部署检验一年多运行稳定可靠。更高 node.js 版本未经尝试。
Pomelo 组成
Pomelo 是由一系列相互之间弱耦合的部分组合而成的,包括:- 框架:
框架是 pomelo 最核心的部分; - 库:
Pomelo 提供了很多库,有些是跟游戏逻辑完全相关的,如 AI、AOI、寻路等;也有与游戏逻辑无关但比较通用的,如定时任务执行、数据同步等等; - 工具:
Pomelo 提供了服务器管理控制工具、命令行工具、压力测试工具等一系列工具; - 客户端库:
Pomelo 提供了各类平台的客户端开发库,包括js、C、C#、Android、iOS、Unity3D等等,几乎支持涵盖了目前所有的主流平台,由于 pomelo 的协议是开放的,架构耦合松散,对于没有支持的客户端平台,用户也可以很容易地开发出自己需要的库,定制自己的通信协议; - Demo:
一个框架需要强大的 demo 来展示功能并为开发者提供示例,Pomelo 提供了全平台的聊天 demo 和基于 HTML5 的捡宝 demo,系统还提供了一个强大的基于 HTML5 开发的 MMO 游戏 demo Lordofpomelo(源码)。
为什么使用 pomelo ?
高并发、高实时的游戏服务器的开发是很复杂的工作。跟 web 应用一样, 一个好的开源容器或开发框架可以大大减少游戏服务器开发的复杂性,让开发变得更加容易。遗憾的是目前在游戏服务器开发领域一直没有太好的开源解决方案。 Pomelo 将填补这个空白, 打造一款完全开源的高性能高并发游戏服务器框架。Pomelo 的优势有以下几点:
- 架构的可伸缩性好:
采用多进程单线程的运行架构,扩展服务器非常方便,Node.js 的网络 io 优势提供了高可伸缩性,写好的应用只需要简单地修改一下配置就能轻松地伸缩扩充; - 易用:
Pomelo 基于轻量级的 nodejs,其开发模型与 web 应用的开发类似,基于 convention over configuration 的理念, 几乎零配置, api 的设计也很精简,很容易上手,开发快速; - 框架的松耦合和可扩展性好:
遵循 node.js 微模块的原则, 框架本身只有很少的代码,所有 component、库、工具都可以用 npm module 的形式扩展进来,任何第三方都可以根据自己的需要开发自定义 module,并把它整合到 pomelo 的框架中。 - 完整的 demo 和文档:
Pomelo 提供了完整的中英文文档,Pomelo 还提供一个完整的开源 MMO 游戏 demo—— Lordofpomelo(源码),一个超过 1 万行代码的游戏 demo,使开发者可以随时借鉴 demo 的设计与开发思路。
Pomelo 的定位
Pomelo 是一个轻量级的服务器框架,它最适合的应用领域是网页游戏、社交游戏、移动游戏的服务端,开发者会发现 pomelo 可以用如此少的代码达到强大的扩展性和伸缩性。当然还不仅仅是游戏,用 pomelo 开发高实时 web 应用也如此合适, 而且伸缩性比其它框架好。不推荐将 pomelo 用于大型的 MMORPG 游戏开发,尤其是大型 3D 游戏, 还是需要象 Bigworld 这样的商用引擎来支撑。
好了,是不是有迫不及待了,那就赶快安装一个 sex-pomelo 来试试吧。