为什么选择 Cocos2d-x?

Ready Steady Play 是我的第一个主要的游戏开发项目。所以我不能自信的走出去说,“这是最好的,就用它!” 因为我没有用过许多其他可用选项。底线是,我曾经用过Cocos2d-iphone(现在的Cocos2d-swift)公平一点,真的很喜欢它。 Cocos2d-x是Cocos2d-iphone的一个分支,有以下优势:

跨平台

针对2D游戏优化

开源 – Cocos2d-x是MIT许可证下发布的开源游戏引擎,这意味着你可以按你的喜欢调整,同时也是免费的。

有许多人问我为什么不使用Unity。Unity是一个神奇的工具,特别是对于原型设计,任何3D需求(不仅仅是游戏),我会直接使用它。但是,如果你计划制作2D游戏,我建议你不要使用Unity。主要原因是处理3D坐标系对于2D游戏就是一个噩梦!为什么你会把自己带入痛苦中。第二个原因是我喜欢更容易的接触到原生代码。虽然在Cocos2d-x中不是很容易,但是相比Unity它更加简单。

开源

开源项目中有很多值得学习东西。任何时候你被问题卡住,不理解为什么你使用的库不工作,你可以追踪问题一步一步的深挖代码。对于闭源系统你需要依赖文档和指导手册帮助调试问题。 尤其是你当你误用了API。经常有卑鄙的副作用,可以导致严重的bug或表现问题。使用开源库能够访问内部代码真的有助于他们挖出来。你不想要发送一个支持请求和等待24小时至48小时之内告知不要使用某些功能。

游戏库需要一些认真的印象深刻的编程,Cocos2d-x也不例外!如果你想要学习如何绘制贝塞尔曲线路径或进行各种各样的几何计算,Cocos2d-x中已经有了这些代码。如果你的游戏可以,你也可以添加数学方法和展现你自己的实力,成为一位贡献者。

开发指南

我开发Ready Steady Play使用的是Cocos2d-x 2.2.x版本,但是它大部可分适用于3.x版本。 下面是一个全面的指导,但不包括开发过程的每一步。

如果你不想深入研究c++,你可以选择Cocos2d-JS,你可以只使用JavaScript API调用制作一个Cocos2d-x游戏。本指南仅供Cocos2d-x项目。

先决条件

下面的条件不是都要求,但是高度推荐。理解编程基础是一个很好的开头。

C/C++和面向对象编程中等水平。在开始进行深入开发之前,我又重新回顾了Bjarne Stroustrup编写的《C++编程语言》前几章节。

了解循环

shell脚本初级水平和了解Makefiles

熟练使用IDE和查看文档,Cocos2d-x的文件较少,但是这里有足够的指导帮助你去解决一些特殊的问题。我经常去 Cocos2d-x论坛和StackOverflow。

git 入门级水平

创建项目

在你的工程根目录创建一个空的git仓库。

git子模块Cocos2d-x,使用最新的tag/release。(我forking该工程以方便我作出调整适配Ready Steady Play)

把C++的模板工程拷贝到你的根目录。

(这里实际上有更好的方法,2.2.x版本可以使用tools/project-creator文件夹下的create_project.py脚本创建,3.x版本使用setup.py脚本创建。)

初始设置创建游戏开发所需的文件夹,文件的根目录应包含以下内容:

Classes

cocos2d-x

proj.android/ios/mac/…

Resources

Classes 包含所有你将会编写的游戏逻辑文件。

cocos2d-x 是上面第二步git子模块创建的。

.proj 是Cocos2d-x创建的各平台构建的项目文件夹。

Resources 是存放声音,图片,字体等资源文件的地方。

运行游戏

我来自iOS开发背景的,所以我选择proj.ios文件夹作为我的主要编程工作。我对Xcode的了如指掌,它是所有开发环境中构建最快的(相比Eclipse和Visual Studio Express 2013),模拟器很完美启动快,且方便调试。