0

我目前正在设计 MORPG 服务器,我有一个关于我应该使用哪种 i/o 模型的问题。
它是快节奏的第三人称角色扮演游戏,1~3 名玩家可以加入一个会话。
在最坏的情况下,可以显示大约 50 个敌人。
我认为这对于单线程服务器来说可能是太多的过程来完成所有的冲突检测过程和 i/o 过程,所以我预先计算了要处理的数据量,这是我的结果。

// (Server's tickrate is 60hz)
Object movement packets
6(header) + 2(uuid) + 4(x) + 4(y) + 4(z) = 20bytes

800bytes ~ 1000bytes per tick, player                 // 20bytes x 40~50objects
48,000bytes ~ 60,000bytes per second, player          // 800bytes ~ 1000bytes x 60frame rate
144,000bytes ~ 180,000bytes per second                // 48,000bytes ~ 60,000bytes x 3players

我还有其他数据包,每秒不到 1000 字节。

我认为对于单线程服务器来说处理太多了,因为可以有多个会话,并且我使用普通计算机作为服务器机器,因为这个项目仅用于学习目的。

我认为 IOCP 可以帮助提高性能,因为它使用多线程(我对多线程编程有点熟悉)。
此外,我正在考虑将服务器的滴答率降低到 10~20,并在客户端使用航位推算。

在这种情况下,使用 IOCP 和航位推算来防止服务器工作过多是否合理?

4

0 回答 0