在多人游戏中,为什么服务器不像媒体播放器那样对待客户端?

时间:2013-07-22 20:17:27

标签: c# xna directx

如您所知,当您打开Youtube时,可以选择1080p视频。 我的问题是,为什么服务器不将客户端视为媒体播放器?

所以基本上,客户端只向服务器发送输入,就像在按下什么按钮一样,服务器完成绘图,然后像Youtube一样将其作为视频发送回客户端。 也许服务器可能很难为游戏中的几个玩家完成所有绘图,但这样可以防止作弊几乎 100%。 (颜色相关的黑客不会停止..)

我应该把它放在gamedev上吗?

但如果服务器是超级计算机并且玩家不多,那么这不是一个好主意吗?

2 个答案:

答案 0 :(得分:2)

这就是像OnLive这样的公司已经提供的产品。 http://www.onlive.com/

您只是遇到延迟问题。当您正在玩射击游戏时,您希望尽可能降低延迟。游戏玩家通过更快的鼠标,更快的屏幕以及更少的重影来优化这一点。 当您的游戏就像一个视频时,延迟(ping)会变得非常大。唯一的区别是每个人都是落后的。

答案 1 :(得分:0)

服务器倾向于关注游戏逻辑而不是任何渲染,它们负责保持控制和同步客户端,以允许客户端在渲染过程中执行更复杂的计算,如果我们改变我们面临完全不同的问题。 ..

视频流只是一系列图像,今天标准的全功能游戏是由完整的3D环境构成的,其中发生了复杂的交互和物理。

这当然提出了一个问题......服务器如何一次渲染所有这些视点以生成视频流它是否需要每个播放器1个GPU,就像你的家用电脑一样?

在带宽方面,您还必须考虑互联网不可靠。平均用户家庭宽带连接得到适应和带宽,这就是为什么视频流总是看似平滑和游戏滞后。

这样想想...... 在游戏中我按下前进键,我周围的所有其他玩家需要立即知道这一点。 因此,一旦我做了某件事,或者只要我周围的事情发生,我就需要按需带宽。

在普通的视频流中,只要服务器能够快速获得前30秒,其余部分就可以随着带宽的增加而降低。 因此,我可能能够快速获得30秒的视频数据,但接下来要说25秒我从服务器上根本不需要任何数据因为我有足够的数据来保持视频播放器的运行发生在游戏中。

例如...... 人们多久会在执勤时做出意想不到的事情?