V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
horou
V2EX  ›  程序员

云游戏是如何实现的

  •  
  •   horou · 311 天前 · 2292 次点击
    这是一个创建于 311 天前的主题,其中的信息可能已经有所发展或是发生改变。

    一台服务器设备如何运行多个游戏,画面输出到不同的远程端,玩家的按键操作是如何隔离的, 是不是需要用到类似虚拟机的技术

    16 条回复    2024-01-04 14:53:44 +08:00
    AoEiuV020JP
        1
    AoEiuV020JP  
       311 天前
    以我有限的理解,有些专业显卡是可以多个虚拟机共享加速的,主要靠的应该是这个,其他普通虚拟机技术就可以,
    horou
        2
    horou  
    OP
       311 天前
    @AoEiuV020JP 其他的东西普通虚拟机是一个完整的系统吗,每开一个游戏就启动一个虚拟机,这样会不会非常耗费性能资源
    fatigue
        3
    fatigue  
       311 天前
    根本不会用到虚拟机技术,客户端其实就是相当于看视频做交互,服务端渲染整个世界,每个玩家对应一个自己的摄像机处理遮罩这些,大致原理是这样,关键点就是服务端渲染优化,尽量减少重复渲染。这是我几年前还在游戏行业时云游戏的了解,不知道现在演进什么样了
    miaomiao888
        4
    miaomiao888  
       311 天前
    说是云游戏其实就是特定优化过的远程云电脑
    gam2046
        5
    gam2046  
       311 天前
    @horou #2

    XBOX: 好像在点我?

    ---

    xbox 主机上,每个游戏都是虚拟化隔离开的,底层采用的 hyper-v ,因此也就支持 Quick Resume 这种逆天的用户体验。也正因为虚拟化隔离的,微软自己号称是最安全的游戏主机,毕竟即使某些应用有 bug ,由于虚拟化的存在,也还需要沙盒逃逸,才有可能破解主机。

    在硬件支持的情况下,虚拟化的开销远远没有想象大,不是跑分或者极限场景下,几乎不可感知。
    flyqie
        6
    flyqie  
       311 天前 via Android   ❤️ 1
    @fatigue #3

    事实上,现在的云游戏都是 vm 或者 container ,gpu 这边可以做 vgpu 或者直通,看财力了。

    一般传输都是走 webrtc 什么的 p2p ,自己搞个纯 cs 协议做云游戏的不多。

    你说的那种模式不适合商业化平台,与单一游戏耦合过密。
    flyqie
        7
    flyqie  
       311 天前 via Android
    @gam2046 #5

    说起这个,我倒是很怀疑巨硬自己家云游戏用不用 windows container ,看起来似乎不用,要是用的话 windows container 也就不会发展的这么离谱了。

    2024 年了,windows container 还是没有支持 gui 的迹象,之前偷偷扔的或者是没删干净的 rdp 功能在被人发现之后就给删了。。

    没 gui 的 windows 用户量和场景非常局限,搞不懂巨硬是啥原因。

    要是 windows container 有 gui 的话,目前云游戏方案又能更上一层楼。。
    pengtdyd
        8
    pengtdyd  
       311 天前
    我觉的这个思路有问题吧,现在不是边缘计算大行其道吗,怎么又把边缘的任务拉回服务器处理了,这有什么好处吗?
    flyqie
        9
    flyqie  
       311 天前 via Android
    @pengtdyd #8

    设备性能不够,或者需要试玩。

    边缘计算不适合云游戏场景。。
    zpxshl
        10
    zpxshl  
       311 天前 via Android
    虚拟机呀。如果是手游的云游戏,可能用的还是手机端的 cpu 。
    flyqie
        11
    flyqie  
       311 天前 via Android
    @zpxshl #10

    移动端云游戏主流方案是 arm cpu + aosp container
    gam2046
        12
    gam2046  
       311 天前
    @flyqie #7 微软自己这套玩意,毕竟不开源,也没有什么技术分享,作为外部人员,盲猜起来,container 大概率还是得有的,xbox 主机我也有,xbox 云游戏我也体验过,只是这一套目前可能只给了微软内部自己用,也许是魔改的程度比较高,相较于用户版本的 Windows ,非游戏场景下的可用性不满足用户使用。

    而且仅云游戏这个市场,微软可是近乎行业老大(虽然整个市场也并不大,就这一点,微软在收购暴雪的时候,可有一顿扯皮),其他家看起来做云游戏更像是玩票性质。

    当然也有可能就是微软不想放出来,虽然近些年来,拥抱的开源,但归根到底是商业公司,有自己的考量,也不能排除这种可能的。

    而且有很重要的一点,如果不采用容器化的方案,那么整个业务的伸缩性就很糟糕了,我自己不从事游戏行业,但是拍脑袋想,这类业务应该是具有明显的业务波峰波谷,并不具有较为平滑的业务量曲线。那么为了高峰期的业务平稳,也会徒增很多成本。

    所以,我个人无任何证据的猜想,微软还是采用容器化方案的,但是由于各种能说的,不能说的原因,并没有将这些功能下方到用户侧。
    horou
        13
    horou  
    OP
       310 天前
    @flyqie 大佬,现在有没有开源的云游戏 vm 的方案呢
    zpxshl
        14
    zpxshl  
       310 天前 via Android
    @flyqie 怎么得出手游云游市场主流是用 arm 而不是板卡呢?
    flyqie
        15
    flyqie  
       310 天前 via Android
    @zpxshl #14

    板卡也是 arm cpu 啊。。

    板卡成本高,而且不是很灵活,我确实见过用板卡的,但云游戏(不是云手机)用板卡的貌似确实不多。
    flyqie
        16
    flyqie  
       310 天前 via Android
    @horou #13

    没有,也不太可能有。

    因为云游戏都是商业化的,开源方案很难做。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2587 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 02:42 · PVG 10:42 · LAX 18:42 · JFK 21:42
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.