それで、最初に。これが私のサーバーエンジンです。gilmud.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人のmob/npcsの「ライフ」に必要なものを与える恐ろしい方法がわかるでしょう。tick()は、移動するのか、拾うのか、アイテムを拾うのか、戦闘中なのか、ターゲットにされているのかなどをチェックします。もちろん、自動化されたものを除いて、プレイヤーにも同じことが言えます。
パフォーマンスを向上させるために、このモジュールの一部またはすべて、たとえばC ++を書き直す方法はありますか?現在、必要な.1秒のティックは、現在の方法でpythonを使用して約3秒です。
(また、いくつかの異なるスレッドタイプとスタックレスを試しました。何もうまくいきませんでした)。
助けてくれてありがとう!どんなアドバイスも大歓迎です!