新書推薦:
《
设计中的比例密码:建筑与室内设计
》
售價:NT$
398.0
《
冯友兰和青年谈心系列:看似平淡的坚持
》
售價:NT$
254.0
《
汉字理论与汉字阐释概要 《说解汉字一百五十讲》作者李守奎新作
》
售價:NT$
347.0
《
汗青堂丛书144·决战地中海
》
售價:NT$
765.0
《
逝去的武林(十周年纪念版 武学宗师 口述亲历 李仲轩亲历一九三零年代武人言行录)
》
售價:NT$
250.0
《
唐代冠服图志(百余幅手绘插画 图解唐代各类冠服 涵盖帝后 群臣 女官 士庶 军卫等 展现唐代社会风貌)
》
售價:NT$
398.0
《
知宋·宋代之科举
》
售價:NT$
454.0
《
那本书是(吉竹伸介与又吉直树 天才联动!)
》
售價:NT$
454.0
|
編輯推薦: |
想成为一名优秀的游戏设计师吗?游戏开发是一种实战活动,其设计和开发难度却时常令人望而却步。当你对游戏制作手足无措时,这本书可以帮你解惑答疑并打下牢固的基础。
本书结合了游戏设计的原则与使用Unity开发游戏的方法,精心挑选了7个热门游戏实例,通过“实战—学习—再实战”的学习方式,努力满足读者学习、实战与参考的需求。不仅能够帮助你快速提高自身水平,而且会在不知不觉中增强你创造性解决问题的能力。
|
內容簡介: |
从务实的角度来看,游戏开发是一种实战活动,游戏开发者在掌握了基础知识后,需要不断进行针对性 的实战和思考,才能真正掌握游戏开发所需的技术。幸运的是,网络上有很多乐于分享知识的游戏从业者,他们制作了很多入门与进阶的实战教程,而且这些教程中的游戏实例紧贴近年来热门的游戏类型与风格。
本书结合了游戏设计的原则与使用 Unity 开发游戏的方法,精心挑选了受欢迎、有代表性的多个相对独立的游戏实例,在原开发者的协助下进行了重新优化和整理。本书在编排上符合由浅入深的学习顺序,每章有特定的游戏类型与风格,尽的努力满足读者学习、实战与参考的需求,帮助读者成为一名更优秀的游戏开发者。
本书适合电子游戏相关专业的学生、游戏开发初学者,以及需要进阶的游戏开发者学习。对于学生与初学者来说,本书是一本实战指南;对于需要进阶的游戏开发者来说,本书可以作为工作中的参考资料。
|
關於作者: |
马遥,平时喜欢研究动态语言和算法,擅长讲解复杂的算法和概念,曾经编写过《Unity 3D完全自学教程》,翻译过《游戏AI开发实用指南》。
从高中时代起就与游戏开发结下不解之缘。自2008年开始正式成为一名职业游戏开发者,参与过多款大型网络游戏的开发,也亲身经历了手机游戏的崛起。
目前热衷于桌游与开放世界游戏的设计,同时专门从事游戏开发教育工作,希望通过自己的努力,把游戏开发的知识与技术传播给更多人。期望和朋友们一起,在游戏开发的道路上继续探索,继续前进。
|
目錄:
|
第 1 章 3D 动作解谜游戏—《拉方块》/1
1.1 游戏的开发背景和功能概述 /1
1.1.1 游戏开发背景简介 /1
1.1.2 游戏功能简介 /1
1.2 游戏的策划和准备工作 /2
1.2.1 游戏的策划 /2
1.2.2 开发游戏前的准备工作 /3
1.3 游戏的架构 /3
1.3.1 游戏场景简介 /3
1.3.2 游戏架构简介 /3
1.4 游戏的开发与实现 /4
1.4.1 游戏场景的搭建及相关设置 /4
1.4.2 脚本编辑及相关设置 /8
1.5 游戏的优化与改进 /17
第 2 章 2D 平台跳跃跑酷游戏—《冰火人》/18
2.1 游戏的开发背景和功能概述 /18
2.1.1 游戏开发背景 /18
2.1.2 游戏功能 /18
2.2 游戏的策划和准备工作 /20
2.2.1 游戏的策划 20
2.2.2 使用 Unity 开发游戏前的准备工作 /20
2.3 游戏的架构 /21
2.3.1 游戏场景简介 /21
2.3.2 游戏玩法简介 /22
2.4 游戏的开发与实现 /22
2.4.1 场景的搭建及相关设置 /23
2.4.2 脚本编辑及相关设置 /35
第 3 章 人见人爱—《糖果消消乐》/47
3.1 游戏的开发背景和功能概述 /47
3.1.1 游戏开发背景 /47
3.1.2 游戏功能 /47
3.2 游戏的策划和准备工作 /48
3.2.1 游戏的策划 /49
3.2.2 使用 Unity 开发游戏前的准备工作 /49
3.3 游戏的架构 /49
3.3.1 游戏场景简介 /50
3.3.2 游戏架构简介 /50
3.4 游戏的开发与实现 /50
3.4.1 场景的搭建及相关设置 /50
3.4.2 游戏的状态划分和数据结构的设计与实现 /53
3.4.3 棋盘和糖果的生成设计与实现 /58
3.4.4 不同糖果删除效果的设计与实现 /61
3.4.5 洗牌状态的设计与实现 /65
3.4.6 动画状态的设计与实现 /70
3.4.7 糖果掉落状态的设计与实现 /71
3.4.8 等待操作状态的设计与实现 /73
3.4.9 检测状态的设计与实现 /79
3.4.10 删除与生成糖果的设计与实现 /91
第 4 章 另类跑酷游戏——《套马》/94
4.1 游戏的开发背景和功能概述 /94
4.1.1 游戏开发背景 /94
4.1.2 游戏功能 /94
4.2 游戏的策划和准备工作 /95
4.2.1 游戏的策划 /96
4.2.2 使用 Unity 开发游戏前的准备工作 /96
4.3 游戏的架构 /98
4.3.1 游戏场景简介 /98
4.3.2 预制体介绍 /98
4.3.3 游戏玩法和流程 /99
4.4 开始场景的开发 /99
4.4.1 场景的搭建及相关设置 /100
4.4.2 脚本编辑及相关设置 /100
4.5 游戏场景的开发 /101
4.5.1 导入和使用模型素材 /101
4.5.2 创建角色预制体 /103
4.5.3 创建场景预制体 /106
4.5.4 搭建场景 /109
4.5.5 设置游戏物体的层 /111
4.5.6 设置摄像机 /112
4.5.7 创建游戏界面 /113
4.5.8 实现游戏管理器 /115
4.5.9 实现马脚本 /117
4.5.10 实现角色脚本 /119
4.6 游戏的优化与改进 /125
4.6.1 DOTween 插件的使用方法 /126
4.6.2 在该游戏中加入动态效果 /132
第 5 章 经典游戏—《黄金矿工》 /134
5.1 游戏的开发背景和功能概述 /134
5.1.1 游戏开发背景 /134
5.1.2 游戏功能 /134
5.2 游戏的策划和准备工作 /135
5.2.1 游戏的策划 /136
5.2.2 使用 Unity 开发游戏前的准备工作 /136
5.3 游戏的架构 /137
5.3.1 游戏场景简介 /137
5.3.2 游戏架构简介 /138
5.4 游戏开始界面场景的开发 /139
5.4.1 场景的搭建及相关设置 /139
5.4.2 脚本编辑及相关设置 /141
5.5 游戏关卡场景的开发 /141
5.5.1 场景的搭建及相关设置 /141
5.5.2 脚本编辑及相关设置 /147
5.6 游戏的优化与改进 /158
第 6 章 3D 动作游戏——《割草无双》/159
6.1 游戏的开发背景和功能概述 /159
6.1.1 游戏开发背景 /159
6.1.2 游戏功能 /159
6.2 游戏的策划和准备工作 /162
6.2.1 游戏的策划 /162
6.2.2 使用 Unity 开发游戏前的准备工作 /163
6.3 游戏的架构 /164
6.3.1 场景简介 /164
6.3.2 游戏架构简介 /165
6.4 游戏的开发与实现 /165
6.4.1 场景的搭建及相关设置 /166
6.4.2 控制系统的搭建及相关设置 /167
6.4.3 敌人系统的准备及相关设置 /172
6.4.4 UI 的搭建及相关设置 /175
6.4.5 其他游戏脚本的准备 /181
6.4.6 脚本编辑及相关设置 /181
第 7 章 鸟群模拟 198
7.1 鸟群行为模式的理论与实现 /198
7.1.1 鸟群行为模式的分析 /198
7.1.2 创建工程 /199
7.1.3 编辑脚本 /201
7.1.4 编辑控制脚本 /204
7.1.5 完成工程并测试 /205
7.1.6 鸟的其他行为模式 /206
7.2 鸟群的调整与完善 /207
7.2.1 调整每只鸟的具体行为 /207
7.2.3 小结和扩展 /208
第 8 章 程序建模—三维网格生成 /209
8.1 三维网格生成概述 /209
8.1.1 三维网格的原理 /209
8.1.2 与网格有关的 Unity 组件 /210
8.1.3 三维网格技术的应用 /211
8.2 用脚本生成三维网格 /211
8.2.1 创建个三角面 /211
8.2.2 对三角面程序的解释 /213
8.2.3 常用三维模型举例 /214
8.3 三维模型贴图 /219
8.3.1 简单贴图实例 /219
8.3.2 贴图代码详解 /222
8.3.3 立方体贴图 /223
8.4 噪声与地形 /227
8.4.1 地形建模 /227
8.4.2 柏林噪声简介 /229
8.4.3 将噪声应用于地形建模 /230
第 9 章 三维沙盒游戏—《方块世界》/232
9.1 游戏简介与功能概述 /232
9.1.1 无限大的世界 /232
9.1.2 删除和创建地形方块 /233
9.2 无限网格的生成方法 /233
9.2.1 问题分析 /233
9.2.2 创建组块 /234
9.2.3 编辑组块代码 /236
9.2.4 组块贴图 /239
9.2.5 组块与地形 /242
9.3 将组块组合成世界 /244
9.4 创建游戏角色 /248
9.4.1 添加角色 /248
9.4.2 添加角色控制器组件 /250
9.4.3 编辑角色控制脚本 /250
9.4.4 添加摄像机脚本 /252
9.4.5 添加工具界面 /253
9.5 动态改变组块 /254
9.5.1 销毁方块的算法 /254
9.5.2 通过射线定位要销毁的方块 /255
9.5.3 创建方块的算法 /257
9.5.4 编辑角色操作脚本 /259
9.5.5 完善游戏并测试 /260
|
內容試閱:
|
我们在网上经常会看到这样的问题:想要开发一款游戏,应该从哪里开始呢?
现在的游戏引擎已经相当强大了,开发游戏并不难。简单来讲,开发游戏主要需要两方面的知识:一是了解游戏引擎(比如 Unity)的使用方法,利用游戏引擎搭建出游戏工程;二是掌握一定的编程技术,通过编程实现游戏功能。
游戏开发是一种实战活动,想要掌握游戏开发技术,好的方法就是在对基础知识有初步了解之后立即动手制作游戏。从简单的小游戏开始,从一知半解的状态进入实战。然后通过实战发现问题,并带着问题寻找答案、补充相关知识。
这种学习方式与传统的学习方式不同,在实战前我们并不知道会遇到哪些问题,也没有完美 的标准答案。但无论是学习编程还是学习游戏开发,笔者都建议从实战出发,主动寻找问题、分析问题并解决问题,建立一套自己的“实战→学习→再实战”的学习方式。这种学习方式不仅能够快速提高自身水平,而且会在不知不觉中增强自身创造性解决问题的能力。
当然,大部分初学者在起步阶段还需要一些辅助和引导。本书作为一本使用 Unity 开发游戏的实例大全,将会给读者做出一些示范。初学者可以通过复制或临摹的方式先实现游戏功能,了解游戏开发者的制作思路,再在此基础上去学习与实战相关的游戏功能和知识点,顺利完成起步阶段的学习。
实战中的问题往往不止有一种答案。在阅读本书的过程中,建议读者大胆尝试、勇于创新,尝试对实例的制作方法和脚本的写法提出不同的见解,并测试各种开发思路的优劣。例如,删除可能没有用的代码,换一种更简单的开发思路等。通过对实例的改动还能够进一步加深对游戏逻辑的理解。
本书内容
本书将游戏设计的原则与使用 Unity 开发游戏的方法融入到实例中,能够帮助读者成为一名更优秀的游戏开发者。本书具体内容如下:
第 1 章介绍了一个相对简单的 3D 动作解谜游戏《拉方块》的制作方法。
第 2 章介绍了一个 2D 平台跳跃跑酷游戏《冰火人》的制作方法,内容涉及 2D 关卡设计和2D 物理系统。
第 3 章介绍了一个“三消”益智游戏《糖果消消乐》的制作方法,讲解了详细的三消算法,以及三消特殊道具的实现原理。
第 4 章介绍了一个相对复杂的 3D 跑酷游戏《套马》的制作方法,不仅讲解了游戏逻辑的实现过程,而且用大量篇幅讲解了 3D 模型动画的导入和设置问题。
第 5 章介绍了一个 2D 经典小游戏《黄金矿工》的制作方法,讲解了完整的游戏流程和游戏界面的实现过程。
第 6 章介绍了一个 3D 动作游戏《割草无双》的制作方法,内容涉及 3D 角色控制、自由视角摄像机、攻击动画、技能系统等,本章是很好的开发动作游戏的参考资料。
第 7 章介绍了集群 AI“鸟群模拟”的演示方法,讲解了在游戏开发中,如何通过简单的算法实现特定功能的 AI。 第 8 章介绍了生成三维网格的方法,讲解了三维模型的顶点、网格和贴图的图形学的基础知识,本章内容是第 9 章的前置知识。
第 9 章介绍了《方块世界》游戏的制作方法。本章使用 Unity 实现了一个无限大的、由方块模型拼接成的 3D 世界,并且实现了创建和销毁方块等功能,玩家可以动手改造整个游戏世界的样貌。
本书在编排上符合由浅入深的学习顺序,每章有特定的游戏类型与风格。读者可以按顺序一边阅读一边实战,也可以挑选感兴趣的章节进行学习。由于本书的定位和篇幅所限,无法对相关知识点和功能展开详细介绍,建议读者在学习过程中先记录下来有疑问的地方,然后查阅相关书籍或网络资料。
本书特点
讲解细致,易学易用:为游戏初学者量身打造,一步一图,由浅入深,确保读者能轻松、快速地入门。
编排科学,结构合理:解读热门游戏的设计与开发,将核心技术融入大量实例,同时给出优化方案。
内容实用,案例丰富:详细讲解了多个相对独立的游戏实例,使读者在实战中掌握 Unity 的使用方法。
视频教学,学习高效:对重点实例提供了教学视频,可参考价值高,可以帮助读者快速提升技术水平。
致谢
本书的参考实例全部来自“皮皮关”的老师和同学们的创作,这些实例经过笔者的整理、重新编写和加工,得以呈现在读者面前。
本书参考实例的提供者有伍书培、黎大林、沈琰和卢佩媛同学,他们的精彩作品赢得了众多游戏开发者的赞赏。特别感谢卢佩媛同学协助了本书的整理和编写工作。
感谢默默支持我的父母和家人,感谢所有帮助和批评过我的朋友。
由于笔者水平有限,书中的错误和疏漏在所难免,如有任何意见和建议,请读者不吝指正,感激不尽。
|
|