游戏中 不停服更新

物品投放的热更新机制

需求描述: 游戏在上线后会不断的推出更新,其中更新的内容主要包括UI资源与新的道具物品,UI资源通过patch更新,在进行更新时仅牵扯单个客户端的表现,因此不存在版本问题,可直接进行更新。游戏中新的道具与物品的更新,因为需要客户端与服务端功能的支持,如果采用热更新就存在客户端版本与服务端版本不一致以及组队时不同客户端版本不一致的情况,尽管可以在玩家登陆时对客户端版本进行强制升级, 但热更新时在线的玩家依然为旧的客户端版本。

实现方式: 游戏中新的物品与道具进行投放时,如果采用关服更新与登录强制客户端版本更新的方式可确保投放不会出现版本不一致的问题。但是如果想要实现投放的热更新就需要注意诸多的问题,首先就是客户端与服务端版本的不一致问题,两者之间版本先后存在四种情况不一致的情况有客户端版本小于服务端版本或 客户端版本大于服务端版本。 当客户端版本较小时需要考虑可能通过某种方式获得服务端新投放的物品,此时客户端由于资源缺乏会存在表现上的问题,并且新获得的物品需要在客户端物品显示时进行隐藏,避免穿戴造成客户端该物品功能性的问题,当然具有自动穿戴功能的物品需要在客户端表现上进行容错。当客户端版本大于服务端版本时,由于不会获得新投放的物品,而客户端的显示也是正常的一般不会存在问题,因此新的资源提前投放一段时间,用户在这段时间重登陆时就能更新到,会减少很多问题。其次是客户端版本的不一致问题,热更新时会有大量用户在线,这些用户并没有更新客户端的版本,如果强制更新会阻断游戏的引发各种一些意想不到的问题。这样不同的玩家处于不同的客户端版本,那么组队时相互之间就会再客户端显示对方的一些物品设置,此时可能会出现低版本客户端无法显示高版本客户端新投放的物品,这些物品的功能在低客户端版本也是无法表现的,因此需要进行组队邀请与请求匹配时的版本控制或者是客户端物品的显示与功能的容错。

关于角色的投放,角色的投放略不同于通常的物品,主要原因是游戏中为了优化体验,通常会记录每个角色穿戴物品的一些记录,比如皮肤等,通常新加的角色会给这个角色配置默认的设置,因此在服务端与客户端版本不一致时可能会存在客户端版本超前,该角色还没有在服务端添加默认设置,从而造成在客户端显示默认配置时出现问题, 同时在进行配置的修改时服务端需要能够动态的添加与记录该新加角色的配置。此外在服务端更新后需要为新加的角色配置默认的设置。

猜你喜欢

转载自blog.csdn.net/ybn6775/article/details/79410791