免責事項:私の一番好きなタイプのゲームはテキストベースであり、私はこれを古いMUDの長年のプログラマーとして書いています。
自問する必要がある重要な質問はこれだと思います:スレッドさえ必要ですか?グラフィカルゲームはMTをより多く使用する可能性があることを理解していますが、ゲームの仕組みにも依存すると思います。(GPU、CPU、および現在ある他のすべてのリソースを使用すると、はるかに強力であるため、リソースに対する懸念があなたに思われるほど問題になることも考慮する価値があるかもしれません。実際、100個のオブジェクトは事実上ゼロです)。また、「すべての文字を一度に」定義する方法にも依存します。まったく同じ意味ですか?ピーターが正当に指摘しているように、文字通りの意味では一度にすべては無関係です。このようにしか表示されません。
スレッドを使用する場合:100スレッドを考慮する必要はありません(CPUに多すぎるかどうかについては説明しません。複雑さと実用性のみを参照します)。
しかし、これを覚えておいてください:マルチスレッドは簡単ではなく(Philippが指摘しているように)、多くの問題があります。他の人は私がMTよりもはるかに多くの経験を持っていますが、彼らも同じことを提案すると言います(たとえ彼らが私よりも能力があるとしても-特に私の練習なしで)。
スレッドが有益ではないと意見する人もいれば、各オブジェクトにスレッドが必要だと主張する人もいます。しかし、(これもすべてテキストですが、複数のスレッドを考慮する場合でも、オブジェクトごとに考慮する必要はありませんし、そうすべきではありません)Philippがゲームはリストを反復する傾向があると指摘しているためです。しかし、それは、ごくわずかなオブジェクトのためだけではありません(彼が示唆しているように、彼はごく少数のオブジェクトのパラメーターに応答しているだけです)。MUDでは、私はプログラマーです。これは、リアルタイムで発生するすべてのアクティビティではないため、これも念頭に置いてください。
(インスタンスの数はもちろん異なります-高いものと低いもの)
モバイル(NPC、つまりプレイヤー以外のキャラクター):2614; プロトタイプ:1360オブジェクト:4457; プロトタイプ:2281部屋:7983; プロトタイプ:7983。通常、各部屋には独自のインスタンスがありますが、動的な部屋、つまり部屋内の部屋もあります。またはモバイル内の部屋、たとえばドラゴンの胃。またはオブジェクト内の部屋。たとえば、魔法のオブジェクトを入力します。これらの動的な部屋は、実際に定義されているオブジェクト/部屋/モバイルごとに存在することに注意してください。はい、これはWorld of Warcraftに非常によく似ています(私はそれをプレイしませんが、しばらくの間Windowsマシンを持っていたときに友人にプレイしてもらいました)。
スクリプト:868(現在)(奇妙なことに、統計コマンドではプロトタイプの数が表示されないため、追加します)。これらはすべてエリア/ゾーンで開催されており、そのうち103個があります。また、異なる時間に処理する特別な手順もあります。他にもイベントがあります。次に、ソケットも接続しました。モバイルは動き回ったり、戦闘以外のさまざまな活動をしたり、プレイヤーとやり取りしたりします。(他の種類のエンティティも同様です)。
遅滞なくこれらすべてをどのように処理しますか?
また、(創業者/他のプログラマと自分との議論に基づいた実装)には、広範なリンクリストの追跡とポインタの有効性のテストがあり、実際に必要な場合は十分な空きリソースがあります。このすべて(私たちが世界を拡大したことを除く)は、RAM、CPUパワー、ハードディスクスペースなどが少なかった数年前に存在しました。実際、それでも問題はありませんでした。説明されているループ(スクリプトは、他のことと同様にエリアのリセット/再配置を行う)で、モンスター、オブジェクト(アイテム)、およびその他のものが作成されたり、解放されたりします。接続も受け入れられ、ポーリングされ、その他すべての接続が期待されます。