如果有固定的时间步长和插值,则进行多个游戏更新的目的
Purpose of having multiple game updates if there's a fixed timestep and interpolation
我正在尝试创建一个游戏,并按照文章中的描述实现了固定的时间步长:http://www.koonsolo.com/news/dewitters-gameloop/comment-page-3/#comment-18678
为了在游戏开发中获得确定性,这是一种很常见的策略。我的问题与您将拥有的更新数量有关。我读过很多变体(在文章中设置为每秒 25 次更新),但我读过大约 20 次甚至 10 次。如果无论如何都要使用插值,为什么不每秒更新一次游戏并简单地插值?多次更新有什么意义?您可以轻松地每秒进行一次大更新并在它们之间进行插值,或者实际上任何数字就足够了,因为插值可以简单地匹配任何数字。游戏开发者如何选择 25、20、10、15、18 或其他数字?谢谢!
游戏通常和几乎所有软件一样遵循input -> processing -> output
的原则。因此,每当您的内部游戏状态发生变化或需要对某些输入或事件做出反应时,您就会将相应的变化输出给用户。
触发更新的输入取决于实际游戏。在基于物理行为的游戏中,您宁愿经常更新或重新计算游戏的内部状态以反映对象移动、碰撞等。例如,在纸牌或棋盘游戏中,您只需要在玩家与游戏元素交互(例如单击纸牌)时更新游戏状态,而根本不需要定期更新游戏状态。
因此,您更新游戏状态的频率将遵循特定游戏中输入交互和事件的要求:
- 如果不是基于事件,您需要多久轮询一次玩家输入?
- 您需要多长时间内部更新一次游戏元素的内部状态才能顺利反映动画?
我正在尝试创建一个游戏,并按照文章中的描述实现了固定的时间步长:http://www.koonsolo.com/news/dewitters-gameloop/comment-page-3/#comment-18678
为了在游戏开发中获得确定性,这是一种很常见的策略。我的问题与您将拥有的更新数量有关。我读过很多变体(在文章中设置为每秒 25 次更新),但我读过大约 20 次甚至 10 次。如果无论如何都要使用插值,为什么不每秒更新一次游戏并简单地插值?多次更新有什么意义?您可以轻松地每秒进行一次大更新并在它们之间进行插值,或者实际上任何数字就足够了,因为插值可以简单地匹配任何数字。游戏开发者如何选择 25、20、10、15、18 或其他数字?谢谢!
游戏通常和几乎所有软件一样遵循input -> processing -> output
的原则。因此,每当您的内部游戏状态发生变化或需要对某些输入或事件做出反应时,您就会将相应的变化输出给用户。
触发更新的输入取决于实际游戏。在基于物理行为的游戏中,您宁愿经常更新或重新计算游戏的内部状态以反映对象移动、碰撞等。例如,在纸牌或棋盘游戏中,您只需要在玩家与游戏元素交互(例如单击纸牌)时更新游戏状态,而根本不需要定期更新游戏状态。
因此,您更新游戏状态的频率将遵循特定游戏中输入交互和事件的要求:
- 如果不是基于事件,您需要多久轮询一次玩家输入?
- 您需要多长时间内部更新一次游戏元素的内部状态才能顺利反映动画?