您好,欢迎来到聚文网。 登录 免费注册
UNITY与C++网络游戏开发实战:基于VR.AI与分布式架构

UNITY与C++网络游戏开发实战:基于VR.AI与分布式架构

  • 装帧: 平装
  • 出版社: 机械工业出版社
  • 作者: 王静逸 刘岵 著
  • 出版日期: 2018-11-01
  • 商品条码: 9787111617617
  • 版次: 1
  • 开本: 16开
  • 页数: 589
  • 出版年份: 2018
定价:¥139 销售价:登录后查看价格  ¥{{selectedSku?.salePrice}} 
库存: {{selectedSku?.stock}} 库存充足
{{item.title}}:
{{its.name}}
精选
内容简介
本书以Unity图形开发和C++网络开发为主线,系统地介绍了网络仿真系统和网络游戏开发的相关知识。本书从客户端开发和服务器端开发两个方面着手,讲解了一个完整的仿真模拟系统的开发,既有详细的基础知识,也有常见的流行技术,更有完整的项目实战案例,而且还介绍了AR、人工智能和分布式架构等前沿知识在开发中的应用。本书共21章,分为4篇。第1、2篇为客户端开发,主要介绍了Unity基础与实战开发;第3、4篇为服务器端开发,主要介绍了C++网络开发基础与实战。本书内容全面,讲解通俗易懂,适合网络游戏开发、军事虚拟仿真和智能网络仿真系统开发等领域的开发人员和技术爱好者阅读,也适合系统架构人员阅读。另外,本书还适合作为相关院校和培训机构的培训教材使用。
作者简介
王静逸,计算机学士、金融学硕士、中国计算机学会会员、神兔未来科技有限公司创始人、QQ炫舞(1与2)引擎开发工程师和客户端负责人。曾经任职于武汉中铁桥梁科学研究院、上海联想研究院和华为研究所,任研究员。曾经参与了腾讯OO炫舞、全民炫舞微信手游及曙光之战OL等热门游戏的研发和图形引擎研发。创办神兔未来科技有限公司,从事分布式仿真、VR与AR等领域的图形学研究与物联网网络系统开发,并主持了多项军用仿真系统和武警虚拟现实训练系统的开发。目前在布比(BUMO)公链任研究员和架构师,并兼任第一视频集团研究院研究员与技术总监,从事分布式区块链和分布式人工智能的研究。
目录
目录序言前言第1篇 Unity基础(客户端)第1章 Unity介绍与相关环境的搭建和调试 21.1 Unity引擎介绍 21.1.1 Unity3D引擎部分 21.1.2 Unity3D编辑器部分 31.2 Unity引擎发展 51.3 Unity引擎应用场景和使用范围介绍 51.4 Unity软件安装 71.5 Unity Windows环境的安装和搭建 91.6 Unity Android环境的安装和搭建 111.7 Unity授权 151.8 Unity服务 16第2章 编写Hello World与仿真系统体验 182.1 创建第一个空的工程 182.2 创建第一个脚本程序 202.3 编写第一个Hello Word程序 212.4 编译输出第一个程序 222.5 运行Hello World 232.6 打开仿真程序Demo 232.7 这是一个很好玩的仿真系统 252.8 进入训练场准备体验训练操作 252.9 控制人物行走 262.10 开动第一辆汽车 272.11 完成第一个仿真任务 272.12 本章小结与分析 28第3章 Unity游戏开发语言 293.1 C#语言介绍 293.2 C#常用数据结构介绍 313.2.1 ArrayList链表结构 313.2.2 泛型List 313.2.3 Stack栈 323.2.4 队列Queue 333.2.5 字典Dictionary 343.3 C#的接口与继承 353.3.1 实现继承和接口继承 353.3.2 多重继承 353.3.3 结构的继承 353.4 C#的委托 373.5 C#多线程使用介绍 383.6 C#的反射机制 393.7 Unity中使用泛型 423.8 Unity中使用协程 423.9 Unity的序列化和网络协议库介绍 453.10 Unity中使用CLR进行Native交互 463.11 Unity中使用热更新语言Lua 473.12 本章小结与分析 50第4章 在Unity中使用图形学知识 514.1 3D数学基本知识在游戏中的应用 514.2 三维坐标系 524.3 顶点坐标变换 534.3.1 向量是什么 534.3.2 矩阵是什么 544.3.3 如何操作向量 554.3.4 如何处理点或者向量与矩阵的乘法 554.3.5 点和向量通过矩阵的变换 564.4 光照与材质 584.4.1 什么是Shader的基本光照模型 594.4.2 什么是光照模型 594.4.3 什么是材质 614.5 Unity引擎中的渲染管线流程 674.6 Unity中实现模型的缩放和旋转等程序处理 704.7 Unity中计算射线相关的程序处理 744.8 Unity中制作一个简单的渲染特效 774.9 本章小结与分析 84第5章 Unity编辑器的使用 865.1 创建一个空的工程 865.2 编辑器界面布局介绍 885.3 编辑器的常用功能介绍 895.4 编辑器模型编辑——旋转控制第一个模型 955.5 编辑器动作骨骼编辑——让人物动起来 965.6 编辑器光照和相机的编辑——让人物更真实 985.7 编辑器粒子特效编辑——让环境更绚丽 1015.8 编辑器场景编辑——创建简单的战场 1045.9 编辑器地形和光照贴图烘焙——让战场真实起来 1055.10 编辑器遮挡剔除——提高战场的运行效率 1075.11 编辑器资源管理——让工程更容易管理 1095.12 编辑器控制台和调试——输出调试信息 1105.13 编辑器资源商店和常用插件 1115.14 编辑器材质编辑——让车辆变化一下样式 1145.15 编辑器物理系统介绍——让人和车辆发生碰撞 1165.16 本章小结与分析 118第2篇 Unity实战(客户端)第6章 虚拟仿真训练系统的架构和模块 1226.1 什么是虚拟仿真训练 1226.1.1 战斗模拟仿真训练 1226.1.2 车辆仿真和工业操作 1236.2 物理架构介绍——虚拟仿真训练系统 1236.3 使用态势端发布授权任务 1266.4 将分队长学员配置加入授权任务 1276.5 启动仿真任务——完成一次美妙的任务体验 1286.6 本章小结与分析 130第7章 人物资源编辑与程序开发 1327.1 模型资源的导入和整理编辑 1327.2 人物动作资源的编辑和管理 1347.3 数据资源的导入和整理 1377.4 人物的控制和脚本程序开发 1417.5 人物的行为状态机开发 1477.6 人物特效的控制和状态交互 1507.7 人物的物理状态和碰撞瞄准的程序交互 1517.8 人物的属性和程序接口开发 1547.9 在场景中运行人物资源和调试程序 1587.10 本章小结与分析 159第8章 场景资源编辑与程序开发 1618.1 场景资源的导入和整理管理 1618.2 场景数据资源的导入和场景程序管理 1628.3 地形的编辑和程序相关功能开发 1698.4 添加碰撞体树木和非碰撞体植被 1728.5 创建光源和阴影渲染 1748.6 添加场景静态物体和动态物体 1768.7 添加场景水的插件并使用代码集成 1828.8 添加天气系统插件并集成代码系统 1878.9 添加场景道路插件并制作道路 1928.10 添加天空盒和雾态效果 1948.11 场景预览和渲染效率优化 1968.12 场景系统加载切换和系统程序开发 1988.13 本章小结与分析 202第9章 资源组件和交互物品开发 2039.1 资源组件的导入和整理管理 2039.2 资源物品的数据导入和整理管理 2059.3 AssetBundle的资源组成和功能API 2079.4 开发自己的AssetBundle打包工具插件 2089.5 加载和管理AssetBundle资源 2129.6 车辆动力系统的插件使用和系统集成开发 2169.7 关于飞行器直升机的开发和使用 2239.8 地雷组件的开发和功能交互 2259.9 物品管理器系统开发 2309.10 本章小结与分析 235第10章 NGUI组件开发和操作交互开发 23610.1 NGUI插件介绍和导入工程 23610.2 NGUI图集的使用和制作 23710.3 NGUI图集的优化和DrawCall的优化策略 23910.4 NGUI的底层实现原理和分析 24010.5 UILable的使用 24210.6 UISprite的使用 24310.7 UIPanel的使用 24410.8 UIScrollView的使用 24510.9 UIButton的使用 24710.10 UIRoot和UICamera的自适应 25010.11 打造UI面向对象的动态加载和管理 25110.12 登录UI功能开发 25710.13 大厅任务信息系统UI功能开发 26110.14 战场场景中主视角UI系统功能开发 26810.15 VR开发——VR可以使用的VRGUI 27610.16 本章小结与分析 277第3篇 C++网络开发基础(服务器)第11章 C++语言基础 28011.1 C++简介 28011.2 C++基本语法 28111.3 C++数据结构 28311.4 C++变量类型 28911.5 C++修饰符类型 29011.6 C++存储类 29111.7 C++运算符和运算方式 29411.8 C++函数 29711.9 C++数组和高级功能 30011.10 C++指针和高级功能 30111.11 C++引用和常用方式 30311.12 C++类和对象 30511.13 C++继承和多态 30711.14 C++接口和抽象 30911.15 C++文件和流的处理 31111.16 C++ STL库介绍 31411.17 本章小结与分析 319第12章 C++网络编程基础 32112.1 Socket套接字 32112.2 套接字寻址方式 32612.3 Winsocket网络程序开发流程 32812.4 在Visual Studio中创建网络工程 33012.5 Winsocket编程准备 33112.6 基于TCP的Socket编程 33212.7 基于UDP的Socket编程 33612.8 本章小结与分析 343第13章 多线程和异步套接字 34513.1 C++多线程开发 34513.2 C++多线程互斥对象和同步 34713.3 C++进程间通信 35013.4 C++设置异步I/O的模式和方法 35613.5 本章小结与分析 358第14章 MySQL数据库的使用 35914.1 MySQL数据库介绍和使用范围 35914.2 安装MySQL数据库 36014.3 MySQL可视化管理工具的使用 36214.4 使用C++连接MySQL数据库 36414.5 SQL语句和语法 36914.6 MySQL备份导出数据和导入转移数据 37114.7 本章小结与分析 374第15章 网络协议Protobuf的使用 37615.1 什么是Protobuf 37615.2 Protobuf的功能是什么 37815.3 Protobuf序列化的原理是什么 38515.4 如何编写Protobuf的.proto文件 38715.5 如何编译和生成Protobuf的编译程序 38915.6 使用Protobuf协议制作一段网络小程序 39215.7 本章小结与分析 399第4篇 C++网络开发实战(服务器)第16章 设计架构简单的互动服务器体系 40216.1 Visio:一个绘制架构图的软件 40216.2 如何使用图和连接线来表示架构 40416.3 需要哪些服务来构建整个服务体系 40616.4 登录服务器(LoginServer) 40716.5 网关服务器(GateServer) 41016.6 中心服务器(CenterServer) 41316.7 战场服务器(BattleServer) 41416.8 本章小结与分析 418第17章 开发登录服务器LoginServer 42017.1 登录服务器的作用 42017.2 使用Protobuf生成登录授权文件和协议 42117.3 创建LoginServer网络会话层底层模块 42917.4 创建LoginServer服务逻辑模块 43617.5 导入LoginServer的Protobuf协议 44017.6 客户端Protobuf协议的导入和使用 44317.7 从客户端登录到授权的逻辑处理过程 44517.8 启动LoginServer,完成第一次授权登录 44917.9 Redis缓存存储和信息处理 45017.10 本章小结与分析 452第18章 开发网关服务器GateServer 45318.1 网关服务器及其作用 45318.2 创建GateServer的框架主程序 45418.3 创建网关转发和验证所需要的Protobuf协议脚本 46118.4 生成服务器所需要的C++协议程序 46418.5 生成客户端所需要的C#协议程序 46618.6 完成网关服务器的逻辑功能开发 46818.7 完成客户端从网关授权进入大厅的逻辑 47818.8 本章小结与分析 481第19章 开发中心服务器CenterServer 48219.1 中心服务器及其作用 48219.2 创建CenterServer框架主程序 48419.3 创建中心服务器的Protobuf协议脚本 48819.4 生成服务器所需要的C++协议程序 49519.5 生成客户端所需要的C#协议程序 49719.6 生成服务器data数据和协议代码 50019.7 完成中心服务器的逻辑功能开发 50419.8 启动客户端完成任务配置并开始仿真任务 51319.9 本章小结与分析 520第20章 开发战场服务器BattleServer 52220.1 战场服务器及其作用 52220.2 创建BattleServer框架主程序 52420.3 创建战场服务器Protobuf协议脚本 52720.4 生成服务器所需要的C++协议程序 53720.5 生成客户端所需要的C#协议程序 53920.6 生成服务器data数据和协议代码 55020.7 创建战场服务器的聊天模块 55320.8 创建战场逻辑模块 55620.9 创建战场仿真人员同步模块 55820.10 创建战场仿真车辆和飞行器模块 56420.11 创建战场动态资源管理和监控模块 56820.12 创建战场AI仿真敌人和飞行器AI状态机 57120.13 调试战场服务器和客户端,启动仿真任务 57620.14 本章小结与分析 579第21章 一些仿真框架和人工智能的介绍 58121.1 VR-LINK与HLA框架:高层体系模型框架的使用 58121.2 游戏中常用的人工智能算法和深度学习引申 584后记——全书总结与个人发展建议 588
摘要
序言    虚拟现实和人工智能是现今非常热门的新兴领域,该领域的一些技术结合计算机图形模拟、智能网络系统等可以极大地促进游戏行业和仿真领域的进一步发展。《Unity与C++网络游戏开发实战:基于VR、AI与分布式架构》这本书将相关技术理论与动手实践相结合,可以帮助读者循序渐进地掌握虚拟现实和人工智能等领域用于开发网络游戏和智能仿真系统的技能,为计算机相关专业的学生及技术人员提供极具价值的参考读物。    本书从Unity图形引擎和C++智能仿真服务两个方面介绍了图形引擎的基础原理和应用开发,以及智能网络服务的基础知识和前沿技术等内容,从而引领读者掌握从基础知识到系统开发,再到实战应用等图形模拟和智能网络系统开发的完整知识体系。    在以往的工作中,本书作者所在的研究小组及相关工作人员通过兢兢业业的工作,在各个领域都取得了不小的成绩。    他们自主研发了基于图形引擎和人工智能的产品,通过全息三维重建、人机交互、人工智能、语音识别和语音合成等技术,创造了可以自主对话的全息机器人团子。    他们自主研发了基于三维图形渲染的大数据可视化系统。该系统可以通过三维渲染实现非常酷炫和直观的表现数据,并且通过三级分层管理和智能技术形成一个完善的中控大脑。    他们自主研发了新闻媒体APP(豆包酷讯)、端到端的即时聊天工具(临讯)、AR社交工具(Rememball)等产品,并且获得了2018年数博会两项优秀产品奖。    在研究和学术方向,他们在区块链、人工智能、图形图像方面都有突出的研究成果,并且申请了多项非常有价值的专利。    在游戏领域,第一视频集团孕育和孵化了很多优秀项目,积累了宝贵的经验,包括曾经在美股上市的中手游集团。而本书的两位作者作为第一视频集团旗下研究院的资深研究人员,在虚拟现实、人工智能、仿真模拟和游戏研发的诸多方面都有建树。他们具有前瞻的技术、成熟的工程总体架构思维和宝贵的研发经验,在本书中将会与广大读者分享这些技术、经验和研究成果。    非常欢迎广大读者朋友和作者一同交流,共同促进!    张力军    第一视频集团董事局主席    中国APEC发展理事会理事长中国互联网协会副理事长美国斯坦福大学研究学者前言    在计算机技术日新月异的今天,人们对于计算机所能完成的工作有了越来越高的期待。人们不仅需要计算机能够处理复杂的计算问题,还希望它能够模拟虚拟世界的数据并将其形象地展现出来,并且赋予它理解人类的能力。对于研发人员而言,要赋予计算机这样的能力就要用到虚拟仿真系统开发的相关技术,涉及计算机图形学、Unity引擎、客户端开发、服务器端开发和人工智能等。    虚拟仿真技术是一种结合计算机图形学的专业模拟技术,它通过计算机来帮助人们体验各种真实环境下的情况,并且通过计算机仿真模拟得到结果和数据,从而能够映射真实世界。虚拟仿真技术在专业训练、工业模拟和网络游戏开发等领域都有很广泛的应用。    作为行业的资深研发人员,本书的两位作者长期在第一视频研究院工作,对游戏开发、军事仿真和人工智能等领域有多年的研究,所以想编写一本图书,将多年的研发经验分享给想要学习虚拟仿真技术的人。如今这一想法已经实现,经过大半年的奋战,完成了这本书。    本书通过一个完整的仿真训练系统,全面介绍了虚拟仿真开发需要用到的各种技术,涵盖计算机图形学、Unity引擎、客户端语言、仿真系统应用实战、服务器语言、系统架构和仿真系统服务器开发等内容。另外,书中还结合实际应用介绍了诸如VR、HLA仿真及人工智能等前沿技术,以帮助读者及时了解新兴领域的技术趋势。相信读者朋友通过系统地学习本书内容,可以大幅度提升自己在仿真开发领域的研发水平。本书特色    1.知识体系全面,适合读者系统学习  本书系统地介绍了Unity图形引擎和C++智能仿真服务的相关知识,全面涵盖图形引擎的原理和应用开发,以及智能网络服务的相关知识和前沿技术,可以带领读者系统地掌握从基础知识到系统开发,再到实战应用等图形模拟和智能网络系统开发的完整知识体系。    2.以真实项目案例贯穿全书,实用性很强    本书通过一个完整的仿真训练系统项目案例贯穿全书,在讲解案例的过程中将虚拟仿真系统开发需要掌握的各种技术穿插讲解,既可以让读者很好地掌握这些技术,又可以手把手带领读者参与真实的项目开发,体验实际开发的点点滴滴。    3.提供独有的工业级源代码,稍加修改即可用于实际开发    本书的案例源代码是基于作者以往开发的实际项目简化而来,并且结合仿真系统开发的相关知识进行了深入剖析,真正实现了从技术学习到应用工程落地的转化。读者将书中的项目案例源代码适当修改即可用于自己的工程项目中。    4.提供完善的开发环境下载支持,方便读者使用    本书涉及多种开发环境和工具,建议读者使用书中讲解时采用的版本。为了方便读者学习,作者将这些开发环境和工具的下载地址整理了出来,同本书案例源代码一起提供给读者下载使用。具体获取方式见前言中的“本书配套资源获取”部分。本书内容    第1篇 Unity基础(客户端)    第1章Unity介绍与相关环境的搭建和调试,介绍了Unity客户端引擎的发展历史和特点,以及Unity引擎的安装方法。    第2章编写Hello World与仿真系统体验,带领读者编写第一个Unity测试程序,以熟悉Unity程序开发的流程。本章通过引导读者体验仿真系统Demo,从而了解最终的开发目标,熟悉系统的功能模块。    第3章Unity游戏开发语言,介绍了Unity开发的语言基础和应用实例,另外还介绍了Unity的一些高级技术,例如Lua热更新语言、C#和C++交互的Native语言CLR、网络协议语言Protobuf等。    第4章在Unity中使用图形学知识,介绍了图形学的基础知识,包括三维数学基础、渲染管线原理、光照模型和材质等。本章从底层剖析Unity引擎的渲染原理,并通过实例介绍该引擎的技术要领。    第5章Unity编辑器的使用,介绍了Unity编辑器的各项功能,包括模型操作、动作骨骼编辑、相机渲染编辑、粒子特效编辑、场景编辑、地形和场景光照贴图烘培、资源处理、遮挡处理、控制台调试、资源商店、插件应用和物理碰撞编辑等。    第2篇 Unity实战(客户端)    第6章虚拟仿真训练系统的架构和模块,介绍了虚拟仿真训练系统的概念和架构。本章把客户端架构分化成多个功能模块,并带领读者进行了实际体验。    第7章人物资源编辑与程序开发,介绍了人物模块的开发,包括动态资源的管理与加载、Unity协程和多线程技术、人物动作控制管理、人物AI状态机、物理碰撞和事件处理等。    第8章场景资源编辑与程序开发,介绍了场景模块的开发,包括场景资源的动态管理、光照渲染的数据管理、地形程序处理、碰撞体和非碰撞体植被处理、静态物体和动态物体资源管理、水流和天气特效管理、仿真战场道路模拟、渲染优化、场景加载和切换等。    第9章资源组件和交互物品开发,介绍了资源管理模块的开发,包括资源动态压缩和加载管理、Unity功能插件的使用和系统集成、AssetBundle资源打包、AssetBundle资源加载和引用计数、车辆动力系统、飞行器功能模拟、地雷组件模拟和动态物品管理等。    第10章NGUI组件开发和操作交互开发,介绍了如何使用NGUI完成UI功能系统模块的开发,包括NGUI的图集和优化方式、NGUI的底层原理、NGUI功能组件、动态UI加载的设计模式、资源管理器的运用、登录UI系统开发、大厅任务UI系统开发、战场交互UI系统开发,VR操作UI系统-VRGUI开发等。    第3篇 C++网络开发基础(服务器)    第11章C++语言基础,从基础语言和实例开发两个方面介绍了C++编程技术。    第12章C++网络编程基础,介绍了网络编程TCP套接字、网络编程UDP套接字和网络编程的设计模式等内容。    第13章多线程和异步套接字,介绍了C++多线程的使用方式、异步套接字的使用方法和进程间的通信等内容。    第14章MySQL数据库的使用,介绍了MySQL的安装、数据库基础语言、数据库可视化管理、使用C++连接MySQL,以及MySQL的备份、导入和导出等内容。    第15章网络协议Protobuf的使用,介绍了Protobuf的原理和作用、Protobuf脚本语言、Protobuf编译生成的方法和流程等,帮助读者了解Protobuf在程序开发中的使用方式。    第4篇 C++网络开发实战(服务器)    第16章设计架构简单的互动服务器体系,介绍了整个仿真系统的架构,包括架构设计的基础知识、系统架构原理、Visio绘制架构图、架构仿真系统的服务器体系、登录服务器模块设计、网关服务器模块设计、中心服务器模块设计,以及战场服务器模块设计等。    第17章开发登录服务器LoginServer,介绍了服务器功能分化设计、网络协议代码和脚本编写、登录服务器的逻辑模块、登录服务器和客户端的联调、仿真系统的授权、Redis缓存存储和优化技术等。    第18章开发网关服务器GateServer,介绍了网关服务器授权和转发、网络协议代码和脚本编写、网关功能逻辑、网关服务器和客户端的联调等。    第19章开发中心服务器CenterServer,介绍了中心服务器框架和功能模块设计、网络协议代码和脚本编写、中心服务器任务系统、data数据配置、仿真系统设计模式、中心服务器和客户端的联调等。    第20章开发战场服务器BattleServer,介绍了聊天模块、战场逻辑模块、人物仿真同步模型、战场人物AI智能、仿真车辆和飞行器同步模型、战场任务资源管理、天气和环境管理模块等。本章内容比较重要,可以帮助读者理解仿真系统的开发,并且掌握一些设计模式和算法的应用。    第21章一些仿真框架和人工智能的介绍,探讨了游戏开发和虚拟仿真的一些前沿技术,包括军事领域的仿真HLA高层体系结构、RTI支撑系统和VR-LINK框架等,以及人工智能领域的有限状态机、分层状态机、神经网络和深度学习等。    后记结合作者的一些感想,总结了本书的知识体系,并分享了作者对读者的一些建议。本书配套资源获取方式    本书涉及的工程源代码文件,以及需要用到的开发环境和工具的下载地址等配套资源需要读者自行下载。请在www.hzbook.com上搜索到本书,然后单击“资料下载”按钮进入本书页面,再单击页面上的“配书资源”链接即可下载。本书读者对象? 游戏和仿真领域的客户端开发人员;? 游戏和仿真领域的服务器端开发人员;? 智能网络仿真系统开发人员;? 网络游戏开发人员;? 需要了解整体系统开发的管理人员;? 需要学习系统架构的人员;? 对图形和网络系统开发感兴趣的人员;? 高校计算机相关专业的学生;? 相关社会培训机构的学员。本书作者    本书由第一视频集团研究院的资深研究员王静逸和研究院执行院长刘岵编写。第一视频集团董事局主席、中国APEC发展理事会理事长、中国互联网协会副理事长、美国斯坦福大学研究学者张力军为本书作序;研究院的各位同事在本书编写期间也提供了大力支持。在此对他们表示感谢!    因受作者水平和成书时间所限,书中可能还存在疏漏和不当之处,敬请广大读者指正。联系作者、研究院或编辑的电子邮箱为langkexiaoyi@gmail.com(作者)和hzbook2017@163.com(编辑)。    最后祝大家读书快乐,让我们共同学习与进步!    编著者

蜀ICP备2024047804号

Copyright 版权所有 © jvwen.com 聚文网