前言

为什么要写这本书

“你可以成为这样的人,如果你热爱你做的事,愿意付出相应的劳动,你终将有所得。你在夜里独自工作,反复思考你所设计和制造的东西,为之花费的每一分钟都是值得的。我敢肯定地告诉你,你的付出是值得的。”

——苹果公司的创始人之一史蒂夫·沃兹尼亚克

《沃兹传·与苹果一起疯狂》

相信很多移动游戏开发者都有同样的感受,就是累并快乐着,累是因为我们在一个竞争激烈的行业里,快乐则是因为我们在做着自己热爱的事情。相信对于很多移动游戏开发者来说,都有一个忠实的“伙伴”,那就是你所使用的游戏引擎。由于开源的特点和支持Android和iOS两大平台,Cocos引擎成为众多游戏引擎中的佼佼者,与此同时,Cocos引擎团队不断迭代自己的工具链以跟上技术和平台的发展,让工程师可以把更多精力投入到游戏本身的开发上。截至2017年年底,Cocos2D-X在全球拥有超过100万注册开发者,在中国市场占有率为45%,在全球市场占有率为18%,是中国第一、全球第二的手机游戏引擎。

随着网页游戏的发展,轻量化游戏方兴未艾,Cocos引擎团队推出了Cocos Creator开发工具。Cocos Creator是以内容创作为核心的游戏开发工具,在Cocos2D-X基础上实现了彻底脚本化、组件化和数据驱动等特点,实现了一体化、可扩展、可自定义工作流的编辑器,并在Cocos系列产品中第一次引入了组件化编程思想和数据驱动的架构设计,这极大地简化了游戏开发工作流中的场景编辑、UI设计、资源管理、游戏调试和预览、多平台发布等工作,使开发者的精力可以更多地投入到游戏内容的创作上,可以说,Cocos Creator已经成为开发团队进行团队协作开发的最佳选择。

从Cocos Creator发布伊始,作为Cocos引擎的忠实用户,我就一直在关注,当公司要立项一个网页游戏并打算采用全新的引擎开发时,我第一个想到了Cocos Creator,但是项目组出于“想采用更成熟的技术”的考虑,选择了另一个推出时间更长的游戏引擎,结果项目后期的性能优化和一些功能的开发受到了引擎底层的制约,最后以失败告终。同样的例子在行业内我听说的不止一例,为什么我们放着更新、更好的技术不用呢?在经过与同行的讨论和自己的思考后,我觉得可能是受到学习成本和项目经验的影响,大家愿意用更成熟的技术。但是Cocos Creator基于Cocos引擎,本身就是成熟的技术,所以我一直想找机会为Cocos Creator做一些推广,让广大的开发者可以有勇气尝试更好的技术。

写这本书的起因是2018年年初,微信小游戏发布,机械工业出版社华章分社的杨福川老师和我一起聊到微信小游戏教程的话题,因为Cocos Creator在微信小游戏推广伊始就提供了支持,我当时就想到可以借着微信小游戏的“东风”,做一些Cocos Creator相关的教程,同时由于《Cocos2D-X权威指南》第2版已经出版3年多,相关技术需要一次更新,在经过讨论后,我决定写一本介绍Cocos Creator的书。我已经在游戏行业打拼8年,使用Cocos引擎开发过一些上线的项目,经历过一些线上问题,我想把这些经验融入这本书里,可以说,本书是《Cocos2D-X权威指南》的一次全新更新,也是我个人开发经验的一次更新,我很珍惜这次机会。

《Cocos2D-X权威指南》已经出版3年多,我个人在这3年间也做了一些事情,我在南开大学完成了MBA的学习,同时我开始跑步锻炼,最近一年多,我参加了三场全程马拉松及两场半程马拉松的赛事,在这个过程中,我发现跑步和写作很像,一开始憧憬和期待,起步后担心自己完不成,到中间渐入佳境,后半程则力不从心和接近极限,直到跑完比赛,你会发现这个过程中的每一步都那么重要,都那么享受。同时,我也希望我的作品可以给读者带来更多的收获,能够让更多的人更好地使用Cocos Creator。

读者对象

❑ Cocos Creator初级及中级开发者,了解游戏开发的读者;

❑ 没有接触过Cocos Creator,但有过Cocos其他版本开发经验的开发者;

❑ 没有Cocos Creator开发经验,但是有Unity、UE等游戏引擎开发经验的游戏程序员;

❑ 没有Cocos Creator开发经验,但是有其他语言开发经验的程序员;

❑ 游戏开发爱好者;

❑ 相关项目的策划及管理人员。

如何阅读本书

本书分为四大部分:

❑ 第一部分(第1~2章)为准备篇,首先对Cocos Creator的功能、特点和适用场景进行了宏观的介绍,然后介绍了如何搭建跨平台的开发环境。

❑ 第二部分(第3~8章)为基础篇,对Cocos Creator的场景制作、资源管理、脚本编程、UI系统、动画系统和物理系统进行了深入讲解,同时配备了大量的小案例。

❑ 第三部分(第9~11章)为实例篇,讲解了三个游戏案例的开发过程和方法,包括消除类游戏、飞行游戏和棋牌类游戏,旨在让读者深入了解Cocos Creator的基础知识在游戏开发中的实际使用,而且三种游戏分别代表了消除类、纵版射击和棋牌类,可以让开发者深入了解不同类型游戏的开发思想。

❑ 第四部分(第12~16章)为扩展篇,深入介绍使用Cocos Creator开发微信小游戏、扩展插件和SDK、游戏项目优化等高级话题。在此基础上进一步介绍游戏开发和引擎扩展等相关的知识,目的是让读者更加全面地了解Cocos Creator的使用。

如果你是一名对Cocos Creator有一定了解的开发者,可以从第3章开始阅读,而如果你是一个Cocos Creator的初学者,请从第1章开始阅读。

勘误和支持

由于水平有限,编写时间仓促,书中难免会出现一些错误或者不准确的地方,恳请读者批评指正。为了方便与大家交流,我专门申请了一个qq讨论群(群号:514376849,验证信息为:cocoscreatorhzbook),大家有与本书相关的问题可以在群中提出,我会及时解答。

为了及时更新本书的项目源代码,我创建了本书的代码仓库,书中的全部源代码可以在GitHub(代码仓库地址:https://github.com/manshuoquan/CocosCreatorBook)中获取,项目的示例代码、本书工程和源代码也会同步更新。

同时你也可在作者的个人技术博客上获得本书的勘误和内容的更新(技术博客地址:https://manshuoquan.github.io)。

如果你有更多的宝贵意见,也欢迎发送邮件至邮箱manshuoquan@sina.cn,期待能够得到你们的真挚反馈。

致谢

感谢Cocos引擎的开发团队,感谢他们为广大游戏开发者开发出一款如此优秀的游戏引擎。感谢每个在GitHub上贡献代码的开发者,因为你们开放分享的精神,才使得这个世界更加美好。

感谢天津大学和南开大学对我的培养,感谢我的老师和同学们,特别是我的编程启蒙老师罗凯先生。

感谢我的老东家天津猛犸科技有限公司,感谢公司给了我进入游戏行业的机会,同时感谢公司对我的锻炼和栽培,使我对游戏开发由“好奇”变成“爱好”。做游戏可能是每个程序员最初的、浪漫的梦想,我有幸能有8年的游戏程序员经历,这8年会是我职业生涯中最难忘的8年,有甜蜜的梦想,有艰辛的汗水,有努力的奋斗,也有苦涩的眼泪。后来,我终于明白了,梦想并不是一定实现了才觉得幸福,追逐梦想的路同样值得享受。

感谢一路走来我工作中遇到的师长和好战友们,和他们并肩作战的日子我终生难忘,我在他们身上学到的东西让我对游戏开发有更深的认识和热爱。

感谢CSDN网站上每一位阅读我文章的网友们,是你们给了我信心,让我一直写下去,我会一直写下去!感谢《Cocos2D-X权威指南》的读者们,你们的支持也是我写作的动力,同时你们的鞭策激励着我进步。

感谢触控科技西南区总经理杨雍和Cocos Creator引擎主程凌华彬为本书写序,感谢Cocos引擎创始人王哲、资深Cocos开发者张磊(无脑码农)、资深Cocos开发者屈光辉(子龙山人)和蚂蚁金服资深工程师王德夫(唯敬)为本书写推荐,感谢资深Cocos开发者杨世玲对本书的帮助。

感谢机械工业出版社华章公司的副总编杨福川老师和编辑李艺老师,感谢二位老师在这一段时间中始终支持我的写作,二位老师的鼓励和帮助引导我能顺利完成全部书稿。可以说没有二位老师的帮助和支持,我不会有勇气写这本书。

感谢我的爷爷和奶奶,他们是我人生的启蒙老师,尽管他们已经离开这个世界,但是我依然能感受到他们对我的支持和爱。

最后感谢我的父母,他们不仅含辛茹苦把我抚养长大,还教给我很多做人的道理,为了他们我要更加努力。

谨以此书献给我最亲爱的家人,以及众多热爱游戏开发和Cocos引擎的朋友们!

满硕泉

写于中国天津