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游戏的开发:

您可能还喜欢

nodejs 游戏框架_Pomelo:网易开源基于 Node.js 的游戏服务端框架相关推荐

  1. Pomelo:网易开源基于 Node.js 的游戏服务端框架

    Pomelo 是基于 Node.js 的高性能.分布式游戏服务器框架.它包括基础的开发框架和相关的扩展组件(库和工具包),可以帮助你省去游戏开发枯燥中的重复劳动和底层逻辑的开发.Pomelo 不但适用 ...

  2. 基于 Node.js + Koa 构建完整的 Web API (配置 ESLint 和使用 Airbnb 编码规范)

    主题内容:基于 Node.js + Koa 构建完整的 Web API (配置 ESLint 和使用 Airbnb 代码规范) 背景描述:上一篇 基于 Node.js + Koa 构建完整的 Web ...

  3. pomelo + vscode + typescript搭建可约束可调试的游戏服务端框架

    说在前面 pomelo: 它是网易开源的一套基于Node.js的游戏服务端框架,详情请戳这里关于pomelo的种种这里不详细说.点击链接查看详情.但是由于pomelo是js项目,使用起来的时候并不是很 ...

  4. Node.js之十大Web框架

    Node.js之十大Web框架 之前接触过Node.js是因为好奇大前端越来越能干了,连我后台的饭碗都要抢了,太嚣张了,于是我想打压打压它,然后就这样接触它了. 再到后来是因为Settings-Syn ...

  5. 基于Node.js+Express+MySQL的爱心助农电商管理系统的设计与实现(附源码)

    摘要 2020年新型冠状病毒突如其来,在疫情的影响下,全国各个地区的农产品销售均不同程度的出现了需求信息不畅,农产品管理困难,订单物流模糊,农产品滞销等问题的出现.与此同时2020年也是我国全面小康, ...

  6. 基于Node.js自我展示博客网站-计算机毕设 附源码231547

    自我展示博客网站的设计与实现 摘 要 个人博客网站是当今网络的热点,个人博客技术的出现使得每个人可以零成本.零维护地创建自己的网络媒体,Blog站点所形成的网状结构促成了不同于以往社区的Blog文化, ...

  7. Node.js学习笔记(七)#Express框架

    目录 一.Express框架简介 二.安装和使用 1.安装 2.用express创建基本Web服务器 三.Express路由 1.路由概念 2.创建基本路由 ①.创建一个简单的get路由 ② 创建一个 ...

  8. Node.js毕业设计——基于Node.js+JavaScript+MongoDB的供求信息网站设计与实现(毕业论文+程序源码)——供求信息网站

    基于Node.js+JavaScript+MongoDB的供求信息网站设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于Node.js+JavaScript+MongoDB的供求信息网站设计 ...

  9. 晒晒我的Ajax服务端框架

    注意:本文所介绍的框架已有新版本,点击后面链接即可阅读. [写自己的ASP.NET MVC框架] 今天晒晒我的Ajax服务端框架. 自从接触JQuery-EasyUI后,我对Ajax越来越感兴趣了.也 ...

  10. node mysql商城开发_NideShop:基于Node.js+MySQL开发的微信小程序商城开源啦

    NideShop:基于Node.js+MySQL开发的微信小程序商城开源啦 发布时间:2020-04-14 04:23:37 来源:51CTO 阅读:2894 作者:ch10mmt 高仿网易严选的微信 ...

最新文章

  1. Django使用数据库(Mariadb/Mysql)
  2. firefox让标签栏显示在地址栏的下面的方法
  3. Linux 移动或重命名文件/目录-mv 的10个实用例子
  4. ROS系统 常用命令行工具的使用
  5. Python 技术篇-用os库实现删除本地文件、非空文件夹方法,python判断本地文件、文件夹是否存在方法
  6. python 识别数字字母 训练集_Python 实现训练集、测试集随机划分
  7. php ip 合法,什么是合法ip地址
  8. linux的常用操作——read函数和write函数
  9. 科技范足 多家上市川企获省科技进步奖
  10. 【Ardunio】开发入门教程【二】数据类型
  11. XXX required a bean of type ‘XXXXXXXX‘ that could not be found ,博客可帮忙找错
  12. 【Spring-DEBUG记录】Dependency ‘org.aspectj:aspectjweaver:‘ not found
  13. PySimpleGUI:快速开始
  14. Excel导出数据 基于注解实现 复制即可用
  15. sql server存储过程练习
  16. 头像哟(^U^)ノ~YO
  17. 《自然语言处理实践——聊天机器人技术原理与应用》(王昊奋)简要笔记(全)
  18. 你的域名前要加www吗?
  19. bzoj1934【shoi2007】Vote善意的投票
  20. Python openjudge 练习025:正常血压

热门文章

  1. 雷达原理---匹配滤波器原理及MATLAB仿真
  2. CSS国际化loader - 国际化图片,中东区域适配
  3. 人工手摇机械式计算机,用袖珍式计算机处理螺旋伞齿轮调整卡
  4. UE4 虚幻引擎,3D数学(一),3D坐标系,2D坐标系
  5. paho.mqtt.c的Linux编译与交叉编译
  6. ivx中字体显示_Windows 7 中的 SimSun-ExtB 是什么字体,为何与中易宋体 SimSun 显示出来不一样?...
  7. STM32示波器设计
  8. 私有云的Eucalyptus简介
  9. 单元测试报告软件测试,软件单元测试报告-模板
  10. 如何快速深入理解监控知识?