» 您尚未登录:请 登录 | 注册 | 标签 | 帮助 | 小黑屋 |


发新话题
打印

[其他] 突然想到了halo3回放模式的一个问题

众所周知,Halo3 回放的录像文件记录的只是玩家的操作序列,然后引擎根据这个操作系列重新把画面实时计算出来。但是,敌兵的动作是怎么记录的?AI计算出一个动作之后,也把其按照时间点为顺序保存到录像脚本文件中么?


TOP

保存的就是一段代码,包括你控制的mc还有其它ai,影院模式只是把代码还原成图像,你可以在任何一个位置任何一个角度看自己的游戏过程。



TOP

不可以回头,只可以快进……这个可能是技术上无法解决的一个问题。也算是一个大遗憾。


TOP

也不可以选择某特定时间,只能从本关开始.不过还是很爽.

TOP

要记录所有敌兵的实时坐标和动态的话录像文件绝对不可能这么小,其实这是得益于halo3里AI逻辑的稳定,记录主角一人的行为足矣,牵一发而动全身

TOP

引用:
原帖由 hanzo 于 2007-9-27 13:13 发表
要记录所有敌兵的实时坐标和动态的话录像文件绝对不可能这么小,其实这是得益于halo3里AI逻辑的稳定,记录主角一人的行为足矣,牵一发而动全身
神经网络?

TOP

只要你有本事手动玩两次,输入的按键顺序和时间是一摸一样的,那么游戏的过程和结果也是一摸一样的,这就是录像的原理。

根本不需要记录其他东西。

TOP

这是不可能的。敌兵的ai反应绝不是固定不变的,即使输入量(包含干扰等)完全相同,计算的时候也会用随机加权方式选择反应事件。

个人估计应该是类似视频压缩那样的方式,有全信息帧和增量帧组成,然后再压缩。当然,记录应该不是坐标类信息,而是事件的起始点坐标,时间,以及事件本身的id,这样的信息足以描述完整进程了。

TOP

我不太认同HANZO和hudihutian的说法,AI设计里肯定有随机性。你们的意思是只要保证主角的操作数据完全一致,场景、敌人的反应将会是100%一致?

举个简单的例子——A和B两个玩家,游戏一开始就按住“↑”键不动,不操作任何键。直到冲进敌人堆里被打死,他们的死亡瞬间将会是一致么?

我认为程序设计的时候肯定要大量的随机性,任何敌兵都有不同的百分几率来做出不同的反应。HALO3的回放模式,应该是记录了主角+敌兵的所有行动数据。

TOP

随机?计算机有随机?

随机全部都是伪随机……

计算机只是根据公式处理0和1而已……

TOP

谁能制造一个能产生真正随机数的方法或者公式?

嗯,这个人起码比爱因斯坦要强……

TOP

应该是保存所有角色的坐标信息和动作信息。
容量也不会很大。
马里奥赛车A那种混战的都能用这么小的容量进行回放也没什么。

TOP

引用:
原帖由 hudihutian 于 2007-9-27 14:10 发表
随机?计算机有随机?

随机全部都是伪随机……

计算机只是根据公式处理0和1而已……
是伪随机, 只不过根据取样的不同会有几十种结果而已, 在我们看来已经是随机出现了, 我相信以恐龙的推断至少会发生10+种不同的死亡方法和时间

TOP

所有角色的坐标信息和动作信息?

omg

地图如果是1000000x1000000像素的,每秒60帧,仅仅记录主角的坐标信息每秒要多少字节?

TOP

引用:
原帖由 mouseguard 于 2007-9-27 14:17 发表


是伪随机, 只不过根据取样的不同会有几十种结果而已, 在我们看来已经是随机出现了, 我相信以恐龙的推断至少会发生10+种不同的死亡方法和时间
伪随机实际上就是根据公式去计算而已,只不过公式复杂一点,算法复杂一点,比如遗传算法等等,不过说到底公式绝对是一定的(即使“公式变化了”,怎么变化这个公式也是一定的)。

既然公式一定,输入什么,就会得到唯一一个输出,所以根本不存在随机的问题吧。

TOP

发新话题
     
官方公众号及微博