初めに
今回、初投稿です。プログラマー初心者の学生です。環境はDxlibとVisual Studioでやっています。
今回の内容は、自分なりにオープンワールドの地形の処理を研究目的でやった結果を書きたいと思います。
1.地形の生成
まずは、オープンワールドを作るとして、平面の広い地形を生成したいと考えました。
for分を使って、円上に広がる地形を作ってみました。

イラストは上から見た、地形の見た目です。この円が広がるようになっています。
2.FPS低下問題
次に描画処理について考えました。FPSが下がるのを防止するために、距離とカメラの視野外にある地形を非表示にしてみようとプログラムしました。
プレイヤーを中心にして、遠くにある地形を非表示にするプログラムを組みました。それとカメラの視野を取得して、カメラの後ろ側にある地形も非表示にしました。

赤色が描画されない範囲で、青色が描画される範囲です。
結果
結果としては、予想通りにFPSを下げることなく動かすことができました。しかしそれとは別に問題が出てきました。
まず、地形の作り方が今回は、タイル状のオブジェクトを複製して描画をしましたが、それだと現状このまま広げ続けるのに限界がきます。
この結果から今回の研究目的のオープンワールドの地形処理は距離やカメラに映らないところの非表示処理はやりたいことができたと思いました。しかし、目的に近づく一方で複製などをせずに地形を描画しそれに非表示処理を適用した方が本来のオープンワールドの使用なのかなとも思いました。
#最後に
短い文章ですがここまで読んでくれたありがとうございました。
今回、研究をするにあたって自分なりの解釈で作ってみましたが、結果に書いてある通りに自分の解釈が違ったのかなと思いました。これからもオープンワールドの研究は続けていこうと思っていますので、また進展がありましたら、書こうと思います。