写点什么

网易 NodeJS 开源游戏框架 pomelo 访谈

  • 2012-11-20
  • 本文字数:2764 字

    阅读完需:约 9 分钟

AI 大模型超全落地场景&金融应用实践,8 月 16 - 19 日 FCon x AICon 大会联诀来袭、干货翻倍!

被采访者介绍:

谢骋超,网易杭州研究高级程序专家,2006 年浙江大学硕士毕业后加入网易,参与过网易博客开发,主持过博客圈子,及开放平台等开发,2 年前转向游戏开发领域。 专注于服务端开发技术,对高性能高并发网站(游戏)的架构设计、调优有较丰富经验。 对 node.js 与 java 开发有丰富的经验。目前是 pomelo 开源游戏框架负责人。微博: @圈圈套圈圈 twitter: @xiecc

谢骋超曾在 9 月份的 HuJS 活动中分享过“Node.js 游戏服务器开发 ”的话题。目前他准备对相关研究成果 pomelo 框架进行开源发布,InfoQ 对其进行了专访。

InfoQ:能不能介绍一下 pomelo 的起因及发展历程?

从 2011 年下半年开始, 我们在游戏开发上有了些积累,希望在游戏服务器上有更前沿的研究,在技术选型时我们比较了 erlang, node.js,java 等多种语言,发现 node 很适合做开发游戏服务器,它的事件 IO 模型与单线程应用模型跟游戏服务器简直是绝配。于是在 2011 年 11 月, 我们正式立项并取名项目为 pomelo。

项目的开发经历了原型、框架开发、demo 开发,性能优化, 不断重构、调优、整理等几个阶段。

我们的原型开发只经历了一个月, 当时做了个很简单的捡宝游戏; 框架的抽取和开发是项目最难的阶段, 要定义抽象出框架模型很难, 而且我们是多进程的应用框架, 完全没有蓝本参考, 到了 2012 年 4 月终于完成了框架雏形;之后的 demo 开发比较快, 我们用了一个半月时间就搭建了一个 HTML5 客户端的网页版的 MMORPG, 并在 6 月底的 node party 上小试牛刀了一把;然后我们用了两个月时间做压力测试和性能调优,做了一些性能优化的工具,并把遇到的性能瓶颈都解决了;到了 9 月之后我们的主要工作就是重构、文档, 不断地优化接口,并在 11 月 20 日左右开源我们的框架。

InfoQ:给这个框架命名为“pomelo”的含义是什么?它有什么特点?

pomelo 的中文含义是柚子, 当时是想借某水果公司的光环,而且这个名字够短, 读起来也有点酷酷的感觉。我们的 logo 是切成两半的柚子, 代表着分享、开源。

pomelo 包含了框架、工具集、库三部分。它最大的特点是将易用性和可伸缩性结合得非常好,我们会发现写一个非常复杂的多进程游戏运行架构只需要很少的代码。

InfoQ:请介绍一下 pomelo 在网易的使用情况吧。另外你觉得它最适合的应用领域是什么?

pomelo 到现在为止刚刚一年,刚刚可以使用,目前公司内部的一些团队正在试用, 但还没有在网易线上的游戏中使用。 它最适合的应用领域是网页游戏、社交游戏、移动游戏的服务端,开发者会发现 pomelo 可以用如此少的代码达到强大的扩展性和伸缩性。 当然还不仅仅是游戏,很多人断言未来的 web 时代是实时 web 应用的时代, 我们发现用 pomelo 开发高实时 web 应用也如此合适, 而且伸缩性比其它框架好。

我们不推荐将 pomelo 用于大型的 MMO rpg 游戏开发,尤其是 3d 游戏, 还是需要象 bigworld 这样的商用引擎来支撑。

InfoQ:pomelo 面向的群体是哪些人?要掌握其使用需要哪些技能?有哪些资源可供开发者学习和应用?

pomelo 面向的群体是国内外网页、移动、社交游戏的开发团队,或开发高实时 web 应用的团队,即使以前没有游戏开发的经验,通过简单的学习也很容易上手。

pomelo 的目标是让本来游戏开发经验不多的人能迅速上手开发游戏,而且做出的游戏天然有很强的扩展性和可伸缩性,可直接在产品环境上跑,而不象一些游戏教程只能做出支撑很少在线用户。

开发者需要掌握 javascript 和 node.js 的开发知识, 也要学习一下 pomelo 框架。幸好这几项技术都比较容易上手, node.js 的异步事件 io 需要一点点时间适应, 但这样的学习完全是值的。

node.js 的学习可以去 node.js 官网: nodej.org ,cnode 社区 cnodej.org infoq 的 node 社区内容也不错, howtonode 是个不错的学习博客,只是最近更新稍慢。

pomelo 的学习可以去我们的 wiki , pomelo 的官方网站,和pomelo 的 github

InfoQ:现在有没有和 pomelo 类似的框架?能否请比较一下他们的优势与劣势?

目前没有发现与 pomelo 完全类似的框架, 尤其将多进程应用架构和服务器扩展做的这么简单,属完全创新。

游戏服务器框架在社区范围里乏善可陈, SmartfoxServer 算是一个不错的了,但它是商用的,而且它是基于 jvm 的单进程架构,可伸缩也打了折扣。

Bigworld 则是很强大的商用 3d 游戏引擎(涵盖服务端、客户端)。Bigworld 更适合大规模的游戏开发,但时间,复杂度,成本等比较高。pomelo 的优势是开源,简单,快速开发,可以让使用者很快地开发出并发布他们自己的游戏,并能很灵活地规划调整服务器资源,支撑的游戏类型和规模也不错。

在高实时 web 应用领域,有 derby,meteor, SocketStream, 但跟 pomelo 的关注点很不一样,它们基本都是单进程架构,核心关注点是 web 应用的实时数据同步。

InfoQ:能否讲讲关于 pomelo 的理念及实现?

pomelo 的第一个理念是让游戏(高实时 web 应用)服务器的开发变得非常简单, 而不是解决某类算法或系统上的难题。这个设计理念跟 rails 是很类似的。

第二个理念是重视性能和可伸缩性,用户用 pomelo 开发出来的游戏天生具有很强的伸缩性,扩展也很容易。我们在性能优化上也花了很多功夫,并且会持续进行。

第三个理念是让第三方很容易扩展,框架用了很多插件式的设计, 组件 component、路由规则、甚至管理控制台都可以完全由第三方扩展。

InfoQ:我们注意到 pomelo 已经准备好了项目英文站点,是打算将 pomelo 做全球推广吗?

是的, 我们认为目前的开源产品必须走国际化的路线,目前国外的开源环境也比国内好。况且 node 社区和 github 是非常活跃的社区, 通过与国外开发者的沟通和交互,可以使我们最快地完善我们的开源框架。

另外,我们的设计理念和架构在国际社区里也是领先的,可以去国际开源社区试一试。

InfoQ:最后一个问题,有没有什么意见或者建议给转用 Node 的开发者?

首先, 对于非 node 的开发者,建议无论如何看一看 node 的开发模型,了解一下,也许哪天你就会用到;异步编程也没那么可怕,很多关于异步代码太丑, 甚至异步反人性的言论, 只是因为他们还没有深入去用,用 node 完全可以写出很漂亮的代码。

对于 node 的开发者,

一、多看资料,多实践 。对于入门学习的,可以看 node.js in action 等书籍,如果过了入门阶段,建议去 mailing list 或 youtube 上看视频可以学到更深入的内容。

二、多来社区交流, node 社区, cnode 社区,node party,jsconf 中国 (今年叫沪 js,明年可能叫京 js),github,沟通很重要。

谢骋超之后会对 pomelo 框架的技术细节做详尽解析。请关注 InfoQ 的后续技术文章。

另外, QCon 北京 2013 亦与时俱进,新增了 Node 专场。Node 现在到底只吸引了眼球,还是在企业中已经成熟落地广为应用?敬请关注此次 QCon,聆听诸多一线专家在各个场景应用 Node 的经验。11 月 25 日前报名,可享 6 折优惠。

2012-11-20 01:3018369
用户头像

发布了 91 篇内容, 共 36.2 次阅读, 收获喜欢 3 次。

关注

评论

发布
暂无评论
发现更多内容

必须得会的一些汽车ECU研发基础 --ECU硬件概念2

SOA开发者

开发上云,化繁为简 | CIF 论坛精彩看点

CODING DevOps

腾讯云 DevOps 云原生 云开发 CIF

AUTOSAR诞生的背景及其目的

SOA开发者

「可视化助力」,医疗进步无限可能

ThingJS数字孪生引擎

大前端 物联网 可视化

企业如何通过图数据库及知识图谱形成业务壁垒

星环科技

如何处理各种「陨石开发」的紧急要求?

LigaAI

敏捷开发

玩转手工测试之百度客户端产品手工测试提效实践

百度开发者中心

最佳实践 方法论 手工测试

低代码的自动化工作流靠谱吗?对企业有何帮助?

优秀

自动化 低代码

百度飞桨PaddleRobotics新升级!一套强化学习算法解决四足机器人多地形行走难题

科技热闻

Alibaba内部的10w字Java高频面试手册遭人恶意泄露

Java 面试 程序人生 编程语言 金九银十

常用的 分布式事务 都有哪些?我该用哪个?

Java 程序员 面试 后端 计算机

夸克APP端智能:文档关键点检测实践与应用

阿里巴巴终端技术

算法 移动开发 客户端 端智能

百度智能云全面升级金融AI中台解决方案, 打造软硬一体AI开发全栈能力

百度大脑

人工智能 金融

《数据安全法》实施后,企业如何依法进行数据安全加固及创新

星环科技

数据安全 数据安全法

这份阿里P8手写的JDK发展史源码剖析手册,竟获GitHub热门榜第一

Java 架构 面试 程序人生 编程语言

财经大课:从效率公平看“共同富裕”

石云升

学习笔记 9月日更 共同富裕

后端选择 java, 还是 python?

cdhqyj

十大算法

wudaxue

最新!Apache APISIX 通过中国信通院 “可信开源项目” 认证

API7.ai 技术团队

Apache 开源社区 api 网关 APISIX 信通院

Python代码阅读(第29篇):使用初始化种子和迭代函数生成列表

Felix

Python 编程 Code Programing 阅读代码

防火防盗防内卷!阿里的24W字Java面试复盘指南,在Github上已标星98K+

Java 架构 面试 程序人生 编程语言

基于星环大数据云平台 TDC 的一站式数据湖解决方案

星环科技

大数据 云平台

物超所值!5.7w字在GitHub标星120K的Java面试知识点总结

Java 架构 面试 程序人生 编程语言

未来5年,虚拟化5个非常有前景的就业方向

hanaper

大数据presto作业

Clarke

第6章-《Linux一学就会》- Centos8 用户管理

学神来啦

Linux 运维 linux学习 linux云计算

AI技术在漫画阅读体验上的应用

快看工程技术中心

深度学习 AI 漫画

搞一下CP AUTOSAR 入门 | 01 CP AUTOSAR Overview

SOA开发者

技术干货 | Native 页面下如何实现导航栏的定制化开发?

蚂蚁集团移动开发平台 mPaaS

大前端 H5 移动开发 mPaaS

不愧是阿里高工出产的《Java面试手册》,实战命中率竟高达“80%”

Java 架构 面试 后端

云拨测助力节卡机器人 全面优化海外网站性能

阿里巴巴云原生

阿里云 云原生 拨测 成功案例

网易NodeJS开源游戏框架pomelo访谈_Web框架_彭超_InfoQ精选文章