ゲーム制作 雑談スレ【part39】 (448レス)
上
下
前
次
1-
新
65
: 09/07(日)01:30
ID:qucJSDY/(4/8)
調
AA×
[240|
320
|
480
|
600
|
100%
|
GIF
|
べ
|
レス栞
|
レス消
]
65: [sage] 2025/09/07(日) 01:30:11.02 ID:qucJSDY/ 最後にABCをGeminiに質問してみた 100X100 32Pix A. 巨大なマップ全体を描画してスクロールする:3200x3200ピクセルの巨大なSurface(マップ全体)をメモリに作成し、そのSurfaceの描画位置をずらすことでスクロールを実現します。 描画負荷: 非常に軽い。画面に表示されるのは、その巨大なSurfaceの一部を切り取って描画するだけなので、CPUやGPUへの負荷は最小限です。 メモリ負荷: 非常に重い。3200x3200ピクセルの画像は、約40MBのメモリを消費します(RGBA形式の場合)。現代のPCでは余裕の範囲ですが、ゲーム全体のメモリ使用量によっては問題になる可能性があります。 今回のようにマップサイズが固定されている場合、最もシンプルでパフォーマンスが安定します。実装も非常に簡単なので、手軽にゲームを作りたい場合に最適です。 B. 毎フレーム「必要な範囲だけ」タイルを描画する。画面に見えている11x11タイル(121枚)を、マップデータから読み取って毎フレーム個別に描画します。 描画負荷: 毎フレーム121回のSurface.blit()呼び出しが発生します。メモリ負荷: 最小限。各タイルの画像データのみをメモリに保持すれば済みます。 今回の規模(100x100タイル)であれば、A方式と比較して目に見えるパフォーマンスの差は出ないでしょう。しかし、blit()の呼び出し回数が多いため、わずかにCPUへの負荷が高くなる可能性があります。 C. ハイブリッド B方式とほぼ同じです。マップをデータとして保持し、画面に表示される部分だけを描画します。マップデータを配列として持つことで、ゲームロジックとの連携(例:タイルごとのイベント)が非常に簡単になります。 今回の規模であればB方式と性能差はありませんが、プロシージャルダンジョンなどゲーム開発のベストプラクティスとして最も推奨される方法です。 http://mevius.5ch.net/test/read.cgi/gamedev/1757016104/65
最後にをに質問してみた 巨大なマップ全体を描画してスクロールするピクセルの巨大なマップ全体をメモリに作成しそのの描画位置をずらすことでスクロールを実現します 描画負荷 非常に軽い画面に表示されるのはその巨大なの一部を切り取って描画するだけなのでやへの負荷は最小限です メモリ負荷 非常に重いピクセルの画像は約のメモリを消費します形式の場合現代のでは余裕の範囲ですがゲーム全体のメモリ使用量によっては問題になる可能性があります 今回のようにマップサイズが固定されている場合最もシンプルでパフォーマンスが安定します実装も非常に簡単なので手軽にゲームを作りたい場合に最適です 毎フレーム必要な範囲だけタイルを描画する画面に見えているタイル枚をマップデータから読み取って毎フレーム個別に描画します 描画負荷 毎フレーム回の呼び出しが発生しますメモリ負荷 最小限各タイルの画像データのみをメモリに保持すれば済みます 今回の規模タイルであれば方式と比較して目に見えるパフォーマンスの差は出ないでしょうしかしの呼び出し回数が多いためわずかにへの負荷が高くなる可能性があります ハイブリッド 方式とほぼ同じですマップをデータとして保持し画面に表示される部分だけを描画しますマップデータを配列として持つことでゲームロジックとの連携例タイルごとのイベントが非常に簡単になります 今回の規模であれば方式と性能差はありませんがプロシージャルダンジョンなどゲーム開発のベストプラクティスとして最も推奨される方法です
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 383 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
ぬこの手
ぬこTOP
0.045s