译者序

译者序

对游戏开发爱好者来说,这是最好的时代。免费的开发引擎、丰富的技术资料、广泛的传播渠道……十年前,我初次接触游戏开发时,是绝对不敢想象游戏行业会发展到今天这种情况的。不过,根据这些年在日本和国内的游戏公司的从业经历,我发现一个很普遍的问题,那就是虽然游戏开发的门槛大大降低了,但是很多游戏开发新手对于如何顺利地将自己的创意转化为游戏成品仍然感到一筹莫展。

“我想开发一个跑酷游戏,但是场景的动态生成这块总是有问题”“我也想开发一款音乐节奏游戏,但是不知道该如何存储其中的节奏数据”,我常听到个人开发者提出类似的问题。也许在成熟的开发者看来这些都不算什么,但是对于新手来说,如果多次遇到这样的问题,可能开发的热情就消磨殆尽了。

平心而论,目前市场上的很多 Unity 学习资料,不是太过于专注介绍 Unity 的各种功能细节,林林总总,读完后可能仍旧一头雾水,就是因为讲解的案例太过简单,导致实用性偏弱。我认为,那些想快速开发出自己的游戏的开发者,最渴望的应该是一本由经验丰富的一线开发人员写就的讲解设计思路和实现细节的书籍吧。正因为如此,初读此书时我就感到相见恨晚,于是就不自量力地翻译了此书,希望能对国内的开发者朋友有所帮助。

本书的原作者是日本知名游戏公司万代南梦宫的资深开发人员。全书共有十一章,除了首章主要对 Unity 的核心概念进行实例讲解外,其后十章都是各自以一个简单的雏形玩法开始讲起,再自然而然地提出种种需求,继而讨论相应的技术细节。一步一步,水到渠成。

以拼图游戏为例,作者首先提出了该游戏的玩法:点击碎片,拖动拼图。在此基础上,开始讨论点击拖动的位置:是碎片的中心还是任意位置?这两种方式的优缺点各是什么?在这个过程中引入了“透视变换和逆透视变换”的知识点。解决之后又继续抛出问题:如何检测出碎片被玩家点击了?如何保证碎片能和玩家的鼠标同步移动?这样让读者带着问题思考阅读,学习的效果是不言而喻的。当游戏的主要操作实现以后,作者又探讨了随机排列拼图碎片的基本原理和改进策略。最后,结合 Unity 的组件功能对游戏的数据结构进行了讲解。

这样的安排可以让读者清晰地感受到真实的游戏开发是怎样一个不断修改、不断完善的过程,而不是一上来就抛出一个完美的解决方案。甚至,作者在开发这些游戏的途中创建的许多测试工程,也随着源代码一起提供给读者了。

可以说这十个游戏实例基本已经涵盖了轻度小游戏的大部分类型。比如拼图游戏、节奏游戏、消除游戏,甚至还有简单的 RPG 等。相信读者在用心理解书中的实例后,一定可以顺利地开发出自己的游戏。比如前面我提到的,想开发一款跑酷游戏,但是不知道如何动态地生成跑道两侧的场景?第十章的驾驶游戏正好对相关的功能进行了讨论;想开发一款音乐游戏,但是不知道怎么存储节奏数据?第五章的节奏游戏就一步一步地给出了解决的方案……

本书的意义,更多的是告诉你游戏开发的实现思路。从另外一个角度来看,掌握了这些思路,即便换成另外一种引擎,也可以很轻松地开发出同类型的游戏。

本书定位的读者对象是初级游戏开发人员。书中不会去太深入地探讨游戏开发的高级技巧。譬如 Unity 中的内存优化、游戏资源和逻辑的热更新等,即使这些技术在商业化的大型游戏中是不可或缺的。所以读者不用担心本书的内容太过复杂,完全可以抱着轻松的心情走完这段开发之旅。

需要注意的是,对于 Unity 引擎的基础使用,本书介绍得不多,但是对于游戏开发的思路和实现方法,作者从来是不惜笔墨的。所以如果您正渴望学习一个真正的游戏该如何设计和实现,相信我,这本书会是不错的选择。

由于译者水平有限,书中恐有疏漏和错误之处,还请读者随时指正。

最后,我想在这里衷心感谢图灵公司的各位编辑在翻译过程中给予的帮助。同时也感谢我的家人给予的支持。正是有你们的帮助和支持,我才能够完成本书的翻译。希望本书能够帮助更多的游戏爱好者开发出自己的游戏。

罗水东

2014 年 12 月于大连

目录