[套装书]Unity人工智能实战(原书第2版)+独立游戏开发:基础、实践与创收(Unity 2D Android篇)(2册)

作者
豪尔赫·帕拉西奥斯 王寅寅
丛书名
游戏开发与设计技术丛书
出版社
机械工业出版社
ISBN
9782101129192
简要
简介
内容简介书籍计算机书籍 ---------------------------Unity人工智能实战(原书第2版)--------------------------- 本书将介绍构建强大的AI的工具,既可以创建更聪明的敌人,改进大 boss,也可以构建自定义的AI引擎。本书旨在成为使用Unity开发人工智能技术的一站式参考。首先,你将快速浏览在游戏环境中使用agent、编程移动以及导航的基本构建模块。接下来,你将通过实例学习如何使用简单的自定义技术改进agent的决策制定和协调机制。然后,你将学习如何模拟agent的视觉和听觉,用于自然和拟人的AI行为,再用图结构改进agent。本书还涵盖了新的导航网格技术,这项技术在Unity 2018中引入,改良了AI和路径查找工具。你还可以用决策制定技术加强AI,运用于简单的诸如井字棋和跳棋的棋类游戏,以及安排agent之间的协作,使它们像整体一样工作。 ---------------------------独立游戏开发:基础、实践与创收(Unity 2D Android篇)--------------------------- 本书将独立游戏开发分为了三个部分。第一部分我们尝试对独立游戏开发进行相关理论分析。第二部分侧重实践,我们首先对游戏进行了简单设计,再使用Unity展示了一款2D Android游戏的具体开发流程,案例专注于游戏层面的设计与编码,不包含晦涩难懂的底层逻辑。第三部分专注于如何使用游戏创造收入,包括使用GooglePlay渠道发布游戏、植入广告、在游戏内创建虚拟商品、实现内购功能等。 本书第一部分适合所有想要了解独立游戏开发的读者,第二、三部分则适合具有一定C#或Java编程语言基础的游戏开发初学者。
目录



---------------------------Unity人工智能实战(原书第2版)---------------------------


译者序
前 言
第1章 行为——智能移动 1
1.1 简介 1
1.2 创建行为模板 2
1.3 追赶和逃跑 4
1.4 为物理引擎调整agent 6
1.5 到达和离开 8
1.6 朝向物体 10
1.7 徘徊 12
1.8 按路径移动 14
1.9 避开agent 18
1.10 避开墙体 20
1.11 通过权重混合多个行为 21
1.12 通过优先级混合多个行为 22
1.13 射击抛射体 24
1.14 预测抛射体的着地点 26
1.15 锁定抛射体 27
1.16 创建跳跃系统 28
第2章 导航 32
2.1 简介 32
2.2 用网格表示世界 33
2.3 用可视点法表示世界 41
2.4 用自制的导航网格表示世界 44
2.5 用深度优先搜索在迷宫中找到出路 47
2.6 用广度优先搜索在网格中找到最短路径 49
2.7 用迪杰斯特拉算法找到最短路径 50
2.8 用A*找到最优路径 53
2.9 改进A*算法的内存占用:IDA* 56
2.10 在多个帧中规划导航:时间片搜索 58
2.11 使路径变得平滑 60
第3章 决策制定 62
3.1 简介 62
3.2 通过决策树做选择 62
3.3 实现有限状态机 65
3.4 改进有限状态机:分层的有限状态机 67
3.5 实现行为树 69
3.6 使用模糊逻辑 71
3.7 用面向目标的行为制定决策 74
3.8 实现黑板架构 76
3.9 尝试Unity的动画状态机 78
第4章 新的NavMesh API 84
4.1 简介 84
4.2 初始化NavMesh开发组件 84
4.3 创建和管理NavMesh,用于多种类型的agent 86
4.4 在运行时创建和更新NavMesh数据 89
4.5 控制NavMesh实例的生命周期 90
4.6 连接多个NavMesh实例 92
4.7 创建动态的带有障碍物的NavMesh 93
4.8 用NavMesh API实现某些行为 94
第5章 协作和战术 97
5.1 简介 97
5.2 管理队形 98
5.3 扩展A*算法用于协作:A* mbush 102
5.4 用高度分析路径点 105
5.5 用覆盖性和可见性分析路径点 106
5.6 自动化创建路径点 107
5.7 将路径点作为示例用于决策制定 110
5.8 实现势力图 111
5.9 用淹没图改进势力图 114
5.10 用卷积滤波器改进势力图 118
5.11 构建战斗循环 120
第6章 agent感知 128
6.1 简介 128
6.2 基于碰撞系统的视觉函数 128
6.3 基于碰撞系统的听觉函数 130
6.4 基于碰撞系统的嗅觉函数 133
6.5 基于图的视觉函数 136
6.6 基于图的听觉函数 138
6.7 基于图的嗅觉函数 140
6.8 在潜行游戏中创建感知 141
第7章 棋类游戏和应用的搜索AI 148
7.1 简介 148
7.2 使用博弈树类 148
7.3 实现Minimax算法 150
7.4 实现Negamax算法 152
7.5 实现AB Negamax算法 154
7.6 实现Negascout算法 156
7.7 实现井字游戏对手 158
7.8 实现跳棋游戏对手 161
7.9 用UCB1实现石头剪刀布AI 171
7.10 实现无悔匹配算法 175
第8章 机器学习 178
8.1 简介 178
8.2 使用N元语法预测器预测行动 178
8.3 改进预测器:分层的N元语法 181
8.4 学习使用朴素贝叶斯分类器 182
8.5 实现强化学习 184
8.6 实现人工神经网络 188
第9章 程序化内容生成 192
9.1 简介 192
9.2 用深度优先搜索创建迷宫 192
9.3 为地下城和群岛实现可构造算法 195
9.4 生成风景 199
9.5 使用N元语法生成内容 201
9.6 用进化算法生成敌人 204
第10章 其他 209
10.1 简介 209
10.2 创建和管理可编写脚本的对象 209
10.3 更好地处理随机数 211
10.4 构建空气曲棍球游戏对手 213
10.5 实现竞速游戏架构 218
10.6 使用橡皮筋系统管理竞速难度 220



---------------------------独立游戏开发:基础、实践与创收(Unity 2D Android篇)---------------------------


前言
第1篇 独立游戏开发基础
第1章 基本认识 2
1.1 何为独立游戏 2
1.2 独立游戏开发?开发独立游戏?独立开发游戏? 3
1.3 独立游戏开发者 5
1.4 矛盾碰撞的产物 6
第2章 条件因素 9
2.1 个体条件 9
2.1.1 叛逆 9
2.1.2 边行动边计划 10
2.1.3 良好的身心素质 11
2.2 观念条件 12
2.2.1 不是“电子毒品” 12
2.2.2 伟大的“艺术品” 14
2.2.3 不变的原始目的 15
2.2.4 不盲目排斥商业因素 16
2.2.5 高尚的品质 17
2.3 资金条件 18
2.4 环境条件 19
2.5 知识条件 21
2.5.1 编程 21
2.5.2 美术 21
2.5.3 音乐 22
2.5.4 文学 22
2.5.5 财会 22
2.5.6 商业 22
第3章 团队与个人 23
3.1 团队与个人的关系 23
3.1.1 成员关系 23
3.1.2 委托关系 24
3.1.3 授权关系 25
3.2 团队开发的理由 25
3.2.1 提高生产力 25
3.2.2 利于成长 26
3.2.3 符合社会性本质 27
3.3 独自开发的理由 27
3.3.1 掌握主动权 28
3.3.2 学习目的 29
3.3.3 无合适协作对象 29
3.4 开发者状态 30
3.4.1 全职雇员状态 31
3.4.2 兼职者状态 32
3.4.3 自由职业者状态 32
3.4.4 创业者状态 33
第4章 矛盾双方及融合 34
4.1 独立精神 34
4.1.1 广泛性 35
4.1.2 主观性 36
4.1.3 模糊性 37
4.2 商业力量 39
4.2.1 投资与融资 39
4.2.2 采购与营销 41
4.3 融合 44
4.3.1 融合的条件 45
4.3.2 融合的目的 48
4.4 创收途径 49
4.4.1 一次性销售 49
4.4.2 第三方广告收入 50
4.4.3 虚拟商品销售 50
4.4.4 融资 50
第5章 Unity及相关工具 51
5.1 Unity简介 51
5.1.1 引擎特点 51
5.1.2 下载安装及项目的建立 53
5.1.3 操作界面 55
5.1.4 项目构建与导出 63
5.2 Visual Studio简介 65
5.3 Git与GitHub 67
5.3.1 Git简介 67
5.3.2 GitHub简介 69
5.4 Android Studio简介 72
5.5 其他推荐工具 74
5.5.1 GIMP简介 74
5.5.2 Aseprite简介 75
5.5.3 Blender简介 75
5.5.4 LMMS简介 75
5.5.5 Audacity简介 75
5.5.6 XMind简介 75
5.5.7 Visual Paradigm简介 76
第2篇 独立游戏开发实践
第6章 简单设计 78
6.1 故事 78
6.2 玩法 80
6.3 操作界面 82
6.4 登场对象 83
6.4.1 主角 83
6.4.2 纸飞机 84
6.4.3 金币 84
6.4.4 障碍 84
6.4.5 敌人 85
6.4.6 复活猫 86
6.5 主题 86
第7章 游戏雏形 87
7.1 临时主角 87
7.1.1 创建主角游戏对象 87
7.1.2 图像资源导入设置 89
7.1.3 资源导入设置脚本 90
7.2 移动 91
7.2.1 基于Transform的移动 91
7.2.2 移动改进 92
7.3 碰撞 94
7.3.1 刚体与碰撞器组件 94
7.3.2 碰撞逻辑 96
7.4 物理系统 97
7.4.1 游戏对象调整 98
7.4.2 渲染顺序修正 99
7.4.3 基于物理系统的移动 100
7.4.4 基于物理系统的跳跃与碰撞 101
第8章 主角 104
8.1 行为动画 104
8.1.1 Spritesheet切片 104
8.1.2 首次创建动画 105
8.1.3 后续动画的创建 106
8.2 动画状态机 107
8.2.1 动画控制器窗口 108
8.2.2 状态转换关系 108
8.2.3 脚本逻辑 110
8.2.4 Bug修复 118
8.3 主角、气体与纸飞机 119
8.3.1 主角与气体 119
8.3.2 纸飞机与气体 124
8.3.3 主角与纸飞机 131
第9章 背景画面 134
9.1 近景画面 134
9.1.1 Tilemap功能 134
9.1.2 创建Tile资源 136
9.1.3 铺设Tile 137
9.2 远景画面 138
9.3 屏幕适配 139
9.4 视差效果 141
9.4.1 多重摄像机 141
9.4.2 视差逻辑 143
第10章 敌人及障碍 145
10.1 路障 145
10.1.1 Spritesheet切片 145
10.1.2 路障调整 146
10.2 恶犬 147
10.2.1 动画与游戏对象 147
10.2.2 脚本逻辑 148
10.3 金币炸弹 152
10.3.1 动画与游戏对象 152
10.3.2 脚本逻辑 153
10.4 小鸟 154
10.4.1 PlayerDistanceChecker脚本修改 155
10.4.2 Bird脚本逻辑 156
10.5 美女 158
10.5.1 动画与游戏对象 158
10.5.2 脚本逻辑 159
10.6 汽车 163
10.6.1 动画与游戏对象 163
10.6.2 脚本逻辑 164
10.7 摔倒陷阱 166
10.8 小屁孩儿 168
10.8.1 动画与游戏对象 168
10.8.2 脚本逻辑 169
10.9 UFO 172
10.10 巨人 175
10.10.1 动画与游戏对象 175
10.10.2 脚本逻辑 177
10.11 蝗虫 180
10.11.1 预制件 180
10.11.2 脚本逻辑 181
10.12 恶魔猫 183
10.12.1 动画与游戏对象 183
10.12.2 脚本逻辑 184
第11章 其他登场对象 189
11.1 金币 189
11.1.1 预制件 189
11.1.2 脚本逻辑 189
11.2 复活猫 191
11.2.1 动画与游戏对象 191
11.2.2 脚本逻辑 191
11.2.3 Bug修复 195
11.3 其他主角 197
11.3.1 动画与游戏对象 198
11.3.2 继承PlayerController类 200
11.3.3 继承AirCollisionChecker类 202
11.3.4 继承InhaleController类 203
11.3.5 PlayerSwitcher脚本逻辑 204
第12章 操作界面 208
12.1 跳跃与吹气按钮 208
12.1.1 跳跃按钮 208
12.1.2 吹气按钮 213
12.2 能量条 217
12.2.1 游戏对象 217
12.2.2 脚本逻辑 218
12.3 数据显示区域 220
12.3.1 游戏对象 220
12.3.2 脚本逻辑 222
12.4 暂停退出按钮 227
12.4.1 游戏对象 227
12.4.2 脚本逻辑 230
12.4.3 死亡弹出按钮 232
12.5 游戏开始界面 235
12.5.1 开始与关闭游戏按钮 235
12.5.2 主角切换开关 237
第13章 游戏收尾 241
13.1 3秒倒计时 241
13.1.1 游戏对象 241
13.1.2 脚本逻辑 242
13.2 位置提示线 245
13.2.1 游戏对象 245
13.2.2 脚本逻辑 246
13.3 坏结局与通关 247
13.3.1 心爱的姑娘 247
13.3.2 抵达终点 249
13.3.3 游戏通关界面 253
13.4 音乐及音效 257
13.4.1 游戏音乐 257
13.4.2 游戏音效 259
第3篇 独立游戏开发创收
第14章 游戏发布 272
14.1 运行在Android平台上 272
14.1.1 PlayerController脚本修改 272
14.1.2 手机开发者模式 274
14.1.3 构建与运行 275
14.2 GooglePlay渠道 277
14.2.1 启动PLAY管理中心 278
14.2.2 创建应用并设置版本 280
14.2.3 完善其他条目 282
14.2.4 发布游戏 284
第15章 AdMob广告 289
15.1 AdMob简介 289
15.2 AdMob管理中心 289
15.2.1 进入AdMob管理中心 289
15.2.2 添加应用 291
15.2.3 创建广告单元 292
15.3 复活及广告展示逻辑 296
15.4 导出游戏工程 300
15.5 接入AdMob广告SDK 301
15.5.1 导入广告SDK 301
15.5.2 更新AndroidManifests.xml文件 303
15.5.3 初始化广告SDK 304
15.6 植入广告 306
第16章 GooglePlay内购 309
16.1 复活宝石 309
16.1.1 游戏对象及按钮 309
16.1.2 脚本逻辑 310
16.2 内购逻辑 314
16.2.1 更新AndroidManifests.xml文件 315
16.2.2 导入GooglePlay结算SDK 315
16.2.3 GooglePlay结算服务 316
16.3 发布新版本 319
16.3.1 构建新版本Apk 319
16.3.2 上传新版本Apk 321
16.4 应用内商品 323
16.4.1 设置商家账号 323
16.4.2 创建受管理的商品 324

推荐

车牌查询
桂ICP备20004708号-3