イベントでの開発はゲームでどのような役割を果たしますか?


9

ほとんどのアプリケーション開発はイベントの開発に基づいていますが、ゲーム開発のゲームループスタイルと(多くの場合)高いパフォーマンス/スループットの必要性を考慮すると、イベントを使用した開発にはどのような役割があり、トレードオフは何ですか?しばしば含まれる同期/ロックは、より大きな影響を及ぼしますか?

例:-ネットワーク[レイヤー]は、受信したデータをゲームループにどのように通知しますか?-物理システムはどのように衝突を通知しますか

イベントを使ったゲーム開発が厳禁だった時代を思い出すことができるからです。これは変わりましたか?

回答:


5

イベントシステムは強力で、非常に高速にすることができます。

また、非常に疎結合な構造でコードのセクションをモジュール化することもできます。バッチ処理を実行し、タスクをスレッドオフできます。マルチコアおよび非同期関数でうまく機能します。

物理-衝突コールバック、アクティブ化またはレストオブジェクトは、イベントにうまく変換されます。ネットワーキング-できる限りイベントである必要があります(ボイスチャットなどの例外)ゲームロジック-当然、イベントモデルに適していますメニューとUI-イベントベースのシステムで素晴らしい仕事

また、多くの最新のコンソールとミドルウェアライブラリはイベントを使用します。

レンダラーと入力デバイスのポーリングは、少し混乱する可能性があります。特にモーションコントロールを使用している場合は、イベントによって顕著な遅延が発生し、ポーリング形式に直観に反する可能性があるためです。


4

メインループスタイルを使用することをお勧めします。高速で、アクションの順序を完全に制御できます(これはゲームでは重要です)。コーディングの間違いを犯しにくいです。ただし、使用しているテクノロジでイベントを簡単に使用できる場合、それは多くのことに非常に役立ちます。たとえば、キーボードのキーが押されたときに、敵がいつどこで死ぬかを通知するためにそれらを使用します...

結論:ゲームループを使用してゲームのメインロジックを制御しますが、イベントは他の状況でも役立つ可能性があることを覚えておいてください。


メインループスタイルが推奨されることに同意しません。メインループスタイルのゲームは、いくつかの領域で適切に記述されたイベント制御ゲームに負けます。1)マルチタスクシステムでは、固定された機能セットのために不必要に大量のプロセッサを消費します。2)ポータブルデバイスでも、シングルでも-タスクシステムは、追加のプロセッサ使用量がバッテリーの寿命に悪影響を及ぼします。3)ゲームが単純であるほど、適切なイベント駆動型ゲームと比較して、これらの問題は大きくなります。
Sam Harwell、2010
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.