无人深空吧 关注:213,700贴子:2,112,715

对无人深空联机机制的分析

只看楼主收藏回复

首先,联机的原理都是相同的。
联机由两部分组成,【主机】和【玩家】。
玩家在客户端进行操作后,会发送数据给主机进行计算,主机计算完成后把结果发送给玩家游戏内显示。
在一场游戏里只有(也必须有)一个主机,主机能连接的玩家数有上限。
游戏存档储存在主机里,玩家可能保留本地存档离线游玩,但在再次联机时,本地存档会被主机存档覆盖。
由此衍生出两种不同的联机机制,p2p和云端服务器。
p2p联机下,【主机】是某一个玩家。游戏会选择所有玩家中的某一个成为主机,让这个被选中的玩家进行“计算”,“存档”和“数据收发”的工作。
缺点:
1.【主机玩家】的电脑和网络承载力有限,不能支撑大量普通玩家同时连接,联机质量也很难保证。
2.存档保存在主机玩家电脑里,本地存档中的内容可能不能加入到联机游戏中。
3.当发生更换主机玩家、或者某些意外下,存档可能会丢失。
4.主机主要计算的是玩家对游戏内容的交互,如“角色移动”、“造成伤害”、“按下开关”、“改造地形”。可交互的内容越多,计算量越大,联机越难。
5.如果想加入别人的联机游戏,请先匹配或申请,否则看不见,【游戏不同步】
总结:联机质量差,联机存档不能保存,本地游戏存档木大,【游戏内容不同步】
优点显而易见,不用特别强的云端服务器,开发商省钱。
服务器联机下,主机是云端服务器,由于服务器除非关服停机,基本不会下线,同时服务器能保存的存档内容也更大。因此不会出现以上问题,缺点就是贵。
最大的优点是【游戏内容完全同步】,无论你什么时候上线,你造的东西都还在,p2p做不到(很难实现)。
还有一个问题,哪怕是云端服务器,承载力也是有极限的,数以万计的玩家创造的数据量同样巨大无比。而p2p虽然不同步,但却可以通过大量的玩家主机进行联机,以量取胜。
因此,很多穷鬼公司在开发游戏时,会通过各种手段回避这些问题。
1.他们会让尽可能多的数据在本地客户端进行计算,以减轻主机的压力。如光效,静态模型,材质,人物存档,环境音乐等等;而如果实在不行,就会消减玩家的自由度,比如不能改变地形,地图范围限制,不能跳跃,不能按按钮,不能打npc,不能开车之类。
2.只加载玩家周围的一部分游戏内容,玩过MC的人可能有体会,如加载区块限制
3.采用多个主机,常见的有服务器分区(网12345),还有地区分区(大量玩家聚集在同一地点服务器就会崩溃)
简单来说,p2p不能保证游戏同步但是便宜,服务器贵。
那么无人深空呢?
从现有的案例看,玩家和玩家互相见面,乃至采访别人的基地,好像不需要加入什么房间,或者确保主人在线。游戏具有较高的自由度,比如建基地开飞船。地图大小吹上天了,有一个银河系,而且能保证同一坐标下星球都相同……内容同步、自由度高、地图还特别大,但工作室自己能活下来都不容易,哪来的钱做服务器?而p2p怎么能做到内容同步?
HG做空石油期货了?


IP属地:天津来自Android客户端1楼2020-11-19 15:11回复
    首先,无人深空一定使用p2p联机为主,但可能将某些数据放在了服务器里。
    由于游戏的特性,星系和星球是固定的,通过反向使用伪随机数,由于所有人使用的算法都相同,当玩家得到一组坐标,就可以依照坐标“生成”一个一模一样的星球。而玩家对星球的改变则可以通过读取云存档来实现同步(因为没有权限,所以不能对别人的基地进行修改,因为存档不是你的)。
    这样就实现了地图和建筑的同步,可以说,服务器里面有一个包含所有人存档的“宇宙”,玩家联机的时候就会和这个宇宙同步。
    而保存一整个星球也太难了,因此有了基地电脑和建造半径,推测为这个半径内的改变和细节地形才会被上传到云,能供所有人同步。


    IP属地:天津来自Android客户端2楼2020-11-19 15:43
    回复
      2025-08-17 13:12:11
      广告
      不感兴趣
      开通SVIP免广告
      无人深空的模拟“宇宙”
      —————————————
      阿特拉斯模拟了一个宇宙,HG也模拟了一个宇宙。
      传统的随机算法生成地图,注重的都是伪随机性,力求让玩家每次看到不一祥的世界,然后通过存档将生成的地图保存下来。
      而无人深空不可能保存如此庞大的地图,因此就利用了伪随机数的特性,只要能保证每次生成的内容一样,那就不需要保存地图本身,只需要保存算法即可。
      当玩家给算法输入了一个条件,算法就生成一个内容,这个条件就是坐标(也许还有其他条件)。
      这样就保证了星球和星系的同步。
      而地貌则可能是通过常规随即生成的,也许是算法过于复杂,目前无法实现。


      IP属地:天津来自Android客户端3楼2020-11-19 16:06
      收起回复
        基地和基地电脑,以及云存档
        —————————————————
        自然的部分解决了,那人造的呢?
        通过云存档解决。
        储存一个算法是很容易的,储存大量的坐标也是很容易的。
        但储存人做了什么事就非常困难了。
        对于一个自由度相当高的游戏,几万份玩家地图存档对云端是一场噩梦。
        因此必然不能完全保存玩家做出的一切改变。
        基地电脑由此而生。
        基地电脑的范围内,玩家做出的影响才会被保留,这里限制了数据量的大小,同时也能保证足够的精度,玩家建造的基地才能永远保留下去。
        其他的地方都会被刷新。
        ———————————————
        将基地电脑范围内的设施,基地电脑的坐标,玩家的人物数据,飞船数据等等整合在一起,就成了玩家存档。玩家存档可以上传到云端保存,成为云存档。
        但云存档的用途不只这一点。
        当存档到达云端,云端服务器可能会读取存档里有关基地电脑的部分,然后把存档,同步到所有靠近此基地电脑坐标在线玩家,让别人也能看见这个基地。
        这就完成了人造内容的同步。


        IP属地:天津来自Android客户端4楼2020-11-19 16:29
        回复
          那玩家到底如何联机?
          —————————————
          在无人深空的宇宙中,坐标是有意义的。
          通过星球的坐标就可以找到星球,通过基地的坐标就可以找到基地,那么通过人的坐标就可以找到人。
          我猜测,云端服务器保存的不只有云存档,还有每一个在线玩家的坐标。
          当两个在线玩家相遇了(无论是通过好友加入游戏,还是路人有缘相遇),他们之间就会自动联立p2p连接,这时,一个玩家将承担主机的工作。
          当第三个玩家靠近了这两个玩家,也会进行p2p连接,成为一个【玩家】(因为之前已经有主机了)。
          而判断是否靠近,坐标就派上了用途。
          由此便形成了“半服务器”,他只需要将相近的玩家自动组建p2p联机即可。


          IP属地:天津来自Android客户端5楼2020-11-19 16:42
          回复
            太空异象
            ——————
            太空异象猜测是一个真正的服务器区域。
            玩家之前进入异象,是无缝衔接的,异象真的被你召唤过来了。
            而现在多了一个传送的过程,你召唤来的是异象的大门。
            实际上,可能有很多个“异象服务器”,玩家在召唤异象并进入后,将会随即进入一个异象服务器,此时看到其他玩家是就不是p2p联机了,这种做法广泛运用于网游建立公共区域。
            相似的有warframe里的空间站。
            HG还可以为某个星球开辟专用服务器,来设置一个公共集会星球,举办一些活动什么的。


            IP属地:天津来自Android客户端6楼2020-11-19 16:50
            回复
              太长了我没看完,但是有一条好像和我不一样,就是主机掉线时我依然可以继续玩,并且保存一下,在进入同一个主机后,我背包里的东西不会被主机存档覆盖,后来买的东西依然有,但位置可能会发生变化,在进游戏后不在原来的位置了


              IP属地:山东来自Android客户端7楼2020-11-19 16:52
              收起回复
                有没有人去测试一下,断网条件下,两个人在同一个地点,同时进行地形修改,然后同时联网。看看会采用谁的地图数据。


                IP属地:天津来自Android客户端8楼2020-11-19 16:53
                收起回复
                  2025-08-17 13:06:11
                  广告
                  不感兴趣
                  开通SVIP免广告
                  还有离线模式下,不同玩家,同一地区分别设立基地的问题。


                  IP属地:天津来自Android客户端9楼2020-11-19 17:06
                  回复
                    伙吼 有点顶 学到了


                    IP属地:湖南来自Android客户端10楼2020-11-19 17:10
                    回复
                      可以 好内容啊


                      IP属地:广东来自iPhone客户端11楼2020-11-19 18:11
                      回复
                        厉害了


                        IP属地:辽宁来自Android客户端12楼2020-11-19 20:46
                        回复
                          点击链接加入群聊【无人深空生存之路】:网页链接
                          建了个群,欢迎生存模式玩家加入


                          IP属地:天津来自Android客户端13楼2020-11-21 17:11
                          回复
                            1097610769


                            IP属地:天津来自Android客户端14楼2020-11-21 17:12
                            回复
                              2025-08-17 13:00:11
                              广告
                              不感兴趣
                              开通SVIP免广告
                              联机的时候,面对面气候都不一样,感觉联网上传东西比较少


                              IP属地:浙江来自Android客户端15楼2021-11-09 20:30
                              回复