ゴーストごとに異なるスレッドを使用する必要はありません。これはすべて、ゲーム ループを使用して 1 つのスレッドで実行できます。
プログラミングの観点から、ゲームの中心的なコンポーネントはゲームループです。ゲームループにより、ユーザーの入力の有無に関係なく、ゲームをスムーズに実行できます。
ほとんどの従来のソフトウェア プログラムは、ユーザー入力に応答し、それなしでは何もしません。たとえば、ワード プロセッサは、ユーザーの入力に応じて単語やテキストをフォーマットします。ユーザーが何も入力しない場合、ワープロは何もしません。一部の機能は完了するまでに時間がかかる場合がありますが、すべての機能は、ユーザーがプログラムに何かを実行するように指示することによって開始されます。
一方、ゲームは、ユーザーの入力に関係なく動作し続ける必要があります。ゲームループはこれを可能にします。擬似コードで非常に単純化されたゲーム ループは、次のようになります。
while( ユーザーは終了しません )
ユーザー入力をチェックする
AIを実行する
敵を動かす
衝突を解決する
グラフィックを描く
音を鳴らす
終了する
ゲーム ループは、ゲームの開発が進むにつれて改良および変更される可能性がありますが、ほとんどのゲームはこの基本的な考え方に基づいています。
そのパターンに従えば、ゲームを書くのがはるかに簡単になります。