저는 텍스트 기반 게임을 만들고 프로 시저 월드 생성을 구현하려고합니다.대규모 유니버스를 프로 시저로 생성
나의 초기 계획은 조금 우연적이었다. 각 우주는 태양계의 은하계의 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^3)^3)^3) 바이트가 필요합니다. ClassSize가 4 바이트 인 경우에도 저장할 수 없습니다.
배열 배열에 대한 나의 의도는 처음에는 클러스터를 효율적으로 그룹화하고 플레이어가 우주에서 어디에 있었는지 확인하는 데 도움이되었습니다.
제 질문은 어떻게 저 스케일의 세계를보다 효율적으로 만들 수 있습니까?
이 배열의 자바 배열에서'_int_'는 ** 실제로 ** 공간의 낭비입니다. 왜냐하면 자바의'a [2] [2] [2] '는 int 배열로 두 개의 참조를 배열하는 두 개의 참조 그래서, 당신은 6 개의 심판과 8 개의 int (이 경우)를 가지고 있습니다. 더 정확한 위치에 1 차원 배열을 사용하십시오. –
사실 당신은 classsize * (시스템 당 몸체^3) * (gal per system axy^3) * (우주 당 은하^3). 따라서 가장 작은 숫자는 4 바이트 * 5^3 * 50^3 * 10 * 3 ~ = 58GB입니다. 플레이어의 관점에서, 각 신체에 5 초를 소비하는 데는 2500 년이 걸리기 때문에 디자인의 일부를 다시 생각해 볼 수 있습니다. – Thomas