作者:shihuaping0918@163.com,转载请注明作者
pomelo是大黄易开源的一个游戏框架,老外也有不少人在用,中国用得反而没那么多,可能不少人都没有听说过。而且它是基于node.js的,这在游戏界就比较特殊了。在大家对lua非常热爱,非常痴迷的时候,居然有人用js写游戏服务器。
pomelo是一个库,一个node.js库。它提供了非常详细的文档,当然没有阿里dubbo那么详细。但是对于开源项目来说,它的文档也算是良心代表之一了。还提供了例子,一步一步非常详细地引导用户实现一个聊天服务器。另外还提供了一个mmo的例子。
node.js的技术发展是飞速的,所以pomelo里用到的技术有些已经过时了。这是开源项目的一个痛点。当前已经是node v8了,也基本上都是在用ECMA6了,如果说是为了技术去分析它是没有太大意义的。分析它主要是学习它的设计思想。pomelo有人fork了自己在维护,因为它代码量不太,又不像skynet那样代码有很多黑科技,是纯js写的,所以比较纯粹,修改起来也比较简单。而且还能用webstorm调试——这个是很多开发非常喜欢的。你要是想调试skynet,还是老实点打印日志吧。
由于node.js提供的库非常的全面,比如websocket,可以拿来直接用。所以扩展也比较容易,不需要自己去写一套。也不需要再封装成其它语言。但是node.js有node.js的缺点,那就是工作线程是单线程。同时还要习惯写异步调用。最新的node v8已经基本上可以脱离写异步调用了。但有时候还是需要promise的支持。写游戏的很多都是网狐架构起步的,写异步不太符合思维习惯。这也许是它没有在国内大火的原因之一吧。
github地址
https://github.com/NetEase/pomelo
pomelo的设计和概念这里就不赘述了,一是我写得没官方好,二是在这里重复一遍也是多余。