skynet开发mmo场景内心跳问题
#1810
-
大家开发mmo,场景内帧间隔一般设置多久一跳。我目前0.1秒一跳感觉有点浪费性能 |
Beta Was this translation helpful? Give feedback.
Answered by
cloudwu
Oct 25, 2023
Replies: 2 comments 2 replies
-
你这个问题有点粗略。 |
Beta Was this translation helpful? Give feedback.
2 replies
-
对于服务器来说,真实时间 walltime 是没有太大意义的。有意义的是事件的发生次序。 鉴于外部输入必然有一定的网络延迟,你可以设置一个下限,比如 100ms ,即,即使玩家可以用少于 100ms 把消息发送到服务器,你也认为它至少要 100ms 。 然后,服务器要做的事情就是,把所有的事件打上时间戳,然后根据时间戳的次序依次处理这些事件,并不关心真正处理它们时的 walltime 。而超过 100ms 的事件都可以堆积在一起放在待处理集合中。 所以,服务器流程就是:
这个流程中并不需要太高频和太准确(符合 walltime)的 timer 支持。 |
Beta Was this translation helpful? Give feedback.
0 replies
Answer selected by
kaka5548
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
对于服务器来说,真实时间 walltime 是没有太大意义的。有意义的是事件的发生次序。
事件包括了业务本身产生的动作,以及玩家外部的输入。
鉴于外部输入必然有一定的网络延迟,你可以设置一个下限,比如 100ms ,即,即使玩家可以用少于 100ms 把消息发送到服务器,你也认为它至少要 100ms 。
然后,服务器要做的事情就是,把所有的事件打上时间戳,然后根据时间戳的次序依次处理这些事件,并不关心真正处理它们时的 walltime 。而超过 100ms 的事件都可以堆积在一起放在待处理集合中。
所以,服务器流程就是:
这个流程中并不需要太高频和太准确(符合 walltime)的 timer 支持。