今天是 2014 年最后一天,相信小伙伴们已经迫不及待想要拥抱元旦假期吧!在此,Cocos引擎团队为大家奉上“Quick Server”这份礼物,希望大家喜欢!同时也祝愿大家在2015年身体健康、万事如意!
回顾 2014 年秋季开发者大会,quick团队的路线路图里提到了许多新计划:
包管理器
插件仓库
模块化
PLAYER
开发平台
团队协作
PUBLISH TO HTML5
服务端框架
而在 2014 年最后一个月里,其中很多计划都已经落实:
包管理器:quick 团队正在开发名为 Package Manager 的包管理器,为整个 Cocos2d-x 引擎(注意,不仅仅限于 quick)提供包管理功能。所谓的“包(Package)”可以是一个库、一些源代码,甚至是一些图片音乐资源,还可以是一个独立的应用程序。
未来,Package Manager 将为 Cocos2d-x 引擎提供全方位的插件和模块化能力,帮助开发者使用合适的第三方资源快速搭建自己的应用程序基础架构。按照开发计划,Package Manager 第一版将出现在 Cocos2d-x 3.4 版本中。
插件仓库:与包管理器配套的则是插件仓库,不过正式名字还未确定。目前服务端的功能也由 quick 团队在进行开发。
模块化:模块化实际上是指模块化编译,也就是在生成可执行文件时,将游戏中没有用到的功能模块(例如物理引擎)裁减掉,从而得到更小的游戏安装包。这项功能已经出现在 quick 3.3final 和 Cocos2d-x 3.3final 中。具体用法请参考:使用模块化编译缩小 apk 体积 。
PLAYER 开发平台:在即将发布的 Cocos2d-x 3.4 中,将出现一个名为 Simulator 的全功能模拟器。这个模拟器是 quick Player 和 Cocos2d-x runtime 的合成。更多信息请参考:Cocos Simulator 产品介绍 。
团队协作:这是一个计划中的产品,由于和一些开发商沟通后需求有很大变化,所以目前还处于早期产品设计阶段。
PUBLISH TO HTML5:将 Lua 游戏移植到 HTML5 平台,可以为开发商提供一个全新的发布平台。虽然在手机上 HTML5 目前还只能跑一些小游戏,但在桌面浏览器里 HTML5 已经比较成熟了。特别是国外的 Facebook 平台,开发商如果能够将自己的热门手游移植上去,肯定会回报丰厚。
为了实现这个目标,quick 团队已经考察了一些解决方案。目前基本的思路还是用编译器将 Lua 代码翻译为 JavaScript 代码,再配合 Cocos2d-HTML5 来实现 Lua to HTML5 的移植。
好了,balabala 一大篇,终于说到这篇文章的主题了 – Quick Server !
Quick Server 是什么?
Quick Server 为开发者提供一个稳定可靠,可伸缩的服务端架构,让开发者可以使用 Lua 脚本语言快速完成服务端的功能开发。
主要特征:
稳定可靠、经过验证的高性能服务端架构
基于 OpenResty 和 LuaJIT 的架构,得到了包括 世界最大 CDN 服务商之一 – CloudFlare 等大型机构的应用,无论是稳定性还是性能都得到了验证。
Quick Server 在 OpenResty 之上封装了一个 Lua Server Framework,为开发者创建游戏服务端功能提供了一个容易学习、容易扩展的基础架构。
使用 Lua 脚本语言开发服务端功能
也许您认为在服务端使用 Lua 脚本显得有点不务正业,但 NodeJS 的流行却证明了合适的基础架构可以让一种语言突破原本的应用场景。
相比 NodeJS,OpenResty 提供的同步非阻塞编程模型,可以避免大量的嵌套 callback。不管是从开发效率还是维护成本上来说都更胜 NodeJS。
用 Lua 脚本语言开发服务端功能还有一个巨大的好处,那就是可以和使用 Cocos2d-Lua(quick)的客户端共享大量代码。比如数据 Schema 定义、数据对象、游戏逻辑等等,都可以在客户端和服务端之间共享同一份代码。做过网络游戏的同学一定为保持客户端和服务端数据接口一致头疼过。现在使用 Quick Server,这些问题统统消失不见。
支持短连接和长连接,满足从异步网络到实时网络的各种需求
Quick Server 支持 HTTP 和 WebSocket 两种连接方式,分别对应短连接和长连接,满足了异步和实时网络游戏的需求。
WebSocket 是一种通讯协议。在连接时通过 HTTP 协议进行。在客户端和服务端连接成功后,则变成标准的 TCP Socket 通讯。
相比自己实现 TCP Socket,WebSocket 已经内部处理了数据包的拼合、拆分等问题,极大简化了服务端底层的复杂度。而在传输性能、带宽消耗上,WebSocket 与传统 TCP Socket 相比没有任何区别。
支持插件机制,使用第三方插件加快功能开发
Quick Server 支持插件机制,开发者可以使用成熟的第三方插件来加快服务端功能开发。未来 quick 团队也将提供插件仓库,让开发者可以分享各种有用的插件。
支持 Docker 容器部署,轻松实现性能扩展
由于 Quick Server 支持使用 Docker 进行容器部署,所以在需要做性能扩展时,简单几行命令即可完成,极大的降低了运营难度。
怎么开始?
当前,Quick Server 已经发布了 0.4 版本。大家可以点击“阅读原文”,查看如何安装和使用 Quick Server。
最后希望“Quick Server”这份礼物能够得到大家的喜欢!同时也祝愿大家在2015年身体健康、万事如意!新的一年,Cocos引擎团队将再接再厉,继续为大家送上更多惊喜!