云游戏是如何实现的 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
请不要在回答技术问题时复制粘贴 AI 生成的内容
horou

云游戏是如何实现的

  •  
  •   horou Jan 3, 2024 3013 views
    This topic created in 846 days ago, the information mentioned may be changed or developed.

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

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

    XBOX: 好像在点我?

    ---

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    板卡也是 arm cpu 啊。。

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

    没有,也不太可能有。

    因为云游戏都是商业化的,开源方案很难做。
    About     Help     Advertise     Blog     API     FAQ     Solana     5477 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 42ms UTC 08:38 PVG 16:38 LAX 01:38 JFK 04:38
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86