問題タブ [game-loop]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
winapi - デュアル コアで Windows ゲーム ループ 50% の CPU
ゲーム ループだけで CPU 使用率の 50% を使用しています。レンダリング作業はまだ行っていません。私はここで何をしているのですか?
game-loop - ゲームの開発に「メイン」ゲームループが必要なのはなぜですか?
ほとんどのゲーム開発にはメイン ゲーム ループが必要ですが、なぜそれが必要なのかわかりません。イベントリスナーを実装して、すべてのユーザーアクションに応答できないでしょうか? イベントが発生したときにアニメーション (など) を再生できます。
メイン ゲーム ループの目的は何ですか?
c# - ゲームループとタイムトラッキング
私はただの馬鹿かもしれませんが、一日中ゲームループを実装しようとしていて、クリックしていません。私は文字通り、Google で見つけたすべての記事を読みましたが、問題は、それらがすべて異なるタイミング メカニズムを使用しているため、特定の状況に適用するのが難しいことです (ミリ秒を使用するものもあれば、ティックを使用するものもあります)。
基本的にClock
、ゲーム ループが実行されるたびに更新されるオブジェクトがあります。
そのほとんどは XNA に基づいていGameClock
ますが、大幅に単純化されています。次に、メソッドとメソッドが知る必要がTime
あるさまざまな時間を保持するクラスがあります。Update
Draw
私のメイン クラスは の 1 つのインスタンスを保持しTime
、ゲーム ループ中に常に更新する必要があります。これまでのところ、私はこれを持っています:
時間クラスのリアルタイム プロパティは非常に優れています。ここで、状態がフレームごとに可変回数更新されるように、適切な更新/描画ループが機能するようにしたいと思いますが、タイムステップは固定です。同時に、それに応じてTime.TotalVirtualTime
とTime.ElapsedVirtualTime
を更新する必要があります。さらに、ゲームループの設計に違いが生じた場合に備えて、将来的にマルチプレイヤーをサポートする予定です。
これを実装する方法に関するヒントや例はありますか (記事へのリンクは別として)?
performance - ゲームループのパフォーマンスとコンポーネントのアプローチ
ゲームループを編成するアイデアがあります。性能に疑問があります。物事を行うためのより良い方法があるかもしれません。
ゲーム コンポーネントの配列があるとします。それらはすべて、ゲームループの反復ごとに何らかの処理を行うために呼び出されます。例えば:
利点:
- 優れたコンポーネントベースのアプリケーション、依存関係なし、優れたモジュール性
- コンポーネントを動的にアクティブ化/非アクティブ化、登録/登録解除できます
- 一部のコンポーネントは透過的に削除または置換でき、システムは何も起こらなかったため引き続き動作します (2 次元から 3 次元への変更) (チームワーク: すべてのプログラマーが独自のコンポーネントを作成し、コードをコンパイルするために他のコンポーネントを必要としません)
疑問:
- Component::run() への仮想呼び出しを含むゲーム ループの内部ループ
- Component::run() が bool 値を返し、この値を確認したいと思います。false が返された場合、コンポーネントを無効にする必要があります。したがって、内側のループはより高価になります。
さて、この解決策はどれほど良いでしょうか? 実際のプロジェクトで使用したことがありますか?
c++ - Lua、ゲーム ステート、ゲーム ループ
各ゲーム ループの繰り返しで main.lua スクリプトを呼び出す - 良い設計か悪い設計か? パフォーマンスに(相対的に)どのように影響しますか?
からゲームの状態を維持します。C++ ホスト プログラムまたはb。Lua スクリプトまたはcから。両方から同期しますか?
(トピックに関する前の質問: Lua と C++: 職務の分離)
(すべての回答に投票します。最良の回答が受け入れられます。)
directx - DirectX:ゲームループの順序、最初に描画してから入力を処理しますか?
DirectXのドキュメントを読んでいて、IDirect3DDevice9 :: BeginSceneのページで何か面白いものに遭遇しました:
CPUとグラフィックアクセラレータ間の最大の並列処理を有効にするには、 presentを呼び出す前にIDirect3DDevice9::EndSceneを呼び出すことが有利です。
私は、入力などを処理してから描画するゲームループを作成することに慣れています。私はそれを逆に持っていますか?たぶん、ゲームループはもっと次のようになるはずです:(半擬似コード、明らかに)
ドキュメントのその文によると、このループは「最大の並列処理を可能にする」でしょう。
これは一般的に行われますか?このようなゲームループを注文することの欠点はありますか?最初の反復の後、実際の問題は見られません...そして、このようなものの実際の速度の増加を知る最良の方法は、実際にベンチマークすることですが、他の誰かがすでにこれを試したことがあり、実際の速度を証明できますか?スピードアップ?
game-engine - ゲーム開発にお役立てください。ループをレンダリングしますか?
私は単純なゲームに取り組んでいます。これは私の最初のゲーム プロジェクトです。
私が見つけたほとんどのサンプルには、すべてのゲーム ロジックも作成されているレンダー ループがあり、私はこれが好きではありません。X=0 のボールと X=10 の壁があり、遅いマシンでは、最初のループで X=7 にボールを配置し、2 番目のループで X=14 にボールを配置するとします。ゲームがクラッシュするだけです!
この「レンダー ループ」はゲームを作成する正しい方法ですか? すべてのフレームでこのようなことをチェックするコードを書く必要がありますか? 例、新しいフレーム X=14、最後のフレームは X=7 なので、X=7 から X=14 までの何かがあるかどうかを確認する必要があります??
ゲーム ロジック用に別のスレッドを作成し、レンダリング ループで、現在のゲーム ロジックの「スナップショットを取得」して表示する必要があると考えていました。
経験豊富なゲーム開発者の皆さん、これをどのように回避していますか?
ありがとう!
c++ - Win32 API のゲーム ループ
win32 GDI のようなゲームマリオを作成しています。game の新しいループを実装しました:
しかし、私のゲームは Ctrl + Alt + Del を押すまで実行されています (マウスカーソルが回転しています)。
java - UIスレッドをフリーズせずにゲームループを実装するための最良の方法
Javaで簡単な2Dゲームを作ろうとしています。
これまでのところJFrame
、メニューバーを備えた、と、そのメソッドを拡張JPanel
およびオーバーライドするクラスがありますpaint
。次に、画像の位置などを更新するゲームループを実行する必要があります。しかし、私はこれを達成するための最善の方法に固執しています。確かに、メインスレッドに無限ループを設定すると、UI(したがってメニューバー)がフリーズするため、マルチスレッドを使用する必要がありますか?
これまでの私のコードは次のとおりです。
ポインタやヒントはありますか?ループはどこに置くべきですか?私のメインクラスですか、それともGameCanvasクラスですか?
c++ - C++ ゲームループの例
Escを押すまでループし続ける「ゲームループ」だけを持つプログラムのソースを誰かが書いてもらえますか?プログラムは基本的なイメージを表示します。Heres は私が今持っているソースですがSDL_Delay(2000);
、プログラムがフリーズしている間、プログラムを 2 秒間維持するために使用する必要があります。
Escを押すまでプログラムを開いたままにしておきたいだけです。ループがどのように機能するかは知っていますが、main()
関数の内側に実装するか、外側に実装するかはわかりません。どちらも試しましたが、どちらも失敗しました。あなたが私を助けることができれば、それは素晴らしいことです:P