NeoFT構想/内部仕様案
マップデータの基本構造 †
- 投稿者: c477?
- 優先順位: 重要
- 状態: 提案
- カテゴリー: マップ・ボクセル
- 投稿日: 2009-11-04 (水) 13:23:09
メッセージ †
FreeTrainでは、マップデータは「南北幅x東西幅x高さ」のボクセル三次元配列でデータを管理していた。
この方式だと、マップサイズが大きくなるとゲーム開始当初から必要メモリが飛躍的に大きくなってしまう。
NeoFTでは三次元ボクセル配列を保持しない。基本は3Dゲームなどと同じく構造物のリスト+地形データのセットとする。
構造物それぞれが、自分の位置とサイズを持つので、リストを検索して描画時の可視判定や、クリック時のヒット判定を行う。
ただし毎回全検索は非効率なので、エリア毎にグループ化したり、座標をキーにしたハッシュマップなどの利用を検討する。
地形データも、最終的には最適化することで単純な二次元配列よりはメモリ効率の良い保持構造とする。
例えば、あるエリア内全域が同じ高さの平地なら、その高さだけを保持する。
また、平地にぽつんと小さな丘があるような場合、その丘を平地上の「構造物」として置き換えるようなことも検討したい。