云游戏的架构设计和技术实现 云游戏技术难题

云游戏的架构设计和技术实现 云游戏技术难题,第1张

游戏这个概念非常简单,就是我把游戏放到服务器上去运行,把游戏渲染出来的的音视频画面,通过流的形式传送到终端,终端上不再需要安装游戏,各种终端比如说电视、手机、PC、平板都可以运行。这样我们就不需要关心游戏怎么去适配不同的软硬件平台、终端性能够不够等等这些问题。

什么是云游戏

云游戏这个概念非常简单,就是我把游戏放到服务器上去运行,把游戏渲染出来的的音视频画面,通过流的形式传送到终端,终端上不再需要安装游戏,各种终端比如说电视、手机、PC、平板都可以运行。这样我们就不需要关心游戏怎么去适配不同的软硬件平台、终端性能够不够等等这些问题。这个概念本身是非常好的,在2009年的时候,这个技术就已经出现了,美国有家叫Onlive 的公司第一个推出云游戏服务,但是他最终在商业上还是失败了,技术最后被索尼公司收购,并运用在PS Now上。云游戏的概念虽然非常好,但里面技术挑战性非常高,有非常多的技术问题需要解决,那个时代可能还比较早,软硬件都还不太成熟,所以最后没有能够成功的商业化。到了现在这个时间点上,云游戏技术开始慢慢成熟起来,已经具备了商业化的基础。

下面是对我们产品的介绍。对云游戏来说,用户主要会关心延迟问题,玩一个对抗性很强的游戏,如果中间卡个几百毫秒那肯定受不了,游戏体验就会非常差。所以我们最核心的关注点就是要把延迟降低到最小、并且把画质保持在一个相对可以接受的程度。目前我们产品的整体延迟(从用户按下操作按钮到看到画面变化)可以控制到50毫秒以下,在这样的延迟水平下玩格斗游戏赛车游戏感觉都是非常流畅的,画面可以支持到720P/1080P,网络带宽只要4兆以上就可以了。我们单台服务器可以支持 20-50 路的并发游戏数量,也就是单台服务器可以同时为 50 个玩家提供服务,单个并发用户的整体服务器硬件成本在500元左右,可以说是一个非常有竞争力的成本。当年 OnLive 失败的主要原因是因为他的硬件成本非常高,他的一台服务器仅能服务一个用户,单个并发用户的成本可能就要上万,在这样的成本水平上要实现商业上的成功是非常困难的。目前这个项目已经在小范围的内测,他们主要是 toB 的业务,为宽带运营商提供增值游戏服务。

云游戏的技术挑战

第一个是实时性

游戏的整体延迟包括了游戏逻辑运算时间、音画渲染的时间,加上编码的延时、网路传输的延时、客户端解码的延时、客户端向服务端发送控制信息的延时,云游戏的实时性要达到一个可令玩家接受的程度,这个技术挑战是非常高的,当然也要依靠硬件和网络本身的性能,如果没有足够的带宽也不可能做到。

第二是虚拟化技术

虚拟化在服务端已经非常成熟,我们有虚拟机技术以及各种容器技术,但是在桌面上就不是那么成熟,普通的虚拟桌面不支持 GPU 的虚拟化,而游戏非常依赖 GPU 渲染,若没有 GPU 的虚拟化就没办法实现云游戏了,所以虚拟化是一个很大的技术瓶颈。

第三是经济性

每个并发用户的服务器硬件成本关系到这个模式能否成功商业化,如果成本超出了用户可接受的范围,那就没有办法实现盈利。

最后是运维管理

云游戏的运维管理跟传统的服务器运维管理不一样,因为用到的服务器硬件不一样,同时硬件负载又很高,这对运维管理提出了新的挑战,所以在技术上就要解决这些问题。

平台选择

游戏的运行平台非常多,各种各样,但是比较适合的只有windows平台。Linux 平台虽然开放,但是它没有什么游戏支持,其他的主机游戏平台基本都属于封闭技术,微软和索尼自己都在研发主机上的云游戏,那我们是没有办法去做的。

android平台也是非常适合做云游戏。服务器跑个android游戏再传到android设备上这个概念看上去比较怪异,但实际上IPTV运营商非常喜欢这个概念,因为机顶盒不允许安装第三方的应用,监控比较严,那我们通过云端化来绕过这种限制,这对机顶盒这种产品非常有帮助,所以android平台也是我们要考虑的。但今天主要是介绍 windows 平台游戏的虚拟化,android上是用硬件方案跑的,所以就不介绍了。

windows游戏的虚拟化技术主要是两条路线。一个是虚拟机方案,但主要问题是 GPU 虚拟化技术不成熟,可能需要一些专业级的显卡支持,成本非常高、性能损耗非常大,每一个游戏都跑一个 Guest OS 非常浪费内存,所以这条方案就被我们否掉了。同时windows 上也缺少可用的容器级技术,我们只能采取 API Hook 方式手工实现虚拟化,我们称之为 Sandbox 方案。

Sandbox方案就是把游戏所用到的系统 API 全部hook接管,让游戏认为自己运行在一个正常的 OS 上面,但实际上是我们接管的一个 OS。这样做的好处是性能损耗很小,基本上没有额外的损耗,但是比较痛苦的要针对每个 API 做适配,需要对每个游戏进行适配,而且游戏通常不开源,游戏开发商通常也不会配合你去修改代码,需要一些 hack 技术来针对每个游戏做适配。

技术实现细节

图像和声音的采集

图形API有 DirectX 9,10,11,12还有OpenGL,接管这些API后我们就可以把画面重定向到视频编码器,不不在屏幕上输出了。音频比较简单,只要接管Windows Audio Session API就可以了。

输入操作的虚拟化

手柄比较麻烦,因为手柄支持的API接口比较多样化,比如 DirectInput, XInput, RawInput,还有些游戏直接读 USB 设备,实现这些API的接管工作是比较琐碎的。

存储的虚拟化分

一是游戏的资源部分,比如执行程序、、声音等等。这些资源文件都是只读的,需要一个共享存储来放这些文件,因为这些文件体积比较大,通常一个游戏需要几十个G的容量,如果全部都放在本地节点上的话,对节点的存储容量要求很大,而且以后更新维护起来也比较困难。所以我们用 NAS 来共享这些文件,这么做的网络 I/O 开销会非常大,后面我会介绍如何来优化这一块。第二是用户配置和存档数据等等可变数据,这些数据需要集中化存储,同时可能存在跨机房的访问需求。用户离机房越近延迟越小,所以需要多地、异地部署服务器,让玩家在全球漫游访问你的服务,这需要有跨机房文件共享的能力。

其他需要适配的内容

比如游戏一般都是单实例,我们需要绕过游戏的防多启动机制。还有些游戏无法后台窗口运行,我们需要通过 API Hook 的方式,让游戏认为它处于一个正常的状态。最理想的适配方式是通过 SDK,让 CP 来适配你的云游戏平台,但目前来说还不实际,因为云游戏的商业化还没有完全的落地,需要技术去慢慢的推进。

音视频编码技术

视频流采用的是 H264 编码,主要是 720P/1080P@30fps,1080P@60fps 对网络和硬件的要求过高,暂时还做不到。音频编码使用AAC。因为标准的封装格式不含控制流,不能传输用户的操作数据,所以我们自己定义了一种封装格式,简单的把 H264 和 AAC 的裸流封装起来传送给客户端。

目前用软件编码器基本不可行,一路视频编码就要消耗掉一个CPU核的资源,跑个三四路就把 CPU 资源吃光了,游戏就没办法运行了。幸运的是三大硬件厂商 Intel、AMD 和 NVIDIA 都推出了自己的硬件编码器,Intel的CPU自带硬件编码器,支持20+路的720P实时编码没有问题。NVIDIA 的硬件编码性能更高,可以直接对GPU的 FrameBuffer 做编码并传到 CPU 上,节省了很多内存的拷贝,性能是最好的。

视频编码的参数调优

首先避免使用 B 帧以减小延迟;较大的 GOP 设置来减少 I 帧的比例,保证每一帧消耗的码率都在一个最大可控的范围内;0 延迟设置,保证每输入一帧数据编码器都立刻输出这帧的编码数据,避免编码器缓冲帧数据;bitrate控制,使用固定比特率的算法是不适合的,因为游戏中经常会存在一段时间的静止画面,此时比特率很低,对接下来的变化帧编码器就会分配大量的比特来编码,这就会造成这一帧数据特别巨大,从而带来了额外的网络数据传输延迟。所以我们采用了自适应算法,在保证比特率总体在最大范围内的同时,保证每一帧消耗的码率都在一个最大可控的范围内,确保每帧的数据传输延迟可控。

终端的视频解码优化

H264 的解码是比较头疼的,因为android平台适配起来比较痛苦,尤其是它的硬件解码坑非常多。如果直接使用mediacodec封装的硬件解码器,那个延迟非常高,基本没有办法用。有一些芯片厂商会提供一个后门,让你把缓冲关掉直接输出画面,但是这需要对接具体的芯片厂商,无法做到通用,只适合一些机顶盒类的产品。所以还是需要用软件解码的方式来支持 0 延迟的输出。android设备的性能参差不齐,早期的低端芯片性能不满足实时解码 ,需要利用 GPU 做一些加速。

网络传输的优化

用UDP传输的话,因为H264 本身不支持容错,一旦丢包就会出现花屏,在下一个I帧到来前都无法恢复,通常要持续好几秒,严重影响用户体验,无法接受;而TCP 丢包的话只是出现几百毫秒的卡顿,实测还是可以接受的,所以我们放弃了 UDP 协议传输,利用TCP在网络层做一些调优使延迟降低。实测下来,现在的宽带网络延迟基本没有问题,主要问题反而是在用户侧的 WiFi 上,一旦出现无线信号干扰,网络抖动会比较厉害。

服务器和客户端的同步算法

我们的云游戏把所有环节的缓冲都关掉了,全部是零延迟自出,原来缓冲设计的目的就是为了抵抗颠簸,比如网络的颠簸、或某一个编解码环节出现了抖动,通过缓冲把这个抖动抹平,现在把缓冲都关掉后对同步会造成很大的影响。有很多因素会造成颠簸,比如服务器发送数据过快,客户端来不及消费,造成的结果就是延迟非常大。所以我们自己设计了一套算法来解决这个同步的问题。具体的做法就是让客户端在完成一帧画面的显示后向服务器反馈一个消息,服务端根据客户端反馈的消息就知道客户端消费到了第几帧,跟服务器现在编码的帧数做比较,在一定的阈值内就继续传输下一帧,否则等待客户端的确认消息,直到客户端赶上来。这样做的结果就是当颠簸发生时服务器能及时感知并停止发送数据,等颠簸消除后再继续发送最新的游戏画面,实测下来获得了比较理想的同步效果。

存储的优化。只读资源数据是放在 NAS 上的,几百个游戏共享一个 NAS,加载游戏时的网络 I/O 开销非常大,所以我们做了一个优化来本地缓存这些共享文件,利用dokan实现了一个虚拟磁盘来访问资源文件,再把虚拟磁盘重定向到NAS上,同时利用节点的本地 SSD 硬盘来缓存热点文件,从而降低了网络 I/O 的开销。

更多的云游戏玩法

旁观模式,一个玩家玩的时候其他玩家可以接入这个视频流,看他怎么玩;对战模式,其他玩家可以切到这个游戏流里面两个人在一起对战;还有直播模式,把视频流封装为 HLS,推送到 CDN 上进行直播,这是非常流行的主播模式,云游戏都可以支持。

云游戏运维方面的挑战

云游戏需要维护大量的服务器节点,而且跟普通的服务器管理不一样,需要自己造一些轮子。由于所有的硬件资源都是高负荷运行,我们要最大化的增加硬件利用率,一般的服务器 CPU 占 10% 就很不错了,而云游戏的 CPU 都是在接近 100% 的情况下运行,另外还需要GPU的参与,这导致了硬件的可靠性相对比较低。

软件因为没有隔离性,可靠性也会降低,一旦出现问题怎么维护、怎么恢复,成了比较麻烦的问题,因为没有现成的方案,就我们需要自己设计服务器集群来解决这些问题。另外还有跨机房部署的问题。

硬件方案的选型,我们主要有三套方案,一套是 GRID 显卡方案,这是 NVIDIA 为云游戏专门设计的专业显卡,上面带有编码器可以将游戏画面直接编码输出,但它的缺点是价格比较昂贵,一台服务器的硬件成本大约在 5 万元左右。

还有就是消费级独显方案,去掉了昂贵的专业显卡的同时还能获得更好的GPU性能,所以这套方案的性价比要高很多,每路并发的硬件成本可以降低到 500 元以下。

最后一个方案是 Intel 核显方案。完全不需要用独立显卡,但 Intel 核心显卡的性能偏弱,运行大型的 3D 游戏会比较吃力,运行一些休闲游戏没有问题。这个方案的优点是不需要显卡,1U 的尺寸下可以装入多个节点,集成度提高,而且易于维护,也是一个值得考虑的方案。

下面来解释一下云游戏一下集群的概念。Node(节点)对应一台物理计算机,一个节点可以同时运行多个游戏实例为用户提供服务。多个节点组成一个 Group(节点组),一个Group内包含了若干节点和NAS,对应于一个机柜, 多个机柜用万兆交换机串连起来,部署在一个机房,称之为 Cluster(集群),再上面一层是云游戏平台,包括用户的入口管理、登录计费等,可以跨越多个机房。

下图是系统架构图:

User Profile Storage 用来存放用户的存档数据,Log Storage 用来存储日志数据,还有数库等等。

Group 内的各 Node 组成对等网络,可以任意添加或者删除 Node,各个 Node 通过竞争算法选举出来一个 Master,由 Master 与 Manager 建立连接,对整个 Group 进行管理,如果Master出现故障则由剩余的节点重新选举出一个新的Master进行接管,从而保证了任何节点的故障不会影响到其他节点的正常服务。在Node 上仅需要安装好操作系统和 Daemon 服务,无须配置,即插即用。Node daemon对服务器进行管理和监控;游戏文件存放于 NAS 上,由各 Node 共享;内网/外网流量隔离,防止互相影响。

Manager 用于对集群内的所有 Node 进行管理, 配置/更新/上线/负载均衡/监控,游戏数据管理更新,用户数据管理等等。提供 web 后台给运维操作,实现运维的自动化和可视化操作。Manager使用双机热备模式实现高可用,避免单点故障造成整体系统瘫痪。

日志和监控。我们需要有完整的日志来记录和追踪系统行为,保障整个系统的可维护性。同时系统会实时监控每个游戏实例以及 Node 的状态,包括 cpu、gpu、网络io 的使用率,游戏帧率、延迟等等数据,所有数据保存下来,后面可以通过一些数据分析的手段来找到性能的瓶颈,然后再针对性的进行优化,进一步优化我们的系统。

提问:对家用的wifi做一些支持,能详细说说吗

乔捷:首先,要提示用户wifi信号不好会造成延迟,终端检测到网络信号不好时及时的提示用户。其次,对于网络延迟的抖动,我们的同步控制算法能够补偿一部分抖动。最后,可以在服务器上调优一下TCP参数,比如说减小数据重传的超时时间,加快数据包的重传,可以有效缓解抖动。

提问:对用户体验有影响吗

乔捷:目前肯定有,我们是标清的 720P 的画面质量,因为要考虑硬件成本和网络传输成本。但随着成本的逐步降低,未来要支持1080P甚至4K画质也是没有问题的。

提问:对于 CP 的开发模式有哪些影响

乔捷:目前没有影响,我们只是买一个授权,然后由我们进行对接,不需要CP方去改动代码。当然如果 CP 方愿意来对接我们的SDK话那是最好的,可以加入对战、排名、内购等各种功能,利用云游戏的特点为游戏增加更多的玩法。

提问:我们这么多年下来的计算,最早开始所有的计算都是在中心,随着终端计算能力的增强,计算很多功能都到终端上面去,现在你的方案是把所有的终端都放在中心,这对服务器成本要求很高如果能够容纳一些用户同时运行大型游戏,服务器成本是否会非常高

乔捷:对。为什么我们要中心化因为终端的种类太多了,手机、平板、电视、PC,这么多平台,你一个游戏要去移植这么多平台,本身的工作量就非常大,而且用户要去下载安装,推广的成本非常高,网络游戏单个用户的获客成本已经到了几十到上百块钱。所以,服务器成本表面上看是有点高,但是算上开发成本分发成本推广成本,这点服务器成本已经完全可以接受。

这就和视频一样,最早我们看视频是买光盘的,后来有了网络以后是从网络上下载,而现在宽带普及了之后已经没有人下载了,都是直接视频点播,因为它方便,门槛越低越容易被用户接受,现在还会有人买光盘吗基本上已经没有了吧。电视电脑都不是我们的工具了,大家现在用的比较多就是手机。计算资源越来越中心化集中,管理成本不断降低。现在买游戏机、ps3、ps4,每隔 5 年换一个游戏机,以后不需要游戏机更新换代了,更新换代对于厂商来说是一个比较痛苦的过程,有一个漫长的迁移过程。将来根本不用关心什么硬件,比如今年的“吃鸡”游戏非常流行,但是很多玩家的显卡性能不足,跑不起来。将来游戏都是放在服务器上跑,用户根本不用担心跑不跑得动,接上就可以玩。一旦这个服务模式成立,硬件厂商都会向这个方向投入资源,最早2011年的时候我们就预研过云游戏的技术,当时做了以后就放弃,后来看到这个机会以后推出来了grid显卡,一下子拉很高,看这一块商业模式什么时候落地,现在还是在探索的过程当中,将来是大趋势。

提问:除了服务上面成本,要求终端的网络非常好吗对解码要求高么

乔捷:对,因为网络非常普及的情况下,宽带已经无处不在了,所以这个问题基本已经被解决了。现在的主流中低端芯片可以实时软件解码720P的视频流。

提问:我知道游戏有很多种类,目前云游戏技术支持的范围怎么样云游戏的交互目前为止是否还很有限

乔捷:主要是主机游戏,用手柄玩的游戏。看类型,使用键盘鼠标的游戏比如FPS在电脑上比较好操作,在电视上就不太方便了,目前主要还是适配手柄操作的游戏。

问题一:一部大型游戏是怎么制作出来的? 软件:有两部分。

1编写游戏引擎、建模:需要熟练掌握C/C++、Microsoft Develop Studio开发环境、使用SDK或者MFC、DirectX/OpenGL、SQL编程、SQLServer或Oracle数据库配置。

2策划、美工、音效:MAYA、3DMAX 、PS。。。

流程:策划――引擎――建模――美工――测试。

团队:首先要组成一个由各功能小组核心构成的策划组,负责构思整个游戏的内容架构。包括故事大纲,游戏风格,人物造型,操作模式,任务模式,装备模式等等,以及程序编写、美工贴图能否实现等等,资金预算能否维持等等。

然后筹建各功能小组:主编程组,负责游戏引擎。建模组,负责编写一个完整的世界,各种人物、怪等。美工组,负责包装游戏。测试组,设置若干组服务器,对游戏进行测试。

保守估计,总人数30-50是最小的配置了。

最佳答案

“软件、流程、团队、时间……”

问题二:怎么制造电脑游戏(大型) 第一件要做的事就是选择一门语言。你有一大堆的选择,包括 Basic、Pascal、C、C++、Java 等等。然后选择合适的编辑器、选择目标平台(比如windows)。

哈!是讨论真正做游戏的时候了。虽然我所说的大部分内容适用于其他语言,为简单起见,我将假定你选择了 C/C++ 来进行 Windows 编程。

首先,在你考虑如何开始做游戏之前,你应该能很好的掌握 C 和 C++。你应该了解并精通指针、阵列、结构、函数,以及类等。做到了这一点,你就可以开始制作游戏了。

本文无法教授你关于制作游戏所该了解的一切。幸运的是,这也不是必要的。有很多关于这方面的书,网上也有数以百计的教程。GameDev 应该会有目前你所需要的一切。下面是我对你起步的一些建议:

学习一本或几本书。对于 Windows 游戏的初学程序员,《Tricks of the Windows Game Programming Gurus 》是一本极好的Windows编程入门教程。在这个站点里拥有许多本站 Books section 里所列出的好书。阅读这些书籍,运行所有的例程,反复研读你不理解的章节。

使用网上教程补充书本的不足。网上教程除了阐明一些你阅读的东西外,通常也会包含一些书本上没有涉及的主题。

找专家进行咨询。如果你无法从书上或教程中找到答案,到本站的留言版或聊天室来,这里有许多乐于提供帮助的人。

不要把上面几点当成是个有序的过程,而应当看作是一个循环往复的并行过程。

仅仅是学习、思考是远远不够的,你应当把你所学的东西付诸实践。从一个简单的游戏开始,逐步发展。你可以阅读一下 Geoff Howland 的文章《How do I Make Games A Path to Game Development》。

首先,为自己的工作制定一个计划。不要急于加入一个团队,因为那只会减缓你的学习进程。当你囊中拥有数个游戏时,你将为一个团队作出更大贡献。

关于书本,有件事我要提醒一下:你需要阅读除了游戏编程外的其他书籍。为了制作出你在商店货价里看到的各种游戏,你将不得不钻研那些比大多数游戏编程书籍所授内容更高深的话题。有些可能你能从教程中找到,但是,你还是有必要买几本关于图形、人工智能、网络、物理等等方面的书。这是获得计算机科学学位的必经之路,因为你将被要求学习一些你认为与游戏编程无关的课程,而实际上它们是相关的。

|总结&技巧|

1游戏想做的真实,需要找资料、罚材或实地考察(如游戏《丛林之狐》就

是到越南边实地考察边编游戏的)。

2玩大量的游戏。你会因此找到灵感,从而帮助你制作更优秀的游戏。当然,这也是一种受欢迎的解除编程压力的调剂方式。

3帮助别人。在你帮助别人的过程中,你会学到更多东西。

4完成你的作品。不要陷入这样一种思想的圈套中:“我知道我可以完成这个游戏,但是我有个更好的主意,我要换做这个好的项目。”如果你能坚持有始有终,你会学到更多的东西,并且你有作品证明你不仅仅是空谈。在你具有丰富的经验之前,做得简单一点,不要尝试制作一个又大又复杂的游戏。

出发吧!经过多年的努力编程,你会成功的!会的!!

问题三:大型单机游戏是如何做出来的? 大型的,最少起码也得几十人吧。大型单机游戏需要很多方面的设计与加工,图形图像设计,代码编写,声音混合,剧情,动画,等等相关方面。。不是寥寥数人能做得来的。。

这里面,分工合作最关键最重要

问题四:用电脑怎样制作游戏软件 一 学游戏制作的人很多,可很多人水平太垃圾

现在游戏制作这个行业是一个非常有前景的朝阳行业,做这个行业的人,目前在我们国家的薪水都是顶级的,而这方面的人才却很稀少。大学里也很少开设这种游戏制作的课程,即便是有,很多老师的水平基本上也就是一些理论派,没什么干货。其实很多人想做这个行业,于是从网上扒拉各种游戏制作软件教程学习,学了半天也是一头雾水,稀里糊涂,说不会吧,还真会,说会吧,水平还真不咋地。学的东西太杂乱无章,没有什么系统,缺乏真功夫,很难在游戏制作这个行业里立足,这是我们很多游戏学习行业人员的悲哀。

二 有一直游戏制作软件学习,叫无论你在哪,都可以看现场直播

现在网上很多游戏制作的学习教程和软件有很多,但是大多数都已经过时了,一些老掉牙的知识罢了,学了也是白学,浪费时间罢了,俗话说的好,选择不对,努力白费。我个人人为,要么不学,要么就学出一个样子来,怎么才能做到呢?当然是要有高手带,只有站在高手的肩膀上才能成为高手中的高手。还有学习模式的改革,很多学生以前希望在网上可以看现场直播老师授课,同时还可以和老师互动,不明白的问题老师还可以当场解答,想学习的话,在网上就能系统的学习,这种地方有吗?以前没有,现在有了,如果你想学习的话,可以来这个群:排在前面的一组是:二九六,处于中间位置的一组是:六七六,最后的一组是:二八九,按照顺序组合起来即可。这里有每天的全国各路高手现场直播分享的游戏制作精品课程,你什么都不需要付出,只需要来听就行,我们只欢迎努力有上进心的人,不努力瞎混日子的,就不要加了。

三 与其玩游戏,不如做游戏

要知道玩游戏和做游戏不是一个概念。玩游戏是一种业余爱好生活方式,做游戏是一个工作,是一个产业,是一份职业,是一个事业。打个比方吧,看**的人很多,但是拍**的人少;踢球的人多,但是做教练的人少;用化妆品的人多,但是做化妆品的少;喝酒的人多,但是做酒的人少。这么一解释大概明白这中间的区别了吧?游戏作为一个产业在中国十年,发展的势头很强劲。

四 游戏是是怎么被打造出来的

1游戏制作过程并不神秘。按平台不同,可分为网络游戏(online game)和家用机游戏(consol game)。其开发过程大致可以分为原始创意阶段――项目研发阶段――项目开发阶段――游戏测试阶段――游戏运营阶段。作为个人,在游戏制作过程中的分工有美术(AD美术总监、角色、场景、动作、特效、UI界面)、程序(主程、网络端程序、客户端程序)、策划(主策划、执行策划)、音乐(外包为主)。而网络游戏和家用机游戏在美术方面的要求不大相同。网络游戏更注重UI的交互、风格的多样、内容的充实。而家用机游戏更注重画面的表现力、技术的先进和UI细节的细腻。近几年,网络游戏的美术在画面表现力上有向家用游戏靠近的趋势。就国内该行业的发展现状来说,美术、程序这两块的合格人才是最紧缺的。

2游戏制作全过程:

(1)游戏策划

工作范畴:故事设计,AI设计,玩法设计,数字设定,关卡设计

人员配置:编剧人员,游戏策划人员

(2)游戏美术

工作范畴:原画,建模,贴图,动画特效,用户界面

人员配置:原画师,模型师,材质师,动画师,特效师,UI设计师

(3)游戏程序

工作范畴:游戏引擎程序,脚本编辑,材质开发

人员配置:程序员,软件工程师,Shader程序员

(4)游戏整合

工作范畴:关卡整合,数值调整,程序与美术结合,音效置入

人员配置:程序员,软件工程师

(5)游戏测试

工作范畴:数值微调,极限>>

问题五:怎样制作一款游戏? 开发大型游戏需要下列工具:1需要语言编译器:用于程序的编写与代码的翻译。

2地图编辑器:用于地图的设置和关卡的设置。

3脚本编辑器:用于游戏脚本的编写。

4游戏开发引擎:好的引擎可以开发出好的游戏(包括图象引擎、物理引擎等)。

5美工的动画处理工具:用于游戏CG处理。

6音乐编辑器:用于游戏的音乐编辑。

2、3、4、5都是可以用1来编写的,但一般软件公司都会有自己的一套现成的(或购买或自行开发的)。

开发大型游戏1个人是很难完成任务的。

问题六:3D大型游戏怎么制作出来的,大约需要多少人。 需要用到编程软件,c,c++等,而且需要一个团队去做,需要的时间要看人数,技术,游戏大小,游戏质量,少则几个月,多则几年

问题七:怎么制作大型单机游戏,我很喜欢玩游戏,想制作一款属于自己的游戏,制作大型单机游戏用什么软件? 3DMAX,大型3D游戏制作软件,自己的电脑配置一定要高端,不然想都别想,

RPG类型的 RPG游戏制作大师 这个不需要高端配置

GALGAME类型的 彩虹文字游戏制作精灵 最简单也是最低端的制作工具

小游戏类的 FALSH

自己决定吧 功游戏不是你一个人就能做出来的 需要一个团队一个集体

问题八:怎么制作游戏?大型游戏,像cf,lol! 。。。小小提醒你一下 首先前期的资金准备游戏策划及市场行情 大量编程人员 角色与环境编辑人员 美术渲染 音效和动作捕捉 伤害数值技能设定 初级测试 后期宣传国家认证游戏维护 等等 希望对你有帮助

问题九:大型网游里地图都是怎么制作出来的 在一般情况下,人物是不会动的,变换的都是背景

少数游戏到了地图边界的时候,人物可以随意移动因为这时候无法把人物固定在中央

一个上GB的游戏,程序其实只占50MB左右,可能比这个数小

你可以看看魔兽争霸3里DLL文件和EXE加起来有多少

游戏那么庞大,主要都是因为音乐,动画,造成的

但是,游戏制作流程里,程序是非常重要的一环是程序把各种元素表现出来的

问题十:谁知道怎么制作一个大型游戏???最好是视频速成攻略 大型游戏需要:大量资金,一个完备的团队。

一个完备的团队:主程埂策划,美工,音效,素材,数据平衡,测试等等。

楼上正解,一个大型的游戏参与人数少则几十,多则数百,每个大型的游戏(成功的,失败的就不说了)都有自己独特的风格,独立的游戏引擎,可能为了这个游戏的开发开发团队需要做很多很多程序。所以说一个人做大型游戏穷其一生也不会有所成就。

地区游戏服务一般都是很多年前出现的了,当年受游戏服务器地理局限才会出现地区太远可能网络不通畅的原因,现在大部分服务商已经解决了这些问题所以很少会初学地区选择的问题。

游戏服务器架设是在特定服务器上架设特定游戏咯

一般有游戏版本,懂基本配置方法,就可以架设网络游戏了。现在这个年代游戏架设已经不是难事了。有点基本知识普通人也可以自己架设游戏了。未来自己架设游戏估计大部分人都会会的

首先要知道游戏类型是什么,然后知道承载人数是多少,以及开发周期多少。需要根据这些来决定游戏架构和技术选型。

对于gameplay来说,本身就是个大循环,一定频率进行tick,接收来客户端或者其他服务器的rpc,处理逻辑,然后数据落地以及发送数据给客户端或者其他服务器,一般gameplay来说在同一个进程里都是同步的方式去编写,同步的实现大多数是单线程的,或者使用coroutine来实现actor这种模式。大部分游戏交互都是比较多,所以不论service和service之间的交互还是玩家和玩家之间的交互,如果考虑多线程的同步的问题,会非常复杂以及很容易做错,所以一个service内同一个时刻都是在一个线程中执行的。

针对mmo或者一些竞技类游戏往往有场景管理的概念,就是游戏AOI,比如一个玩家移动,需要告诉周围所有的玩家,复杂度在nn,如果减少这个n,就有了AOI算法,比如九宫格,十字链表等,如果刚开服的时候很多人挤到一个主城中,就算采用九宫格和十字链表等AOI等算法,往往同屏内玩家数量还是很大,客户端渲染的单位数量比服务器少一个数量级的,所以场景管理这里还可以有个分线的做法,玩家多的时候,不同线不可见,玩家少的时候进行合并。

如果做帧同步一些关键点为表现要和逻辑分离,随机算法和随机种子的一致性,数学库浮点换定点,三角函数采用泰勒展开或者查表法,需要保序的容器,timer不能基于钟表时间而需要帧timer,以及防作弊(一般都是投票法,或者服务器跑个验证端)

现在很多游戏在线更新bug甚至不停服更新慢慢变成一种强需求了,实现这种方式主要使用脚本热更新,热重启+逻辑内存以及ab服切换来实现。

你说的有点幼制,因为制做游戏是个超复杂的工程,决不是你想象的那样减单,我恐怕回达完你,5,6天都不见得说完,而且做大网游1个人是不可能的,在是天材也不可能,你想想,就拿QQ聊天说吧,在游戏中,1个玩家向另一玩家说话时,说的那话须要被你设的数剧过率,然后在却认,光着一个程序,你要做1-2个月,因为我是一个游戏工司经理,你在想想画面,音乐,怪。。。。。。太庞大了,你要真想知道去买本书最好,你要不是专业的话,好多细节你都不能理解,我跟你说不清,反正就是特庞大,一个很拉级很拉级,都快接进小游戏的网游,也要9-12月,你要不信去书中看看,(程序:精通CC++等程序语言\x0d\\x0d\美工:3D建模,贴图,图像渲染等\x0d\\x0d\策划:游戏情节(NPC对话),人物职业设定,数值设定等\x0d\你有家底吗??有就好办:\x0d\“软件、流程、团队、时间……”\x0d\\x0d\不是一开始就要泼楼主冷水,只是想让你有个大致的概念。\x0d\\x0d\当年丁磊推出大话的时候,是号称200人的策划团队历时两年的作品。200人或许是有水分了,但是两年是一定不会少了的。想当年老徐离开网易的时候,带着梦幻西游的游戏引擎自己跑去另外弄一个游戏,在不用再设计引擎的情况下,光策划建模就用了差不多一年的时间。\x0d\\x0d\这个得有心理准备了。\x0d\\x0d\软件:有两部分。\x0d\1编写游戏引擎、建模:需要熟练掌握C/C++、MicrosoftDevelopStudio开发环境、使用SDK或者MFC、DirectX/OpenGL、SQL编程、SQLServer或Oracle数据库配置。\x0d\\x0d\2策划、美工、音效:MAYA、3DMAX、PS(音效制作方面不熟,这方面无法提供)。\x0d\\x0d\流程:策划——引擎——建模——美工——测试。\x0d\\x0d\团队:首先要组成一个由各功能小组核心构成的策划组,负责构思整个游戏的内容架构。包括故事大纲,游戏风格,人物造型,操作模式,任务模式,装备模式等等,以及程序编写、美工贴图能否实现等等,资金预算能否维持等等。\x0d\\x0d\然后筹建各功能小组:主编程组,负责游戏引擎。建模组,负责编写一个完整的世界,各种人物、怪等。美工组,负责包装游戏。测试组,设置若干组服务器,对游戏进行测试。\x0d\\x0d\保守估计,总人数30-50是最小的配置了。\x0d\最佳答案\x0d\“软件、流程、团队、时间……”\x0d\\x0d\不是一开始就要泼楼主冷水,只是想让你有个大致的概念。\x0d\\x0d\当年丁磊推出大话的时候,是号称200人的策划团队历时两年的作品。200人或许是有水分了,但是两年是一定不会少了的。想当年老徐离开网易的时候,带着梦幻西游的游戏引擎自己跑去另外弄一个游戏,在不用再设计引擎的情况下,光策划建模就用了差不多一年的时间。\x0d\\x0d\这个得有心理准备了。\x0d\\x0d\软件:有两部分。\x0d\1编写游戏引擎、建模:需要熟练掌握C/C++、MicrosoftDevelopStudio开发环境、使用SDK或者MFC、DirectX/OpenGL、SQL编程、SQLServer或Oracle数据库配置。\x0d\\x0d\2策划、美工、音效:MAYA、3DMAX、PS(音效制作方面不熟,这方面无法提供)。\x0d\\x0d\流程:策划——引擎——建模——美工——测试。\x0d\\x0d\团队:首先要组成一个由各功能小组核心构成的策划组,负责构思整个游戏的内容架构。包括故事大纲,游戏风格,人物造型,操作模式,任务模式,装备模式等等,以及程序编写、美工贴图能否实现等等,资金预算能否维持等等。\x0d\\x0d\然后筹建各功能小组:主编程组,负责游戏引擎。建模组,负责编写一个完整的世界,各种人物、怪等。美工组,负责包装游戏。测试组,设置若干组服务器,对游戏进行测试。\x0d\\x0d\这其中涉及到C++等语言类\x0d\PS3D玛雅等图象、动画处理软件\x0d\没有人可以在极短时间内掌握这些技术的现在一般设计者都是专攻某一门,然后由高等设计师进行后期语言处理将他们融合在一起\x0d\\x0d\保守估计,总人数30-50是最小的配置了。首先,你需要一个工作团队,当然了,游戏的主闯团队你可以一个人来承担(如游戏世界观的设计,游戏中人物的设计:包括都有哪些种族,什么职业,拿什么武器等等。还有什么任务的设计),但是你需要美工来画出你所想象的那些东西~~\x0d\然后你需要程序员为你编写游戏代码,你需要更多的人来设计游戏的平衡性(比如多少级什么什么经验升级,做任务得多少经验,包括技能的伤害和属性的关系:比如攻击多少打防御多少的人掉多少血。),然后需要有人来设计游戏的怪物、BOSS以及其他什么的。\x0d\设计完以后,需要找音乐师来为游戏配乐,需要有人来为人物的动作(比如挨打,攻击,施法的声音)。这些弄完以后,需要找测试员来进行测试,测试游戏最终的平衡度,和寻找游戏中因代码的设计而存在的一些BUG。\x0d\\x0d\我说的只是主要的几个点,当然还有其他许多事情我没有说到,因为毕竟我也不是专业做这玩意的~~其实做个游戏挺难的,设计世界观什么的都很容易,但要把游戏平衡度做到非常完美却是十分困难的,中国没有几个做的出来的,国外也没有多少能做出来的~~)这只是一个程序,不说了,去买本书最好

需要指出一点的是,再大型的网络游戏也是由每个独立的服务器组组合在一起的,也就是游戏中的某某服。为了提高玩家的游戏体验,每组服务器不会承载太多玩家,一般也就几千人,不然你可以想象几十万玩家全挤在几张地图里的样子每个服务器组一般根据负载由几台物理的服务器组成,它的工作不仅仅是存储,交换数据,主要是负责玩家在游戏内行为的逻辑处理,而这个过程不可能在玩家的客户端中完成。各服务器各司不同的角色,大致分为以下几种:

1数据库

2游戏逻辑(玩家行为,地图,怪物,任务等)

3聊天,社会关系(好友,公会等)

4与客户端登录连接,交换数据

5管理服务器(负责组内游戏进程沟通,响应玩家的切线切地图等要求)

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 云游戏的架构设计和技术实现 云游戏技术难题

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情