如何在游戏中创建Ghost Replay功能?


19

当您在主机赛车游戏中设置个人最佳圈速时,您可以选择与幽灵竞争。

如何为单人休闲型游戏创建此功能?


2
+1一个有趣的问题,对于只是游戏开发(我)的初学者的人。=)
Will Marcouiller

如果您能告诉我们这是什么游戏,我们可以为您提供更具体的帮助。
AttackingHobo

Answers:


10

鬼影通常是通过显示先前尝试的重播来完成的。此重放是使用非冲突版本的Player Car渲染的,因此您不会受到影响。由于赛车游戏通常都具有重播功能,因此这种免费提供。

这是构建重放系统的良好起点:http : //www.gamasutra.com/view/feature/2029/developing_your_own_replay_system.php

关于此主题,这里还有很多问题:


+1刚刚从您的答案中学到了新知识,谢谢!=)
Will Marcouiller

1

这取决于您使用的技术。因此,我们无法真正讨论最佳方法,因为它可能会从一项技术变为另一项技术。我认为总的想法如下:

  1. 使用基础数据存储来持久存储数据(XML,Cookie,数据库,CSV,其他...);
  2. 处理对此基础数据存储的数据访问;
  3. 您需要保留有关球员最佳成绩的信息数据,因此需要一个标识符(电子邮件,输入名称,否则...);
  4. 将此最佳分数与标识符以一种或另一种方式关联。

简而言之,假设使用数据库,我们可以有两个表:

  1. 用户/玩家数据(标识符,电子邮件等);
  2. 最佳计分板信息数据。

然后,您可以将用户信息与各个计分板一起保存,如果需要,可以包含有关何时达到此分数的日期和时间注册表。

我希望这会有所帮助,并且我已经正确理解了这个问题。否则,请告诉我以便我可以相应地编辑答案。


3
我认为他可能正在寻找一种录制/播放机制来实现这一目标。确定性的游戏环境,跟踪更改事物的事件(例如,玩家输入)等通常是实现此目的的推荐方法。
詹姆斯

感谢您的输入,James!这些是我不知道的东西,尽管我的回答也是谦虚的,很容易做到。但是,我有兴趣了解有关该主题的更多信息。哦,为您的评论+1,这告诉我还有其他可行的方法。=)谢谢!=)
Will Marcouiller

非常抱歉,由于您提供的信息,我仍在学习基础知识,我无法真正以适当的知识进行回复,因为我没有任何知识。我想要完成的是每次我试图超过自己的个人最高分时,我都会在屏幕上看到我设定最高
分时

@一旦他真正弄清了有关单人游戏的问题的答案,您会告诉他多人游戏设置可以做什么的信息。他的问题是如何首先创建虚影。
AttackingHobo

@AttackingHobo:感谢您告诉我。实际上,我已经从James那里找到关于录音的评论,然后阅读了wkerslake的回答,现在我更好地了解了OP的要求。另外,当我说我建议的设置更可能用于多人游戏设置中时,您是对的。嘿,我仍在这里学习,感谢您成长得更好!尽管我是一位经验丰富的开发人员,但游戏开发对我来说仍然是一个新技巧。=)感谢您的评论AttackingHobo!=)
Will Marcouiller 2011年

1

没有您的游戏的更多信息就很难回答这个问题。只要当前的重影播放不会影响记录的重影数据的确定性,wkerslake的答案就可以起作用。如果记录的数据是在静态环境中的单次汽车计时试用,则可以使用该技术。

但是,在许多具有重影播放功能的游戏中,例如《超级肉仔》,玩家的位置可以改变关卡和AI的状态。显然,您不能让鬼魂影响世界和AI,因此最好为主要玩家每帧记录位置+动画变化(以及其他可见的东西)。在播放过程中,只需在当前位置和动画帧上渲染幻影,而无需将其渲染在世界上。这使您可以播放幻影,而不会影响当前播放器。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.