2次元配列で一時的情報を持つにしても、マップ自体は2次元配列じゃなくてただのメモリに格納できるだろ

ひとマス当たり何種類の「モノ」をマップに持てば良いのか考えれば(せいぜい4ビットとか)ひとマスあたり1個の配列要素を使うなんて贅沢に使う必要はない

あとマップの作りによってはマップ型で持つより、巨大なマップイメージの中で「森」や「水」を「楕円の塗りつぶし」の集まりで持ち、城壁は「線」の集まりで持ち、見える範囲より少し広い所をあるメモリ上にデータとして描いて、さらに見える範囲だけを画面に描画する事もできる

無限にあっていちいち説明したら半年のゲーム作成講義になるんだよ