从零开始的准备工做,主要在基于cocos2dx上开发手机游戏的环境准备上.看起来可能会有些复杂,作起来其实也没有那么复杂.能够去cocos2d-x.org下载一个开发包,也能够去github clone一个最新的版本.不过仍是去官网下载一个稳定的版本比较好.
对于版本的选择,我也是浏览了一些网上的帖子,不少开发者比较信赖2.x版本,而3.x的群体也不小.cocos2dx 2.x的版本是我在学校的时候接触的,那时候环境配置远不如3.x那么方便,对于那时候独自探索一款新的游戏引擎的我来讲,过程历尽千辛.Cocosdx在3.x版本架构发生了重大改变,采用Python做为项目组织开发脚本,使用cmake做为主体项目c++部分构建工具.这对于我来讲固然是个意外的惊喜,由于我曾是一个linuxer,并且挚爱c++,因此cmake,python,lua之类的对于我来讲都是很容易接受的,因此我选择的是cocos2dx 3.2版本.虽然新版本采用的c++11标准我并无详细了解过,依然在c++03徘徊,不过这些都不是主要的障碍.
在准备搭建环境以前,有一点须要说明的就是,其实本篇文章是在win32上面搭建的,并无考虑linux,我想没有多少开发者会像当年偏执的我那样,选择在linux发行版上面搭建android的开发环境吧,尤为是ubuntu,在ubuntu 13.x以后的版本,兼容32bit的依赖包已经被舍弃了,因此在使用android ndk/sdk的时候处理依赖关系会至关的麻烦,固然,我相信不少Linux高手很容易作的到,可是本文的主要意图也不是在这里了,因此就简单的涉及,而后带过吧.不过,若是真的有这方面的问题,能够给我发邮件,我想,我应该能够解决的,只是个人电脑因为以前我尝鲜玩win8,将本身的硬盘分区弄成了gpt,如今没法安装ubuntu双系统,因此可能我不能还原事故现场.若是体谅我,就不要在这个点难为我.
选用cocos2dx 3.2,最好使用的是andorid r9d ndk,若是不是的话,会遇到一个小问题,不过也只是时间问题,带过提一下而已.另外,须要cmake,apache ant,oracle jdk,android sdk/ndk,vs2012/2013. 至于vs2012/2013,安装好就能够了,在真正开发的时候咱们其实并不会打开那个笨重的家伙,因此选用ultraedit + notepad++的组合吧.
在配置上述这些工具的时候,能够参见cocos2dx开发包中的readme和setup.py,其实也就是配置环境变量.而选用ultraedit的时候,合适的版本本身去找吧,不过记得去官网下载lua.uew,具体放置的位置,能够去配置选项里面去看,就是lua的高亮.而Notepad++则是为了补足ultraedit对cmake高亮不支持的缺点,在开发游戏的过程当中,须要添加本身封装的C++模块,例如:http请求部分,这一般在帐号验证的部分会用,参考cocos2dx对http支持,发现了不足,并无封装到对应lua调用,因此就须要本身动手去完善,这部分咱们就须要notepad++对cmake的高亮支持了,能够看得更舒服一点.
若是到这里没有发生什么问题的话,那么就可使用cocos2dx提供的console工具去建立一个helloCocos2dx的项目了,而后本身去看一下相关的教程,使用cocos工具去编译发布win32和android平台项目了.
这一部分的准备工做,其实没有多少技术含量,可是做为着一些列的补充部分仍是蛮合适的.开发游戏不仅是仅有客户端部分,还须要有后端的配合.因此下面的补充部分主要是提供给那些同时兼顾先后端部分的同窗的.
关于后端环境的补充部分:
后端开发在虚拟中作就能够了,由于同时兼顾先后端的开发,咱们不可能将前端发布后安装到本身的手机上面去,再重启系统切换到linux去作后端的开发与调试,那样太浪费时间了,因此仍是使用虚拟机去搭建后端的环境就行了.能够采用virtualbox/vmware workstation,安装Linux虚拟机,而后使用本地共享文件夹方式开发后端部分.数据库和web部分能够放在一台虚拟机上面,然后端程序放在一台机器上面跑就行了,不过须要兼顾本身的机器性能,最好是多加一条内存吧,如今的机器性能很容易作的到.
这里我说一下个人打算,使用virtualbox,采用桥接的方式,保证虚拟机与host以及虚拟机与虚拟机之间的通讯.开发采用windows本地方式,使用ultraedit+c+++cmake+lua开发后端的程序,web部分采用php/golang(尚未决定好),数据库选择mysql,http服务选择apache,二者安装在一台虚拟机上面,这台虚拟机同时提供svn服务. 另一台开发测试机器,则是使用svn update的方式获取最新的源码进行编译测试.固然,也能够直接使用netbeans的远程开发方式.看本身的喜爱吧.