私はテキストベースのゲームを作成し、手続き型の世代を実装しようとしています。大規模なユニバースを手続き的に生成する
私の初期の計画は少しばかげていました。それぞれの宇宙は太陽系の銀河の3次元配列を持っています。それから、順番に無作為化された天体が広がります。私は実際にローカルエリアを別々に生成するつもりだったが、現時点では私が持っている通りに作業を完了することは現在できていない。
Each universe is a Galaxy[10][10][10] (arbitrary number at the moment),
each galaxy is a randomly sized SolarSystem[50-150][50-150][50-150],
each SolarSystem is a randomly sized CelestialBody[5-20][5-20][5-20].
これらはすべて、後で読み込むためにデータファイルに書き出されます。
私が間違っていなければ、これはClassSizeが4バイトであっても保存できない(((ClassSize^3)^ 3)^ 3)バイトを必要とします。
配列の配列を使用する意図は、クラスターを効率的にグループ化し、プレーヤーがどこにいたのかをより明確にすることでした。
私の質問は、どうすればこのようなスケールの世界をより効率的に生成できますか?
これは、 '_int_'が**本当に** javaの' a [2] [2] [2] 'はintの配列への2つのrefの配列に対する2つのrefの配列を意味するため、あなたは6つのリファレンスと8つのint(この場合)を持っています。場所の計算では1次元配列を使用してください。 –
実際には、classsize *(システムごとのボディ^ 3)*(gal per system axy^3)*(宇宙あたりの銀河^ 3)。あなたの最小の数字のために、4バイト* 5^3 * 50^3 * 10 * 3〜= 58GB。プレーヤーの視点から見ると、各ボディに5秒を費やすには2500年かかるので、そのデザインの一部を再考したいと思うかもしれません。 – Thomas