为什么我的新项目选择了Quick-cocos2d-x

时间:2023-03-08 17:18:28
为什么我的新项目选择了Quick-cocos2d-x

混Quick社区快一周了,还是决定分享一下我选择Quick的原因。 一是向大家介绍一下我自己,同时也希望给大家提供一个参考
首先,向大家介绍一下我自己
姓名,年龄,性别这些都不重要了。
我是一名程序员,在游戏行业混迹了大约5年。做过的项目就不方便在这里提了,以免广告嫌疑。总之大大小小5,6个的样子。
我开发、维护过端游,手游引擎(基本上都是C++)
也开发过网页游戏 AS3的

而实际上,端游我并未出过项目,手游由于公司的原因,是纯C++开发。 上线过几款页游。 因此,总的来说,我没有大量使用LUA的经验。 一切对我来说,都是未知的。
U**3D引擎是我一直在研究并关注的引擎,因为,我有着一个开发3D MMORPG游戏的梦想,就像我钟情的 魔兽世界(这个不算广告吧)。 而新项目的需求,使我不得不放弃这引擎,转而选择cocos2dx

要说U***3D和cocos2dx谁好谁坏,我觉得是不需要比较的,它们都有各自的优缺点。 而对于大部分以C++为生的人来说,不能直接掌控某些东西,那晚上是睡不着觉的。 (PS:我是巨蟹座,不是处女座,与星座无关)
好在我是一个杂食型,cocos2dx早在2.0.x版本就开始跟进,不为别的,就怕掉队。。。。还出过两个视频教程,这个不是为了说自己好NB,只是为了赚点稿费。 3块钱一分钟(这些都不说了,只是向大家证明一下,我对cocos2dx还是有好感,不因为我说我喜欢U***3D就把我要把我当敌人)

当决定是cocos2dx后,我又开始纠结了,用不用LUA。。。。 
我一开始的更新方案是,游戏分为APP代码更新和资源更新。。 后来仔细研究了一下当前的一些在线游戏的更新频率,以及那可怕的国内ANDROID平台运营商数目, 觉得太不现实了。
并且,使用C++开发,人员方面也是问题,虽然我确信,可以通过适当提高招聘要求和薪酬,同时加强QA审核来解决。 但即使是C++高手, 也难免不出问题。 于是,最终选择了LUA。 选择LUA不是因为LUA对编写人员的要求低。  微微蓝 说的一句话我十分同意, 通常, LUA写得好的,C++高手居多。(这只是一种意会, 广意的说法就是, 一个能够将脚本语言用娴熟的,那他的语言功力绝对不会低)。   LUA的动态更新方案能够使我在版本发出后快速补救。

好,我想,我真的是一个纠结的人。
我在纠结完U***3D和cocos2dx后
开始纠结用不用LUA
确定要使用LUA后,我又开始纠结,用不用Quick

于是,我花了两天时间到处询问,大家都在用啥,是用cocos2dx导出的LUA接口自己DIY,还是使用QUICK来做。
很多人回答我说,他们是自己撸,原因很简单,他们用的是先前的那套,他们那套是从cocos2dx 2.0.x版本就发展过来的,当时quick还没有正式版

左思右想后,加入了Quick群, 被大家喷了个遍。  确实, 你在QUICK群问QUICK有啥坑,这不是找抽么。 最让我明白的一句话是:纠结,害怕,源于经验不足

哇嚓,我当时十分懊恼,冷静了两秒后,觉得他们说得对。 微微蓝给我的评价是:你用了就不想再用其它的了。  在经微微蓝科普下。 我决定自己试试

于是,我去GIT上下载了MASTER的ZIP版本, 因为我项目要年底才出,于是,我对QUICK版本的定位就是3.2版本。 我踩坑,自然就要用新版来踩
下载完后解压,然后配置好环境变量,打开player,运行例子。 哇嚓,这流程,不就是FLASH么。。。

我试着改了一下示例中的代码,按F5刷新,哇嚓,它变了,它真的变了。

运行完示例后,我决定新建一个项目试试。 来到Bin目录下,打开CMD,执行 create_project.bat -p com.ooxx.mygame 回车
就发现Bin项目下出现了mygame文件夹,通过player可以发现它是一个hello world

新建项目如此的方便,我没话说了,quick保持了和cocos2dx同样的创建新项目的方式。这点让人感到很舒服。

接下来,我测试版本发布,由于IOS要进虚拟机,有点麻烦,我就测试了ANDROID。 
对于ANDROID来说,2.2.3有几个问题要注意
配置ANDROID NDK,且要新版本,才能使用build_native.bat
新建的项目,不会把org.lib.cocos2dx.****.java这堆东西拷过来
AndroidMainfest.xml里面minTargetVersion要改为10
Java Build Path里面要删掉Dependencies等问题

所以,我按我发布cocos2dx 2.2.3的操作,成功打了一个APK到我的项目上。
这一切,都满足我的期望。

接下来,我看了framework的代码和本地文档, 其中许多功能让我感到满意,终于不用我自己DIY了。 比我想象中的更直观, 由于我对LUA的陌生,如果我自己来撸,不知何年何月才能达到这样的水平。

基本东西调查完了,我就要来解决我最关注的两个问题
更新和加密

更新:找到了七月的贴子,得到了完整的思路。 这个思路和我之前搞端游的思路有点出入, 不过,和页游非常象。 唯一和页游不一样的,就是要自己处理一下文件存放问题。 最近几天,坛子里讨论得较多的也是这个话题。 经过几天的摸索,基本上确定了更新流程,也写了代码测试。这又超了我的想象。

加密:LUA是明文的,让别人下载去了,不是很容易就能猜到前后端通信规则,以及哪些东西是在前端计算的么。 这样外挂还不飞天了。 不过,QUICK处理了这个事情,你可以简单的通过LUAJIT来加密,如果还不放心(因为字 符串不会被JIT掉),可以使用XXXTEA进行加密 。这些QUICK都帮你处理好了,你只需要设置好你的密钥就可以了。

一切,都让我觉得很自然,仅仅一周的时间,我将更新和加密问题弄得很明白,同时也熟悉了quick的整个机制。

同时,quick与cocos2dx一样是开源的,也就是说,如果你真觉得有什么不爽,你自己改了就可以了。 quick的代码在你熟悉以后,其实就是你自己的了。

希望上面的文章,能够对有选择犹豫症的朋友有帮助。

PS:新版的QUICK的API越来越像FLASH的包组织结构,相信对FLASH开发者来说,是很容易过渡的。 而对FLASH不熟的朋友也不要纠结,quick这样选择,并不是为了亲近flash开发者,而是flash那种API和思路,很容易上手。

感谢阅读~