我确实有一个用C ++编写的2D游戏服务器,最多可容纳1000个玩家(该限制是由于地图的大小,而不是出于性能考虑)。
它是优化的,所以它差不多是伟大的,因为它是由一些非常好的开发人员编写的。
我现在想做的是为每个玩家附加日志记录。我确实想记录这样的动作: 移动事物,交谈,消亡,登录等等,等等(基本上不是全部,而是玩家的行为)
我在编程方面没有遇到问题,但是我确实缺乏有关如何(性能)处理它以及是否有任何尝试的知识。我现在想做的是:
出于某种原因,我认为最好使用ofstream.open将每个播放器日志保存到不同的文件中。 (我确实认为这是个坏主意,但是(1.)真的吗?(2。)为什么会这样?(3。)它最多可以处理1000个打开的文件吗?)我有一个LoggingPlayer类;在玩家登录时,我创建了此类的一个实例,并通过向记录功能发送信息来遵循玩家的动作。 当缓冲区已满时,我确实将写操作保存到文件中。我仅在玩家注销时才关闭文件。 如果我丢失文件,那确实没什么大不了的。如果服务器崩溃或变慢了几秒钟-对我来说这很重要。
我确实有以下问题:
(4。)如何使其变得更好?(例如,为所有玩家使用一个记录器?登录一个文件?)
(5。)我是否应该完全放弃尝试制作自己的记录器,而尝试使用已有的记录器?
(5a。),如果是,对这种情况有什么建议?(在线用户500-1000)。我听说过增强日志,但从未尝试过。
我非常感谢所有帮助;因此,如果您只知道一个问题的答案,请不要犹豫。