(特价书)Unity与C++网络游戏开发实战:基于VR、AI与分布式架构
资深专家10年经验分享!摩拜联合创始人/中手游创始人/麒麟系统领导者等7位重量级大咖力荐!涵盖图形学/仿真系统/网络架构/人工智能…大型网游仿真系统前后端全流程开发!完整工业级源代码
商品已成功飞到您的手机啦!快登录手机站看看吧!
> 扫一扫 下载客户端
> 微信关注“互动出版网”,便捷查询订单,更多惊喜天天有
编辑推荐
资深专家10年经验分享!摩拜联合创始人/中手游创始人/麒麟系统领导者等7位重量级大咖力荐!涵盖图形学/仿真系统/网络架构/人工智能…大型网游仿真系统前后端全流程开发!完整工业级源代码
编辑推荐:
游戏开发资深专家呕心沥血之作,分享10年实战经验
摩拜联合创始人、中手游创始人等7位重量级大咖力荐
权威:资深技术专家倾情奉献,7位重量级大咖力荐
全面:涵盖图形学、仿真系统、网络架构和人工智能等众多领域
系统:全流程讲解大型网络游戏及网络仿真系统的前后端开发
实用:详解一个完整的仿真模拟系统开发,提供完整的工业级源代码
7位重量级大咖力荐:
中手游创始人/董事长兼首席执行官肖健
微软合伙人/微软(中国)操作系统工程院院长谢育涛
威爱教育CEO/北京航空航天大学软件学院创始院长/教授孙伟
摩拜联合创始人/副总裁杨众杰
国家千人计划专家/江苏爱科赛尔云数据科技有限公司董事长兼CEO赵利林
仿真技术专家/国防科技大学教授/麒麟RTI编写者/麒麟操作系统领导者刘步权
首约汽车CTO张友星
内容简介
书籍 计算机书籍
本书以Unity图形开发和C++网络开发为主线,系统地介绍了网络仿真系统和网络游戏开发的相关知识。本书从客户端开发和服务器端开发两个方面着手,讲解了一个完整的仿真模拟系统的开发,既有详细的基础知识,也有常见的流行技术,更有完整的项目实战案例,而且还介绍了AR、人工智能和分布式架构等前沿知识在开发中的应用。本书共21章,分为4篇。第1、2篇为客户端开发,主要介绍了Unity基础与实战开发;第3、4篇为服务器端开发,主要介绍了C++网络开发基础与实战
本书内容全面,讲解通俗易懂,适合网络游戏开发、军事虚拟仿真和智能网络仿真系统开发等领域的开发人员和技术爱好者阅读,也适合系统架构人员阅读。另外,本书还适合作为相关院校和培训机构的培训教材使用。
目录
序言
前言
第1篇 Unity基础(客户端)
第1章 Unity介绍与相关环境的搭建和调试 2
1.1 Unity引擎介绍 2
1.1.1 Unity3D引擎部分 2
1.1.2 Unity3D编辑器部分 3
1.2 Unity引擎发展 5
1.3 Unity引擎应用场景和使用范围介绍 5
1.4 Unity软件安装 7
1.5 Unity Windows环境的安装和搭建 9
1.6 Unity Android环境的安装和搭建 11
1.7 Unity授权 15
1.8 Unity服务 16
第2章 编写Hello World与仿真系统体验 18
2.1 创建第一个空的工程 18
2.2 创建第一个脚本程序 20
2.3 编写第一个Hello Word程序 21
2.4 编译输出第一个程序 22
2.5 运行Hello World 23
2.6 打开仿真程序Demo 23
2.7 这是一个很好玩的仿真系统 25
2.8 进入训练场准备体验训练操作 25
2.9 控制人物行走 26
2.10 开动第一辆汽车 27
2.11 完成第一个仿真任务 27
2.12 本章小结与分析 28
第3章 Unity游戏开发语言 29
3.1 C#语言介绍 29
3.2 C#常用数据结构介绍 31
3.2.1 ArrayList链表结构 31
3.2.2 泛型List 31
3.2.3 Stack栈 32
3.2.4 队列Queue 33
3.2.5 字典Dictionary 34
3.3 C#的接口与继承 35
3.3.1 实现继承和接口继承 35
3.3.2 多重继承 35
3.3.3 结构的继承 35
3.4 C#的委托 37
3.5 C#多线程使用介绍 38
3.6 C#的反射机制 39
3.7 Unity中使用泛型 42
3.8 Unity中使用协程 42
3.9 Unity的序列化和网络协议库介绍 45
3.10 Unity中使用CLR进行Native交互 46
3.11 Unity中使用热更新语言Lua 47
3.12 本章小结与分析 50
第4章 在Unity中使用图形学知识 51
4.1 3D数学基本知识在游戏中的应用 51
4.2 三维坐标系 52
4.3 顶点坐标变换 53
4.3.1 向量是什么 53
4.3.2 矩阵是什么 54
4.3.3 如何操作向量 55
4.3.4 如何处理点或者向量与矩阵的乘法 55
4.3.5 点和向量通过矩阵的变换 56
4.4 光照与材质 58
4.4.1 什么是Shader的基本光照模型 59
4.4.2 什么是光照模型 59
4.4.3 什么是材质 61
4.5 Unity引擎中的渲染管线流程 67
4.6 Unity中实现模型的缩放和旋转等程序处理 70
4.7 Unity中计算射线相关的程序处理 74
4.8 Unity中制作一个简单的渲染特效 77
4.9 本章小结与分析 84
第5章 Unity编辑器的使用 86
5.1 创建一个空的工程 86
5.2 编辑器界面布局介绍 88
5.3 编辑器的常用功能介绍 89
5.4 编辑器模型编辑——旋转控制第一个模型 95
5.5 编辑器动作骨骼编辑——让人物动起来 96
5.6 编辑器光照和相机的编辑——让人物更真实 98
5.7 编辑器粒子特效编辑——让环境更绚丽 101
5.8 编辑器场景编辑——创建简单的战场 104
5.9 编辑器地形和光照贴图烘焙——让战场真实起来 105
5.10 编辑器遮挡剔除——提高战场的运行效率 107
5.11 编辑器资源管理——让工程更容易管理 109
5.12 编辑器控制台和调试——输出调试信息 110
5.13 编辑器资源商店和常用插件 111
5.14 编辑器材质编辑——让车辆变化一下样式 114
5.15 编辑器物理系统介绍——让人和车辆发生碰撞 116
5.16 本章小结与分析 118
第2篇 Unity实战(客户端)
第6章 虚拟仿真训练系统的架构和模块 122
6.1 什么是虚拟仿真训练 122
6.1.1 战斗模拟仿真训练 122
6.1.2 车辆仿真和工业操作 123
6.2 物理架构介绍——虚拟仿真训练系统 123
6.3 使用态势端发布授权任务 126
6.4 将分队长学员配置加入授权任务 127
6.5 启动仿真任务——完成一次美妙的任务体验 128
6.6 本章小结与分析 130
第7章 人物资源编辑与程序开发 132
7.1 模型资源的导入和整理编辑 132
7.2 人物动作资源的编辑和管理 134
7.3 数据资源的导入和整理 137
7.4 人物的控制和脚本程序开发 141
7.5 人物的行为状态机开发 147
7.6 人物特效的控制和状态交互 150
7.7 人物的物理状态和碰撞瞄准的程序交互 151
7.8 人物的属性和程序接口开发 154
7.9 在场景中运行人物资源和调试程序 158
7.10 本章小结与分析 159
第8章 场景资源编辑与程序开发 161
8.1 场景资源的导入和整理管理 161
8.2 场景数据资源的导入和场景程序管理 162
8.3 地形的编辑和程序相关功能开发 169
8.4 添加碰撞体树木和非碰撞体植被 172
8.5 创建光源和阴影渲染 174
8.6 添加场景静态物体和动态物体 176
8.7 添加场景水的插件并使用代码集成 182
8.8 添加天气系统插件并集成代码系统 187
8.9 添加场景道路插件并制作道路 192
8.10 添加天空盒和雾态效果 194
8.11 场景预览和渲染效率优化 196
8.12 场景系统加载切换和系统程序开发 198
8.13 本章小结与分析 202
第9章 资源组件和交互物品开发 203
9.1 资源组件的导入和整理管理 203
9.2 资源物品的数据导入和整理管理 205
9.3 AssetBundle的资源组成和功能API 207
9.4 开发自己的AssetBundle打包工具插件 208
9.5 加载和管理AssetBundle资源 212
9.6 车辆动力系统的插件使用和系统集成开发 216
9.7 关于飞行器直升机的开发和使用 223
9.8 地雷组件的开发和功能交互 225
9.9 物品管理器系统开发 230
9.10 本章小结与分析 235
第10章 NGUI组件开发和操作交互开发 236
10.1 NGUI插件介绍和导入工程 236
10.2 NGUI图集的使用和制作 237
10.3 NGUI图集的优化和DrawCall的优化策略 239
10.4 NGUI的底层实现原理和分析 240
10.5 UILable的使用 242
10.6 UISprite的使用 243
10.7 UIPanel的使用 244
10.8 UIScrollView的使用 245
10.9 UIButton的使用 247
10.10 UIRoot和UICamera的自适应 250
10.11 打造UI面向对象的动态加载和管理 251
10.12 登录UI功能开发 257
10.13 大厅任务信息系统UI功能开发 261
10.14 战场场景中主视角UI系统功能开发 268
10.15 VR开发——VR可以使用的VRGUI 276
10.16 本章小结与分析 277
第3篇 C++网络开发基础(服务器)
第11章 C++语言基础 280
11.1 C++简介 280
11.2 C++基本语法 281
11.3 C++数据结构 283
11.4 C++变量类型 289
11.5 C++修饰符类型 290
11.6 C++存储类 291
11.7 C++运算符和运算方式 294
11.8 C++函数 297
11.9 C++数组和高级功能 300
11.10 C++指针和高级功能 301
11.11 C++引用和常用方式 303
11.12 C++类和对象 305
11.13 C++继承和多态 307
11.14 C++接口和抽象 309
11.15 C++文件和流的处理 311
11.16 C++ STL库介绍 314
11.17 本章小结与分析 319
第12章 C++网络编程基础 321
12.1 Socket套接字 321
12.2 套接字寻址方式 326
12.3 Winsocket网络程序开发流程 328
12.4 在Visual Studio中创建网络工程 330
12.5 Winsocket编程准备 331
12.6 基于TCP的Socket编程 332
12.7 基于UDP的Socket编程 336
12.8 本章小结与分析 343
第13章 多线程和异步套接字 345
13.1 C++多线程开发 345
13.2 C++多线程互斥对象和同步 347
13.3 C++进程间通信 350
13.4 C++设置异步I/O的模式和方法 356
13.5 本章小结与分析 358
第14章 MySQL数据库的使用 359
14.1 MySQL数据库介绍和使用范围 359
14.2 安装MySQL数据库 360
14.3 MySQL可视化管理工具的使用 362
14.4 使用C++连接MySQL数据库 364
14.5 SQL语句和语法 369
14.6 MySQL备份导出数据和导入转移数据 371
14.7 本章小结与分析 374
第15章 网络协议Protobuf的使用 376
15.1 什么是Protobuf 376
15.2 Protobuf的功能是什么 378
15.3 Protobuf序列化的原理是什么 385
15.4 如何编写Protobuf的.proto文件 387
15.5 如何编译和生成Protobuf的编译程序 389
15.6 使用Protobuf协议制作一段网络小程序 392
15.7 本章小结与分析 399
第4篇 C++网络开发实战(服务器)
第16章 设计架构简单的互动服务器体系 402
16.1 Visio:一个绘制架构图的软件 402
16.2 如何使用图和连接线来表示架构 404
16.3 需要哪些服务来构建整个服务体系 406
16.4 登录服务器(LoginServer) 407
16.5 网关服务器(GateServer) 410
16.6 中心服务器(CenterServer) 413
16.7 战场服务器(BattleServer) 414
16.8 本章小结与分析 418
第17章 开发登录服务器LoginServer 420
17.1 登录服务器的作用 420
17.2 使用Protobuf生成登录授权文件和协议 421
17.3 创建LoginServer网络会话层底层模块 429
17.4 创建LoginServer服务逻辑模块 436
17.5 导入LoginServer的Protobuf协议 440
17.6 客户端Protobuf协议的导入和使用 443
17.7 从客户端登录到授权的逻辑处理过程 445
17.8 启动LoginServer,完成第一次授权登录 449
17.9 Redis缓存存储和信息处理 450
17.10 本章小结与分析 452
第18章 开发网关服务器GateServer 453
18.1 网关服务器及其作用 453
18.2 创建GateServer的框架主程序 454
18.3 创建网关转发和验证所需要的Protobuf协议脚本 461
18.4 生成服务器所需要的C++协议程序 464
18.5 生成客户端所需要的C#协议程序 466
18.6 完成网关服务器的逻辑功能开发 468
18.7 完成客户端从网关授权进入大厅的逻辑 478
18.8 本章小结与分析 481
第19章 开发中心服务器CenterServer 482
19.1 中心服务器及其作用 482
19.2 创建CenterServer框架主程序 484
19.3 创建中心服务器的Protobuf协议脚本 488
19.4 生成服务器所需要的C++协议程序 495
19.5 生成客户端所需要的C#协议程序 497
19.6 生成服务器data数据和协议代码 500
19.7 完成中心服务器的逻辑功能开发 504
19.8 启动客户端完成任务配置并开始仿真任务 513
19.9 本章小结与分析 520
第20章 开发战场服务器BattleServer 522
20.1 战场服务器及其作用 522
20.2 创建BattleServer框架主程序 524
20.3 创建战场服务器Protobuf协议脚本 527
20.4 生成服务器所需要的C++协议程序 537
20.5 生成客户端所需要的C#协议程序 539
20.6 生成服务器data数据和协议代码 550
20.7 创建战场服务器的聊天模块 553
20.8 创建战场逻辑模块 556
20.9 创建战场仿真人员同步模块 558
20.10 创建战场仿真车辆和飞行器模块 564
20.11 创建战场动态资源管理和监控模块 568
20.12 创建战场AI仿真敌人和飞行器AI状态机 571
20.13 调试战场服务器和客户端,启动仿真任务 576
20.14 本章小结与分析 579
第21章 一些仿真框架和人工智能的介绍 581
21.1 VR-LINK与HLA框架:高层体系模型框架的使用 581
21.2 游戏中常用的人工智能算法和深度学习引申 584
后记——全书总结与个人发展建议 588
前言
虚拟现实和人工智能是现今非常热门的新兴领域,该领域的一些技术结合计算机图形模拟、智能网络系统等可以极大地促进游戏行业和仿真领域的进一步发展。《Unity与C++网络游戏开发实战:基于VR、AI与分布式架构》这本书将相关技术理论与动手实践相结合,可以帮助读者循序渐进地掌握虚拟现实和人工智能等领域用于开发网络游戏和智能仿真系统的技能,为计算机相关专业的学生及技术人员提供极具价值的参考读物。
本书从Unity图形引擎和C++智能仿真服务两个方面介绍了图形引擎的基础原理和应用开发,以及智能网络服务的基础知识和前沿技术等内容,从而引领读者掌握从基础知识到系统开发,再到实战应用等图形模拟和智能网络系统开发的完整知识体系。
在以往的工作中,本书作者所在的研究小组及相关工作人员通过兢兢业业的工作,在各个领域都取得了不小的成绩。
他们自主研发了基于图形引擎和人工智能的产品,通过全息三维重建、人机交互、人工智能、语音识别和语音合成等技术,创造了可以自主对话的全息机器人团子。
他们自主研发了基于三维图形渲染的大数据可视化系统。该系统可以通过三维渲染实现非常酷炫和直观的表现数据,并且通过三级分层管理和智能技术形成一个完善的中控大脑。
他们自主研发了新闻媒体APP(豆包酷讯)、端到端的即时聊天工具(临讯)、AR社交工具(Rememball)等产品,并且获得了2018年数博会两项优秀产品奖。
在研究和学术方向,他们在区块链、人工智能、图形图像方面都有突出的研究成果,并且申请了多项非常有价值的专利。
在游戏领域,第一视频集团孕育和孵化了很多优秀项目,积累了宝贵的经验,包括曾经在美股上市的中手游集团。而本书的两位作者作为第一视频集团旗下研究院的资深研究人员,在虚拟现实、人工智能、仿真模拟和游戏研发的诸多方面都有建树。他们具有前瞻的技术、成熟的工程总体架构思维和宝贵的研发经验,在本书中将会与广大读者分享这些技术、经验和研究成果。
非常欢迎广大读者朋友和作者一同交流,共同促进!
张力军
第一视频集团董事局主席
中国APEC发展理事会理事长
中国互联网协会副理事长
美国斯坦福大学研究学者
媒体评论
业内点评
本书结合虚拟现实和人工智能等新兴技术,通过实战案例展现了网络游戏和仿真模拟系统的完整开发过程,给游戏开发人员提供了先进的开发思想和实战指导,助力开发者为用户提供全新的产品体验。
——中手游创始人/董事长兼首席执行官肖健
本书深入浅出地介绍了网络仿真系统和网络游戏开发的相关知识,涵盖网络游戏开发的基础知识与流行技术,能为游戏开发和仿真系统开发者提供切实的帮助,是一本不可多得的专业好书!
——微软合伙人/微软(中国)操作系统工程院院长谢育涛
本书作者从事游戏和仿真系统开发多年,有深厚的技术功底,对前沿开发技术也颇有研究,他们所编写的这本书对于虚拟现实开发程序员来说是一本不可多得的好书,特别推荐!
——威爱教育CEO/北京航空航天大学软件学院创始院长/教授孙伟
本书讲解了一个完整的仿真模拟系统的开发,其中涉及的仿真技术与分布式智能计算等技术,对物联网开发、多实体节点的分布式AI计算等领域有较高的参考价值。
——摩拜联合创始人/副总裁杨众杰
大数据时代,如何利用最新的计算机图形学、虚拟现实技术、分布式架构及人工智能技术打造新一代的网络游戏及仿真产品,是业内每个从业者都关心的事。本书将为你打开这扇门。
——国家千人计划专家/江苏爱科赛尔云数据科技有限公司董事长兼CEO赵利林
本书结合先进的仿真技术,以及VR、AI及分布式技术,系统地介绍了如何利用Unity与C++开发网络仿真系统和网络游戏,是一本具有开拓性的书籍,这对下一代分布式仿真系统和网络游戏的研发有较高的参考价值。
——仿真技术专家/国防科技大学教授/麒麟RTI编写者/麒麟操作系统领导者刘步权
本书在传统游戏开发的基础上重点介绍了VR、AI及分布式仿真等技术,这对新一代游戏开发技术的普及和应用很有价值,非常值得游戏开发和仿真系统开发的相关人员借鉴。
——首汽约车CTO张友星