1

明確にするために、ゲームの実行速度が遅い理由を知っています。現在の領域にさまざまなオブジェクトがたくさんあり、それらすべてのオブジェクトをチェックしてレンダリングする必要があります。オブジェクトを減らすだけで問題を解決する方法がわかりません。

私が探している答えは、ゲームに貼り付けるコードの束を作成するだけでなく、この問題を修正する方法の概念です。

RealTutsGMLによるチュートリアルに基づいてゲームを設計しています。ゲームを構築する彼の方法に対処しなければならなかったいくつかの問題がありましたが、私はそれらを理解しました.

そのため、ゲームのティックごとに、現在存在するすべてのオブジェクトを調べる必要があります。存在するオブジェクトが多いほど、それらすべてを処理するのに時間がかかります。たとえば、これらのオブジェクトが現在表示されていない場合、メモリを解放する方法を見つける必要があります。マインクラフトのようなゲームでは、チャンクを使用して未使用のメモリを解放することを知っています。(視距離外のブロックは生成されません) オブジェクトが多い環境でもラグがあまり発生しないようにするにはどうすればよいですか? ティックしてレンダリングする必要があるすべてのオブジェクトからの遅延がそれほど大きくなくても、大きなレベルを持つことができるようにしたいと考えています。

もう 1 つ明確にすることは、オブジェクトを簡単に作成および破棄できるように、レベルにロードされたすべてのオブジェクトが LinkedList に保持されることです。ティックごとに、これらのリンクされたリストを介して for ループを実行し、すべてのオブジェクトの動作とレンダリング方法を処理します。

[4月28日編集]

私が取り組んでいたゲームのオブジェクトは、非常にグリッドのような形式で編成されています。これには、タイル、プレイヤー、その他すべてのゲーム オブジェクトが含まれます。

4

2 に答える 2

0

このような組織化された環境では、特にこのような組織化された環境では、チャンク (タイル/ゲーム オブジェクトを保持する) とメガ チャンク (チャンクを保持する、チャンクはまだ低速である) を作成することが明確な解決策になることは非常に明白だと思います。 . ここにいる誰かが言ったように、明らかにすべてを一度に処理する必要はなく、一度に存在する必要さえありません。

チャンクが有用であると私が考える方法は次のとおりです。

私はこれを試しましたが、大きな違いは見られなかったので、チャンクを保持するチャンクを作成しようとしています。

于 2016-04-28T01:57:03.983 に答える