Разве вы не можете просто SHA1 ID галактики, например:
Галактика 1
Sha1(1) = 356a192b7913b04c54574d18c28d46e6395428ab
Galaxy 2
Sha1(2) = da4b9237bacccdf19c0760cab7aec4a8359010b0
Galaxy 3
Sha1(3) = 77de68daecd823babbb58edb1c8e14d7106e83bb
Затем вы можете сегментировать код, т.е.: 1011 *
Первые 4 символа = Количество планет
356a
da4b
77de
Вам понадобится какой-нибудь алгоритм «строка в число», одним простым будет взять код ASCII каждого нечислового символа, а затем умножить их все вместе или что-то в этом роде.
Итак, теперь мы знаем, сколько планет в нашей галактике, как насчет размеров галактики x, y, z?
Следующие 9 символов = Размеры Galaxy (x, y, z)
Тот же принцип, что и выше, превратить код в большое число. Также проведите несколько проверок на чувствительность, вам не нужна галактика размером 10 миль х 10 миль х 10 миль с 20 миллионами планет. Имейте какой-нибудь взвешенный алгоритм, например, минимальный размер равен # планет * 10000. Вам нужно будет поиграть с числами, чтобы убедиться, что все диапазоны совместимы, а выбранные символы из хеша действительно дают вам разумный диапазон.
Или, вместо этого, вы можете выбрать случайное число между минимальным и максимальным размером галактики, но использовать постоянное зерно ГСЧ, такое как идентификатор галактики! Таким образом, размеры галактики являются «случайными» для наблюдателя, но каждый раз они будут одинаковыми.
и т. Д.!
Это один из способов получения свойств вашей Вселенной, но как насчет свойств планеты? Как население и другие вещи?
Если у вас есть Галактика 1 с 20000 планет, вы можете сделать:
Sha1('1:340') = bc02ab36f163baee2a04cebaed8b141505cc26b5
То есть, первая галактика, планета 340. Затем вы можете просто разделить этот код так, как хотите. Преимущество использования хэша в том, что каждая планета должна иметь совершенно уникальный код.