首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

英雄联盟里新出的回放功能是如何实现的?

首先你要明白,在你的视角中,自己的人物和其他玩家以及小兵野怪是怎么移动的。自己的人物是靠你用鼠标下达指令去哪里,然后由系统计算路径,并且渲染移动过程,同时把这条指令发给服务器;别人移动是别人下达移动指令,传给服务器,服务器再传给你;小兵野怪是由服务器计算出来的AI,直接把它们的移动指令发给你。所以,只要服务器把所有的接到指令全部记录下来就实现了录制。玩家下载录制之后,靠客户端算出来哪秒所有人都做了什么并加以实现,就实现了回放功能。

这和war3录像原理是一样的,war3好多年前就实现了,记录的是操作动作,然后通过实时演算来还原对战记录游戏过程而不是图像画面。只是记录坐标和一些函数而已,只不过重现出来反馈给观看者是游戏画面,并不是录制视频的那种用视频重现。不然csgo那些demo怕不是几十个G。这么说吧,它记录的是:0分30秒,玩家呆蛙右键单击商店,购买鞋子。0分31秒,玩家呆猴右键单击商店,购买一坨屎0分40秒,玩家呆蛙行走到坐标xx0分41秒,玩家呆蛙行走到坐标xx……1分05秒,玩家呆蛙使用了技能爆菊(伤害300点,cd时间5秒,消耗魔法值100),技能目标玩家呆猴,呆猴的护甲抵消45点伤害,呆蛙对其造成255点伤害,呆猴生命值(上限256)减为1。当然实际记录是使用代码的方式,数据也会更精确。通过记录玩家的每一项操作,每个单位的每一项数值变化来保存这一局游戏,因为都是一些文本数据,所以文件可以很小,回放的时候相当于重新开了一局游戏,电脑根据之前记录下来的十个人的操作再玩一遍。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180212A07FHW00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券