Rust游戏开发实战
全新正版 极速发货
¥
52.1
5.2折
¥
99.8
全新
库存12件
作者(美)赫伯特·沃尔弗森
出版社人民邮电出版社
ISBN9787115626608
出版时间2024-05
装帧平装
开本16开
定价99.8元
货号1203264427
上书时间2024-07-02
商品详情
- 品相描述:全新
- 商品描述
-
作者简介
赫伯特·沃尔弗森(Herbert Wolverson)是一名非常有经验的程序员,主要从事游戏开发工作。他在游戏开发社区非常活跃,为多个开源项目做过贡献。
目录
第一部分初识Rust
第1章Rust及其开发环境2
1.1安装Rust2
1.1.1在MicrosoftWindows上安装Rust3
1.1.2在其他操作系统上安装Rust3
1.1.3完成安装3
1.1.4验证安装是否成功4
1.1.5测试Rust能否正常使用5
1.1.6版本更新5
1.2安装并配置开发环境6
1.3用Cargo管理项目7
1.3.1为代码选择一个主目录7
1.3.2用Cargo来开启一个新项目7
1.3.3运行Hello,World8
1.3.4与版本控制系统的集成8
1.4创建第一个Rust程序9
1.4.1Cargo的元数据9
1.4.2Hello,World程序10
1.5用Cargo来构建、检查并运行项目11
1.6修正代码格式12
1.7用Clippy来发现常见错误13
1.8用Cargo进行包管理15
1.9小结16
第2章Rust的第一步17
2.1创建一个新的项目17
2.2捕捉用户输入17
2.2.1提示访客输入姓名18
2.2.2用变量存储姓名18
2.2.3接收键盘输入19
2.2.4读取用户输入20
2.2.5用占位符实现格式化打印21
2.2.6完整的问候程序21
2.3将输入处理逻辑移入函数22
2.4修剪输入数据23
2.5在数组中存储字符串24
2.5.1声明一个数组25
2.5.2在数组中查找元素26
2.6用结构体来组织数据27
2.7用向量来存储数量可变的数据32
2.7.1派生调试信息32
2.7.2用向量代替数组33
2.7.3用break跳出循环34
2.7.4为向量添加新元素34
2.8用枚举体来实现分类36
2.8.1枚举体36
2.8.2使用枚举类型和整数类型的数据成员37
2.8.3将枚举类型赋值给变量38
2.8.4枚举体的匹配38
2.9小结41
第3章构建第一个Rust游戏42
3.1理解游戏循环42
3.1.1什么是bracket-lib以及bracket-terminal44
3.1.2创建一个使用bracket-lib的新项目45
3.1.3Hello,bracketTerminal46
3.1.4存储状态46
3.1.5Codepage437:由IBM扩展的ASCII字符集50
3.2创建不同的游戏模态50
3.2.1根据当前模态做出反应51
3.2.2play()函数的桩形式52
3.2.3主菜单52
3.2.4游戏结束菜单54
3.2.5完整的游戏控制流54
3.3添加游戏角色55
3.3.1渲染游戏角色56
3.3.2坠向不可避免的死亡56
3.3.3扇动翅膀57
3.3.4实例化玩家57
3.3.5常量58
3.3.6完善游戏程序的play()函数59
3.3.7扇动翅膀60
3.4创建障碍物并实现计分逻辑60
3.4.1渲染障碍物61
3.4.2一头撞到墙上62
3.4.3记录得分和障碍物的状态63
3.4.4在play()函数中加入障碍物和计分逻辑64
3.4.5将得分显示在游戏结束画面上64
3.4.6在重玩游戏时重置得分和障碍物65
3.4.7FlappyDragon游戏效果65
3.5小结65
第二部分开发地下城探险类游戏
第4章设计地下城探险类游戏68
4.1设计文档推荐的几个段落标题68
4.1.1为游戏命名68
4.1.2游戏的简要介绍68
4.1.3游戏剧情69
4.1.4基本的游戏流程69
4.1.5最简可行产品69
4.1.6延展目标70
4.2小结70
第5章编写地下城探险类游戏72
5.1将代码划分为模块72
5.1.1crate与模块72
5.1.2新建一个空的地图模块73
5.1.3模块的作用域74
5.2用prelude模块来管理导入项74
5.3存储地下城地图76
5.3.1图块在程序中的表示方法77
5.3.2创建一个空地图77
5.3.3为地图建立索引78
5.3.4渲染地图79
5.3.5使用地图模块的API80
5.4加入探险家81
5.4.1扩展地图的API接口81
5.4.2创建玩家角色的数据结构82
5.4.3渲染玩家角色83
5.4.4移动玩家角色83
5.4.5使用玩家模块的API84
5.5创建地下城85
5.5.1编写地图生成器模块86
5.5.2用石墙把地图填满87
5.5.3开凿房间87
5.5.4开凿走廊88
5.5.5建造地图并放置玩家角色91
5.5.6使用MapBuilder组件的API91
5.6Graphics,Camera,Action92
5.6.1地下城所使用的ProgrammerArt92
5.6.2图层94
5.6.3制作摄像机95
5.6.4用摄像机来渲染地图97
5.6.5将玩家角色关联到摄像机98
5.6.6清理图层,并关联函数和摄像机98
5.7小结99
第6章创建地下城居民100
6.1名词解释100
6.2用组件编排出实体101
6.3安装并使用Legion102
6.3.1将Legion添加到prelude中103
6.3.2删除一些老代码103
6.3.3创造游戏世界104
6.4编排出玩家角色105
6.5使用系统来实现复杂的逻辑107
6.5.1多个文件组成的模块108
6.5.2理解什么是查询109
6.5.3将处理玩家输入作为一个系统111
6.5.4批量渲染114
6.5.5地图渲染系统115
6.5.6实体渲染系统116
6.6添加怪兽119
6.7碰撞检测121
6.8小结123
第7章与怪兽交替前行124
7.1让怪兽随机游走124
7.2在回合制的游戏中移动Entity127
7.2.1存储回合状态127
7.2.2轮番上阵128
7.2.3拆分调度器129
7.2.4结束玩家的回合131
7.3发送意图消息133
7.3.1实体还可以当作消息来使用133
7.3.2接收消息并进行移动133
7.3.3简化玩家输入处理逻辑135
7.3.4怪兽的移动消息137
7.4小结137
第8章生命值和近身战斗138
8.1为实体赋予生命值138
8.2添加平视显示系统139
8.2.1添加另一个渲染图层139
8.2.2渲染平视显示区141
8.2.3为怪兽添加名字143
8.2.4为怪兽添加名称和生命值143
8.2.5用悬浮提示来区分怪兽145
8.2.6注册各个系统147
8.3实现战斗功能148
8.3.1删除碰撞检测系统148
8.3.2表示攻击意图148
8.3.3玩家主动攻击149
8.3.4创建战斗系统151
8.3.5怪兽的反击153
8.3.6运行各个系统154
8.4将等待作为一种策略155
8.5小结157
第9章胜与负158
9.1创造更聪明的怪兽158
9.1.1标记新的行为159
9.1.2通过trait来支持寻路160
9.1.3映射地图160
9.1.4在地图中导航161
9.1.5具备热成像追踪能力的怪兽164
9.1.6定位玩家角色165
9.1.7迪杰斯特拉图165
9.1.8追杀玩家角色167
9.1.9缩减玩家角色的生命值169
9.2实现游戏结束画面170
9.2.1增加表示游戏结束的回合状态170
9.2.2检测游戏何时结束171
9.2.3显示游戏结束画面172
9.3寻找亚拉的护身符173
9.3.1构建护身符173
9.3.2安放护身符174
9.3.3判断玩家是否胜利177
9.3.4恭贺玩家取得胜利178
9.4小结181
第10章视场182
10.1定义实体的视场182
10.1.1图块的透明度183
10.1.2用HashSet来整理数据183
10.1.3用组件来存储可见图块的集合184
10.1.4计算视场187
10.1.5渲染视场189
10.1.6隐藏实体191
10.1.7更新视场192
10.2怪兽的视场193
10.3添加空间记忆195
10.3.1逐步揭示地图195
10.3.2更新地图196
10.3.3渲染记忆中的地图196
10.3.4视场的其他用途198
10.4小结199
第11章更具可玩性的地下城200
11.1创建trait200
11.1.1拆分地图建造器201
11.1.2用MapBuilder来提供地图建造服务201
11.1.3定义代表架构的trait202
11.1.4用参考实现来测试trait203
11.1.5调用空地图的架构205
11.1.6修改房间生成器206
11.2用元胞自动机算法来创建地图207
11.2.1元胞自动机理论207
11.2.2实现元胞自动机208
11.2.3生成一些随机噪声209
11.2.4计算邻居的数量209
11.2.5用迭代消除混乱210
11.2.6放置玩家角色211
11.2.7在没有房间的情况下生成怪兽213
11.2.8建造地图214
11.2.9调用基于元胞自动机的地图架构214
11.3用Drunkard’sWalk算法来创建地图215
11.3.1编写初始代码216
11.3.2用喝醉的矿工开凿洞穴216
11.3.3评估地图建造的完成度217
11.3.4一直挖到地图生成完毕218
11.3.5激活新的地图类型220
11.3.6随机挑选架构220
11.4在地图中使用预制区域221
11.4.1手工打造的地下城221
11.4.2放置金库222
11.5小结226
第12章地图的主题风格227
12.1为地下城引入主题风格227
12.1.1用trait实现地下城主题风格228
12.1.2创建一片森林229
12.2使用主题风格进行渲染230
12.2.1挑选一个主题风格231
12.2.2使用选中的主题风格232
12.2.3根据主题风格来渲染地图233
12.3释放想象力235
12.4小结235
第13章背包和道具236
13.1设计物品236
13.1.1用组件来描述物品236
13.1.2生成药水和地图237
13.2管理背包239
13.2.1捡起物品240
13.2.2显示背包物品241
13.2.3发送物品激活消息243
13.2.4激活物品245
13.2.5应用治疗特效245
13.2.6迭代物品并应用效果246
13.2.7处理疗伤事件247
13.2.8添加到调度器248
13.2.9去掉通过休息恢复生命值249
13.3小结250
第14章更深的地下城251
14.1为地图添加楼梯251
14.1.1生成并渲染楼梯251
14.1.2更新地下城的行走逻辑252
14.1.3生成楼梯并替代护身符253
14.2追踪游戏关卡255
14.2.1关卡切换状态256
14.2.2切换关卡257
14.2.3找到玩家角色258
14.2.4标记需要保留的实体258
14.2.5删除其余的实体259
14.2.6将视场设置为脏259
14.2.7创建新地图260
14.2.8将玩家角色放置在新地图中260
14.2.9创建亚拉的护身符或者楼梯260
14.3在平视显示区中显示当前关卡261
14.4小结262
第15章战斗系统和战利品263
15.1设计数据驱动的地下城263
15.1.1读取地下城的数据265
15.1.2扩展Spawner模块266
15.1.3映射并加载模板266
15.1.4用数据驱动的方式生成实体268
15.1.5新春大扫除272
15.2扩展战斗系统274
15.2.1由武器和爪子造成的伤害274
15.2.2伤害值组件276
15.2.3产生一些伤害277
15.2.4探险家不是八爪鱼278
15.3添加更多宝剑279
15.4小结280
第16章最后的步骤和润色281
16.1打包游戏以进行分发281
16.1.1开启发布模式和链接时优化281
16.1.2分发游戏282
16.2开发属于自己的地下城探险类游戏283
16.3更多内容283
16.4小结284
第三部分其他资源
附录AASCIICodepage437对照表286
附录B简短的游戏设计文档287
附录CRust语法速查表294
内容摘要
Rust是一种新兴的系统级编程语言,既具备可媲美C、C++的强大功能,又具备内存安全性、支持并发编程等特点,但其学习路径之陡峭也让很多初学者望而却步。
这是一本借游戏开发来帮助你学习Rust语言的书——还有什么比制作游戏更好的学习方式呢?全书介绍如何基于RuSt语言开发二维游戏,借项目实例帮助你掌握Rust语言的基础知识,以及适用于诸如Unity、Unreal等引擎的游戏开发技能。
要更好地掌握本书内容,请保证你的计算机具备以下软、硬件要求。
安装Windows10/Linux/macOS系统。
安装文本编辑器,例如Visual Studio Code。
能运行OpenGL3.2的显卡和驱动程序。
主编推荐
1.本书主要介绍如何基于Rust语言开发游戏
2.引导读者制作自己的Flappy Bird,借实例讲解Rust语言的基础知识。
3.引导读者从0到1用Rust实现游戏项目。
— 没有更多了 —
以下为对购买帮助不大的评价