Игровой ДизайнФорумОбщее

Ни много, ни мало генерация галактики

Страницы: 1 2 Следующая »
#0
17:43, 27 авг 2010

Или если быть чуть скромнее то её участка в 5-6к звёзд для начала.
Для чего так много это дело десятое, тут не звёздная болезнь а есть небольшая прикидка с учётом игровых правил и прочего.

Собственно в чём проблема.

А проблема в генерации положения звёзд планет регионов(административных единиц) и созвездий(абстрактных а не реальных).
Проблема в том, что положится на рандом при таком кол-ве звёзд и планет мягко говоря бессмысленно), тк ручками всё не проверить.

Раньше я пробовал для себя вывести в экселевском файлике некоторое подобие многоэтажных формул и вроде не плохо получалось, но там была проблемы и сильные допуски:
-расстояния между планетами высчитывались по одной формуле(которая являлась математическим выражением закономерности расстояний планет солнечной системы от солнца, выведенная кем-то когда-то давно).
-все планеты лежали в одной плоскости
-тип планеты зависел только от порядкого номера в системе.
-планеты неподвижны
-регионы образовывали пояса вокруг центра получавшегося бублика

Те в той или иной степени получались клоны солнечной системы, отличающиеся лишь типами и кол-вом планет.
Это было до того как я узнал о существовании горячих юпитеров сверх земель и прочих нестандартных вещей.

Сейчас тот экселевский файлик успешно потерял, так что решил пересмотреть все эти допуски(кроме неподвижности планет), и добавить развличные типы звёзд (от солнца до гигантов, карликов и двойных звёзд).

Но мозг от такой задачи закипает:
-как реализовать чтобы звёзды не были слишком близко друг к другу(со слишком далёкими от общего скопления достаточно легко бороться), был элемент случайности, при этом положение задётся тремя координатами.
-регионы образовывали сетку, а не концентрические окружности
- планеты имели фривольное расположение и орбиты, задающиеся радиусом от центра системы, углом поворта плоскости вращения, и углом поворота планеты вокруг оси вращения. Но при этом, чтобы не было планет камикадзе(лежащих на близких орбитах, или на встречных курсах). Не лежащих внутри своей звезды (если планета гигант, или чтобы курс не проходил не проходил через звёзды в случае парных звёзд, слишком далёкие от солнца планеты тоже легко отсеиваются).

Поотдельности вроде бы некоторые решаем и для меня, но интересуют советы и рекомендации, если кто-то такое делал, может поделитесь опытом))

#1
18:02, 27 авг 2010

может использовать теорию вероятности для общей генерации?

#2
18:05, 27 авг 2010

Тогда там могут быть случаи близкого расположения планет или звёзд, которые ручками откопать не реально будет.

Поэтому случайная составляющая будет но хотелось бы на уровне формул(, чтобы уж точно.
В экселе даже с теми допусками у меня трёхэтажные получались...(по кол-ву условных операторов)

#3
18:14, 27 авг 2010

смотри, создаёшь 10 шаблонов систем или более и по этим шаблон генеришь планеты и системы.

#4
18:22, 27 авг 2010

А мысль интересная и простая до нельзя.

Только осталось решить прблему с регионами

#5
20:15, 27 авг 2010

Разбей пространство сеткой. При генерации координат проверяй, не попадает ли звезда в уже занятую ячейку. Ну и клади звезды только в четные ячейки, скажем.

#6
21:57, 27 авг 2010

Zizilk
Ни много, ни мало
Grammar Nazi.

#7
22:33, 27 авг 2010

begr
> Ни много, ни мало
да ладно, "немного не мало" - очень добротный, оригинальный и сильный оборот. вроде недоперепил.

#8
22:38, 27 авг 2010

Я чуствовал, что что-то не так)

#9
22:58, 27 авг 2010

Zizilk, Suslik
Ну вот, как теперь убрать? Чисто техническое замечание было, чтобы тема глаз не царапала :)
[Мечтательно] Вот бы и с heated... так.

Zizilk
Орбиты планетных систем находятся в одной плоскости потому, что
а) формируются закономерным образом из газопылевого облака
б) система с "нестандартным" расположением плоскостей орбит будет неустойчивой

PS
Звезды, которые ГСЧ посадил рядом, должны образовать двойные (кратные) звездные системы. IRL так, и довольно часто.

#10
23:17, 27 авг 2010

Ну просто сделать чтобы нестандартные системы попадались не часто.на счёт этого подумаю


а как к примеру такую получили карту (там ещё в одной плоскости)
http://eve-ru.com/data/images/com_img/evemap/universe/evemap.jpg

#11
11:09, 28 авг 2010

многоуровневые плоскости, то есть представь себе медовик или лазанью. плоскости находятся друг над другом и планеты располагаются на разных уровнях(высотах).

+ к старым баранам о разнообразии.
Можно сделать дополнительный фактор случайных планет, станций, астероидов. то есть в каждом шаблоне есть добавить по 1-5 переменных, которые могут быть чем угодно из списка.

#12
11:11, 28 авг 2010

Можно предложить раскидать случайно центры будущих кластеров по сетке с шагом К. Далее на первом шаге выбрать номер центра, а на втором расположение звезды в пределах радиуса К. Можно сделать тройной выбор  кластер-субкластер-звезда.

#13
15:36, 28 авг 2010

MasterBlaster
> к старым баранам о разнообразии
Так оно у меня было уже там (в частности 5 типов планет, + разрушающиеся планеты(вообще никакого функционала на них просто для красоты), ну и пояса само собой)

Так же думаю будет и со звёздами( и не только)

begr
Похоже что так оно и было, особенно если там в самой игре смотреть.

Вообщем кажется вырисовалось как получить желаемой, только поход экселем тут не обойтись)

#14
13:21, 30 авг 2010

MasterBlaster
вот-вот, читая ТС это и хотел предложить.
Т.е. сделать по сути трехмерную матрицу - и всё. Т.к. не указан язык, то можно фантазировать. А в реальности надо будет оптимизировать нагрузку на сервер при выборке и тогда "ваши нежные розовые мечты разобьются о чугунную жопу реальности" (с) :)
П.с. кстати по трехмерному массиву не сложно сделать и "вращение".

Страницы: 1 2 Следующая »
Игровой ДизайнФорумОбщее

Тема в архиве.