所以,首先。这是我的服务器引擎。吉尔穆德.py!
好的,这是我以前的小说大小帖子的缩短版本。
上面的链接是我们的 MUD 的 Python 服务器引擎。注意第 73-75 行和第 359 行
self.tickThread = threading.Thread(None, self.runTicks, None, ())
self.tickThread.start()
...
def runTicks(self):
while self.running:
time.sleep(.1)
for thing in Thing.List.values():
if thing:
if "person" in thing.attrs:
if "spawner" in thing.attrs:
thing.tick()
您可能会看到为我们提供大约 100 名玩家和 2000 个怪物/NPC“生命”所需的可怕方法。tick() 检查他们是否会移动或捡起物品,或者他们是否在战斗中或成为目标等。当然,玩家也一样,减去一些自动化的东西。
有什么方法可以用 C++ 重写这个模块的一部分或全部,以获得更好的性能?目前,我们需要的 0.1 秒滴答声在我们现在使用的方法中使用 python 大约为 3 秒。
(此外,我们尝试了几种不同的线程类型和无堆栈。没有任何效果)。
在此先感谢您的帮助!欢迎任何建议!