私は約 10 年間ゲームをプログラミングしていません (最後の経験は DJGPP + Allegro でした) が、週末に XNA をチェックして、それがどのように形成されているかを確認しようと思いました。
かなり感銘を受けましたが、ゲーム エンジンの組み立てを続けていると、(おそらく) 基本的な質問があります。
ゲームを動かすために、C# のデリゲートとイベントにどの程度依存する必要がありますか? 私はアプリケーション プログラマーとして、デリゲートとイベントを頻繁に使用しますが、そうすることに大きなオーバーヘッドがあるかどうかはわかりません。
私のゲーム エンジンでは、ある種の「チェイス カム」を設計しました。これは、オブジェクトに取り付けて、オブジェクトに対する相対的な位置を再計算することができます。オブジェクトが移動すると、追跡カムを更新する方法が 2 つあります。
- メイン ゲーム ループに「UpdateCameras()」メソッドを用意します。
- イベント ハンドラーを使用して、チェイス カムを object.OnMoved にサブスクライブさせます。
私は後者を使用しています。イベントを連鎖させ、エンジンの大部分を適切に自動化できるからです。突然、巨大で複雑なものが、一握りの 3 ~ 5 行のイベント ハンドラーに落とし込まれます...その美しさ。
ただし、ナノ秒ごとに起動するイベント ハンドラーが大幅な速度低下になる場合は、それを削除してループ アプローチを使用します。
アイデア?