1

私たちのゲームは MMO ゲームであり、ロジック サーバーにはもちろんゲーム ループがあります。これらの論理モジュールを簡単に記述できるようにするために、タイマーモジュールを提供します。これは、リアルタイマーの登録をサポートし、可能な場合にトリガーします。ゲーム ループでは、システム時間 (ミリ秒単位) をタイマー モジュールに渡します。タイマー マネージャーは、トリガーできるタイマーがあるかどうかを確認します。たとえば、プレイヤー/モンスターの位置を更新するには、プレイヤーが動き始めると、200ms ごとにプレイヤーの位置を更新します。

しかし、ゲーム ループがあまりにも多くのロジックを実行すると、1 つのフレームで時間がかかりすぎて、次のフレームで一部のタイマーが実際の時間よりも遅くなります。それは実際にいくつかのバグを引き起こします。たとえば、あるフレームで 1 秒を費やし、次のフレームで実時間が 1000 ミリ秒で、移動タイマーが 800 ミリ秒でスケジュールされている場合、タイマーは 1000 ミリ秒でトリガーされ、予想時間よりも遅くなります。

この問題を解決するためのより良い解決策はありますか? たとえば、実際のコンピューター時間には依存せず、ゲームにのみ依存するタイマーを実装できますか?

4

0 に答える 0