本文链接:Pomelo:网易开源基于 Node.js 的游戏服务端框架
编译来源:梦想天空 ◆ 关注前端开发技术 ◆ 分享网页设计资源
Pomelo 是基于 Node.js 的高性能、分布式游戏服务器框架。它包括基础的开发框架和相关的扩展组件(库和工具包),可以帮助你省去游戏开发枯燥中的重复劳动和底层逻辑的开发。Pomelo 不但适用于游戏服务器开发, 也可用于开发高实时 Web 应用,它的分布式架构可以使 Pomelo 比普通的实时 Web 框架扩展性更好。
Pomelo 特性
- 快速、易上手的游戏开发模型和api
- 高可伸缩的多进程架构, 支持MMO的场景分区和其它各类分区策略
- 方便的服务器扩展机制,可快速扩展服务器类型和数量
- 方便的请求、响应、广播、服务器通讯机制, 无需任何配置
- 注重性能,在性能、可伸缩性上做了大量的测试、优化
- 提供了较多扩展组件,包括游戏开发常用的库和工具包
- 提供了完整的MMO demo代码(客户端html5),可以作为很好的开发参考
- 基于socket.io开发,支持socket.io支持的多种语言客户端
Pomelo 的框架介绍
Pomelo Framework的组成架构如图所示:
- Server management, pomelo 是个真正多进程、分布式的游戏服务器。因此各游戏server(进程)的管理是pomelo很重要的部分,框架通过抽象使服务器的管理非常容易。
- Network,请求、响应、广播、RPC、session 管理等构成了整个游戏框架的脉络,所有游戏流程都构建在这个脉络上。
- Application, 应用的定义、component管理,上下文配置, 这些使pomelo framework的对外接口很简单, 并且具有松耦合、可插拔架构。
Pomelo 的架构设计目标
- 服务器(进程)的抽象与扩展
在 web 应用中, 每个服务器是无状态、对等的, 开发者无需通过框架或容器来管理服务器。 但游戏应用不同, 游戏可能需要包含多种不同类型的服务器,每类服务器在数量上也可能有不同的需求。这就需要框架对服务器进行抽象和解耦,支持服务器类型和数量上的扩展。
- 客户端的请求、响应、广播
客户端的请求、响应与 web 应用是类似的, 但框架是基于长连接的, 实现模式与 http 请求有一定差别。 广播是游戏服务器最频繁的操作, 需要方便的 API, 并且在性能上达到极致。
- 服务器间的通讯、调用
尽管框架尽量避免跨进程调用,但进程间的通讯是不可避免的, 因此需要一个方便好用的 RPC 框架来支撑。
- 松耦合、可插拔的应用架构。
应用的扩展性很重要, pomelo framework 支持以 component 的形式插入任何第三方组件, 也支持加入自定义的路由规则, 自定义的 filter 等。
为什么使用pomelo?
高并发、高实时的游戏服务器的开发是很复杂的工作。跟 web 应用一样, 一个好的开源容器或开发框架可以大大减少游戏开发的复杂性,让开发变得更加容易。遗憾的是目前在游戏服务器开发领域一直没有太好的开源解决方案。 pomelo 将填补这个空白, 打造一款完全开源的高性能(并发)游戏服务器框架。 pomelo 的优势有以下几点:
- 架构的可伸缩性好。 采用多进程单线程的运行架构,扩展服务器非常方便, node.js 的网络 io 优势提供了高可伸缩性。
- 使用非常容易, 开发模型与web应用的开发类似,基于 convention over configuration 的理念, 几乎零配置, api 的设计也很精简, 很容易上手。
- 框架的松耦合和可扩展性好, 遵循 node.js 微模块的原则, framework 本身只有很少的代码,所有 component、库、工具都可以用 npm module 的形式扩展进来。任何第三方都可以根据自己的需要开发自定义 module。
- 提供完整的开源 MMO 游戏 demo 参考,一个超过1万行代码的游戏 demo,使开发者可以随时借鉴 demo 的设计与开发思路。
如何使用pomelo开发?
通过以下参考资料将使我们很快地熟悉 pomelo 的全貌与开发过程:
通过demo代码的学习将使你熟悉一个完整MMO游戏的开发:
您可能还喜欢
相关推荐
基于Node.js的游戏服务器框架pomelo
网易同事 周永昶 基于node.js的高可扩展游戏服务器框架 设计与实现 Node.js与游戏服务器; 游戏服务器框架的可扩展性和设计,以及pomelo的框架
, ——谢骋超(@圈圈套圈圈)网易Pomelo开源分布式网络游戏框架总负责人, 本书是我看过的最贴近实战开发的Node.js书籍之一,虽然它由4位作者合力完成,写作风格难免有所不同,但是通读本书后,4位作者带来的精彩章节...
Node.js在屌丝创始人的努力下如何在短短几年内取得巨大成功,pomelo框架在开源社区的发展情况,以及其设计理念及架构。
pomelo-node-tcp-client 用于Pomelo框架的Node.js TCP客户端库。指示使用npm install pomelo-node-tcp-client 用法: var Pomelo = require ( "pomelo-node-tcp-client" )pomelo . init ( "127.0.0.1" , 3010 , { } ...
Pomelo-用于node.js的快速,可扩展的游戏服务器框架 Pomelo是用于的快速,可扩展的游戏服务器框架。 它提供了基本的开发框架和许多相关的组件,包括库和工具。 Pomelo还适用于实时Web应用程序。 它的分布式体系结构...
官方网站: ://pinus.io欢迎加Pinus官方QQ群:102530089 示例工程请参见: : ...协议与pomelo一样,所以pomelo的客户端代码可以直接对接上pinus服务端。 框架编译方法 git clone https://github.com/node-pinus/pi
pomelo 是由网易开发的基于node.js开发的高性能、分布式游戏服务器框架, 也可作为高实时web应用框架。 Pomelo的应用范围 pomelo最适合的应用领域是网页游戏、社交游戏、移动游戏的服务端,开发者会发现pomelo可以...
Hades是一个基于和的游戏服务器框架。 Hades框架使用简单的实体定义和导出器工具,这些工具会自动生成逻辑代码和配置,以使您轻松快速地进行服务器开发。 有关使用Hades的更多信息,请参见 发布版本 Hades现在以...
Xian.js是基于Node.js的跨平台云引擎和巨型游戏世界框架,前端支持多平台使用Html5/Javascript,后端支持主要云平台使用Node.js通过V8引擎。 先芯 目标和特点 游戏客户端和服务器端的ECS框架,即使在运行时也易于...
pomelo-citrus是一个使用Ruby编程语言开发的开源游戏服务器框架,其软件架构和设计均来源于pomelo并已实现了pomelo的大部分功能。 标签:pomelo
nodejs 服务端 游戏框架——pomelo 的编译后版本,应用于: npm install pomelo 安装失败,vc++ 编译不通过 的情况 请解压本压缩包,直接复制本模块到项目
pomelo-cocos2d-js 是 Pomelo 的 Cocos2d-js 客户端。var pomelo = window.pomelo; var route = 'gate.gateHandler.queryEntry'; var uid = "uid"; var rid = "rid"; var username = "username"; ...
网易pomelo 1.2.3修改内容es6语法依赖库升级socket.io 1.7.x使用说明 => => 其他插件双向频道: Pomelo-用于node.js的快速,可扩展的游戏服务器框架Pomelo是用于的快速,可扩展的游戏服务器框架。 它提供了基本的...
网易出品的网页游戏框架 ###字符格式 ###网页模板引擎 ###图片处理 ###运维 ##性能测试 ##活跃开发者(排名不分先后) ##开源案例 收集Cnode的开源项目 ###社交类 ###工具类 ##商业应用 小米手机抢购 网易pomelo消息...
Pomelo.EntityFrameworkCore.MySql Pomelo.EntityFrameworkCore.MySql是用于MySQL兼容数据库的最受欢迎的Entity Framework Core提供程序。 它支持EF Core 3.1(及更低版本),并使用进行高性能数据库服务器通信。...
mydog-一个node.js游戏服务器 家 安装 npm install mydog -g 用法 Wiki( ) QQ群 875459630
java8 看不到源码Pomelo.EntityFrameworkCore.MyCat Pomelo.EntityFrameworkCore.MyCat 是一个 Entity ...基于阿里巴巴开源项目Cobar,其稳定性、可靠性、优秀的架构和性能,以及众多成熟的用例,让M
Pomelo-用于node.js的快速,可扩展的游戏服务器框架 Pomelo是用于的快速,可扩展的游戏服务器框架。 它提供了基本的开发框架和许多相关的组件,包括库和工具。 Pomelo还适用于实时Web应用程序。 它的分布式体系结构...
quick-pomelo 是网易 Pomelo 游戏框架深度优化版。高性能和可伸缩快速内存数据访问分布式架构,系统可以水平扩展 分布式 ACID 事务在分布式环境支持 ACID(Stands for Atomicity, Consistency, Isolation, Durability...