为什么我的新项目选择了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和思路,很容易上手。
感谢阅读~
为什么我的新项目选择了Quick-cocos2d-x的更多相关文章
- cocos基础教程(5)数据结构介绍之cocos2d::Value
1.概述 cocos2d::Valie 是一个包含了很多原生类型(int,float,double,bool,unsigned char,char* 和 std::string)外加 std::vec ...
- cocos2d的ARC开启
ARC,官方解释是Automatic Reference Counting,是Apple公司从iOS5开始为开发者新添加的一个功能. 相信很多写移动开发,可能不只是移动开发的人都深有体会,创建一个对象 ...
- 如何选择前端框架:ANGULAR VS EMBER VS REACT
最近一段时间是令前端工程师们非常兴奋的时期,因为三大Web框架陆续发布新版本,让我们见识到了更强大的Web框架.Ember2.0在2个月之前已经发布,从1.0升级到2.0非常简单.几周之前React发 ...
- iOS开发Xcode7真机调试教程
从Xcode7开始,Xcode 不需要$99/$299升级开发者直接可以进行真机调试 调试步骤 1.假设已经你已经有了苹果账号,下载并安装好了Xcode7 2. 打开Xcode-> Prefer ...
- SecureCRT设置
SecureCRT设置 文章来源:http://blog.csdn.net/dongqinliuzi/article/details/39890569 本文主要介绍SecureCRT的使用方法和技巧. ...
- 【转】iOS开发Xcode7真机调试教程
原文网址:https://www.skyfox.org/ios-xcode7-debug-device.html 从Xcode7开始,Xcode 不需要$99/$299升级开发者直接可以进行真机调试 ...
- 转-SecureCRT设置
原帖地址:http://www.2cto.com/os/201410/341569.html 一.基本设置 1.修改设置 为了SecureCRT用起来更方便,需要做一些设置,需要修改的有如下几处: 1 ...
- securecrt简介
SecureCRT是最常用的终端仿真程序,简单的说就是Windows下登录UNIX或Liunx服务器主机的软件,本文主要介绍SecureCRT的使用方法和技巧 VanDyke CRT 和 VanDyk ...
- 相遇Qt5
使用Qt5.x版本中的不同方面来开发应用程序,着重于新的Qt Quick的技术,提供了编写C++后端的必要内容,并扩展了Qt Quick. 本章提供了关于Qt5高层次的概述.它对开发者有效的展 ...
随机推荐
- Mac下U盘安装系统“未验证的错误”
bash下 输入下面命令: date 1220141012015.30
- 引用64位dll时候出现 未能加载文件或程序集“System.Data.SQLite”或它的某一个依赖项。试图加载格式不正确的程序。
引用64位dll时候出现 未能加载文件或程序集“System.Data.SQLite”或它的某一个依赖项.试图加载格式不正确的程序. 需要在web.config增加配置 <startup use ...
- php发展起源
PHP原始为Personal Home Page的缩写,已经正式更名为 "PHP: Hypertext Preprocessor".注意不是“Hypertext Preproces ...
- 也说说angularJs里的evalAsync
虽说angular都快出2.0了,到了2.0这些东东都会被干掉.不过我们眼前的事还是要处理. $evalAsync和$timeout到底什么区别,网上说法很多,最近看到的是说在directive里就怎 ...
- priority_queue 示例
http://www.cplusplus.com/reference/queue/priority_queue/ priority_queue 的top始终保持着为一堆数据中的最大元素. 读取最小 O ...
- 再次完善了 WASPCN for Matlab
前段时间有多个网友询问在64位Matlab中如何使用WASPCN(水和蒸汽性质计算软件)的方法,一直没能给出解决方案. 最近自己有个项目也需要在64位Matlab中如何使用WASPCN(水和蒸汽性质计 ...
- 【转】java架构师之路:JAVA程序员必看的15本书的电子版下载地址
作为Java程序员来说,最痛苦的事情莫过于可以选择的范围太广,可以读的书太多,往往容易无所适从.我想就我自己读过的技术书籍中挑选出来一些,按照学习的先后顺序,推荐给大家,特别是那些想不断提高自己技术水 ...
- 手拼SQL小技巧,WHERE 1=1
由于项目要求,要手动拼接SQL,(不知道领导们怎么想的--),然后就再次回到原始时代,append(SQL). 但后面查询牵扯到动态多条件,如果是mybatis的话就直接 可以用<if>标 ...
- webpack入门指南(转载)
什么是 webpack? webpack是近期最火的一款模块加载器兼打包工具,它能把各种资源,例如JS(含JSX).coffee.样式(含less/sass).图片等都作为模块来使用和处理. 我们可以 ...
- 关于display: box 和 box-flex
这两天做手机项目,使用到这个css3新属性.现在还不为所有浏览器支持,所以使用的时候要加上前缀.使用方法见下面: html代码: <div class="s-indLine" ...