Performance FPS和UPS之间有什么区别?我应该在游戏循环中跟踪UPS吗?

Performance FPS和UPS之间有什么区别?我应该在游戏循环中跟踪UPS吗?,performance,loops,frame-rate,game-development,game-loop,Performance,Loops,Frame Rate,Game Development,Game Loop,当我发现UPS这个词时,我正在寻找改进游戏循环的方法,以及如何为玩家提供更多的性能选项。我知道这意味着每秒钟更新一次,但它如何影响性能?我应该担心吗?让我们假设你有一个非常简单的游戏,只有一个线程和一个基本循环,比如“运行时”{get_input();update_world_state();update_video();}”。在这种情况下,您的结果是“UPS=FPS”(并且没有理由将UPS与FPS分开跟踪);如果GPU正在努力保持整个游戏的速度变慢(例如,如果你每秒获得15帧,那么与图形无关的

当我发现UPS这个词时,我正在寻找改进游戏循环的方法,以及如何为玩家提供更多的性能选项。我知道这意味着每秒钟更新一次,但它如何影响性能?我应该担心吗?

让我们假设你有一个非常简单的游戏,只有一个线程和一个基本循环,比如“
运行时”{get_input();update_world_state();update_video();}
”。在这种情况下,您的结果是“UPS=FPS”(并且没有理由将UPS与FPS分开跟踪);如果GPU正在努力保持整个游戏的速度变慢(例如,如果你每秒获得15帧,那么与图形无关的事情可能需要4倍的时间,即使你有8个CPU在等待GPU完成时什么也不做)

作为一种选择,如果您有两个线程,其中一个线程在运行时执行“
”{get_input();update_world_state();}
”,另一个线程在运行时执行“
”{update_video();}
”?在这种情况下,没有理由期望UPS与FPS有任何关系。这里的问题是,大多数游戏都没有足够的智能来处理可变计时,因此在(运行时){get_input();update_world_state();wait_直到下一次_update_start();}”时,你会得到类似于“
”的结果,以确保游戏不会运行得太快(例如,由于
update\u world\u state()(不管FPS是什么)。当然,如果世界状态没有改变,更新视频是没有意义的;因此您希望图形循环更像“
(运行){wait_for_world_state_update();update_video();}
”,其中
wait_for_world_state_update()
确保FPS