【游戏里的网络同步分析】马里奥制造2 多人模式

前置知识

先说几个游戏设计的术语。
PlayerAgent是玩家控制的网络游戏中的角色形象,也是代表在游戏空间中的玩家,被唯一PlayerController所拥有,被所有用户可观测到。

在马里奥制造2中,PlayerAgent一共有四种:马里奥 路易吉 小粉 小蓝

PlayerControllerPawn和控制Pawn的人类玩家之间的界面。玩家控制器基本上代表人类玩家的意愿。

Pawn在世界场景中表示玩家、好友和敌人,是世界场景中代理的Actor,容易接受输入,不被认定为具有人的特性。

游戏设计基本概念

同步机制

关键帧同步的同步机制

在现代实时对战游戏中通常使用以下做法:

当一个PlayController发出操作指令,会先调动自己本地的PlayerAgent动起来,然后通过网络发送给游戏内的其他玩家,让他们屏幕上的这个PlayerAgent做相同的动作。

然而在马里奥制造2中做这样的实现是不可取的。

实时对战网络游戏知识体系可以去GAMES104补充

因为这种传统方法会有攻击判定的不一致性,比如马里奥制造2中的抓取功能,可以把目标举到自己的头顶

  1. 本机(马里奥)在向前移动一段距离后,认为可以抓取目标角色(路易吉),把目标角色抓起了
  2. 目标玩家还没有接收到马里奥向前移动的信息,把自己的路易吉也向前移动了
  3. 服务器每隔一段帧时间同步信息后,假设认定马里奥抓取有效,目标玩家的屏幕里路易吉会在移动一段距离后被马里奥隔空抓取到马里奥头顶。

然而在马里奥制造2中没有出现过这种情况,那么可以认为是强依赖于网络通信的实时对战设计模式。

集中式的同步机制

每隔一小段时间,所有玩家把控制器内容都发到服务器上,
由服务器设置时间轴,驱动所有主机一起播放相同的画面。

现象与分析

一个人卡,导致所有人画面定格

主播超级小桀在2023.5.10提到,当游戏卡的时候只有最卡的那个人会玩起来比较流畅。

在一个处理周期内,如果有玩家没有来得及发送数据到服务器,那么服务器暂停向所有玩家的动画数据发送。
当服务器接收到最后一个玩家发送的数据之后,再把所有玩家的动画数据发送。
所以只有最后一个玩家,在网络刚刚恢复,立即收到上一个数据包之后发送自己当前的数据出去,然后又收到了下一个数据包,会显得在游戏服务恢复的时候比较流畅。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值