zoukankan      html  css  js  c++  java
  • 为什么我的新项目选择了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和思路,很容易上手。


    感谢阅读~

  • 相关阅读:
    ASP.NET 点击前台服务器按钮后, 刷新. 重新执行 按钮事件
    动态绑定数据日历jquery
    前端及移动端学习 笔记 -待更新
    jq 兼容性 ie7,ie8
    jQuery中的$(window).load()与$(document).ready()
    SqlServer中循环和条件语句示例!
    调用一般处理程序 提供接口api
    background-position: -24px 0px
    中奖名单滚动
    在此上下文中不允许使用子查询
  • 原文地址:https://www.cnblogs.com/qilinzi/p/3800719.html
Copyright © 2011-2022 走看看