前言
我第一次接触Unity游戏引擎是在2008年,当时是导师扈文峰教授推荐给我,并引导我往这个方向去研究其应用的。在那时Unity没有太多的参考资料,外文的参考资料及教程也甚少。为了研究其应用,我只能通过官方的文档以及其入门视频进行学习、研究。
Unity是以组件(Components)的方式来组织游戏逻辑的,它可随意装配、对修改封闭而又对扩展开放的优越性,使得我开始意识到该软件将前途无量。本着更深入研究的目的,我在中国传媒大学继续完成了全日制研究生学习,在学习期间,对Unity的研究一直在持续。
回想起我开始接触Unity,到我毕业后来浙江传媒学院任教,整整7个年头。在这7年当中,Unity不断升级,由最初的2.5版本,到2.6版本、3.0版本、3.5版本、4.0版本,再到本书截稿时的2017版本,每一次的版本升级都给用户带来了令人惊讶的新功能。它的一站式多平台开发,方便的编辑工具和编辑思路,对各种图形的渲染优化,物理引擎、动画状态机,灵活开放的实现方式以及丰富的脚本API等,是我持续不断地对它进行研究和学习的动力源泉。现在我所承担的课程(游戏算法基础、游戏脚本编程、游戏引擎原理和游戏实战开发等)基本上都使用Unity作为教学工具。
承担“游戏算法基础”课程之初,曾选用Java、C++等编程语言的教材,但在上课的过程中发现,这些语言需要自行实现许多细节,导致游戏相关算法的精粹被这些琐碎的细节所掩盖,也令学生失去了对这门课程的兴趣,效果自然大打折扣,所以尝试使用Unity游戏引擎来重新实现这些游戏算法,尽可能使技术细节变得透明,让学生能够更加关注算法本身。经过多次课程的实验和总结,利用成熟的游戏引擎来讲授游戏的算法,可达到事半功倍的效果。由于目前市面上没有关于这方面的书籍,因此觉得有必要把这些课的教案和经验进行整理并作为教材出版,同时借此与全国讲授游戏相关的老师和行业一线游戏设计开发同行建立更密切的交流机会。
本书的编写总体目标是深入浅出,尽量聚焦于游戏算法的分析和实现。第1章主要对Unity游戏引擎的功能进行简要介绍,并配有视频教程。从第2章开始则讲解如何在Unity引擎中实现经典游戏的算法,包括打地鼠、俄罗斯方块、打砖块、三消、翻牌子、连连看、拼图、推箱子、炸弹人、华容道、跑酷、扫雷、贪吃蛇、五子棋、跳棋、吃豆人、扑克、坦克大战等18个游戏。由于作者水平和学识有限,再加上时间仓促,书中错误疏漏之处在所难免,敬请广大读者批评指正。如有疑问,可与我联系,邮箱是Zf223669@126.com。
如果作为教学用书,建议课时不少于64(每周4节)或48(每周3节)课时。每周前2节课用于讲授算法理论思路,后2节课可用于学生的实践练习。此外,本书除了可以作为高校相关专业的教材之外,还可以作为行业一线游戏开发人员的参考书。