如您所知,当您打开 Youtube 时,有一个 1080p 视频的选项。我的问题是,为什么服务器不将客户端视为媒体播放器?
所以基本上,客户端只向服务器发送输入,就像按下了什么按钮一样,服务器进行绘图,并将其作为视频发送回客户端,就像 Youtube 那样。也许服务器可能很难在一个游戏中为多个玩家完成所有绘制,但这几乎可以100% 防止作弊。(与颜色相关的黑客不会停止..)
我应该把它放在gamedev上吗?
但是如果服务器是超级计算机,并且玩家不多,这不是一个好主意吗?
这就是像 OnLive 这样的公司已经提供的。http://www.onlive.com/
你只是有延迟的问题。当您玩射击游戏时,您希望尽可能降低延迟。游戏玩家使用更快的鼠标、更快的屏幕和更少的重影等来优化这一点。当你的游戏就像一个视频时,延迟(ping)会变得非常大。唯一不同的是,每个人都落后了。
服务器倾向于关注游戏逻辑而不是任何渲染,他们负责保持控制和同步客户端,以允许客户端执行更复杂的计算作为渲染过程的一部分,如果我们改变我们面临一个完全不同的问题......
视频流只是一系列图像,按照今天的标准,一个功能齐全的游戏是由一个完整的 3D 环境构建的,其中发生了复杂的交互和物理。
这当然提出了一个问题……服务器如何一次渲染所有这些视点以生成视频流,它是否需要像您的家用电脑一样的每个播放器 1 个 GPU?
您还必须考虑到互联网在带宽方面是不可靠的。普通用户的家庭宽带连接会出现带宽的断断续续,这就是为什么视频流看起来总是流畅且游戏滞后的原因。
这样想……在一场比赛中,我按下了前进键,而我周围的所有其他玩家都需要立即知道这一点。因此,一旦我做某事或发生在我身边的事情,我就需要按需带宽。
In a normal video stream, As long as the server can get the first 30 seconds to me in a hurry the rest can come down as bandwidth allows. So I might be able to get a quick burst of data for 30 seconds worth of video but then for the next say 25 seconds I need no data at all from the server because I have enough to keep the video player going, something that would rarely happen in a game.
For example ... How often does someone do something unexpected in call of duty?