Войти
ФлеймФорумРазработка игр

Массив протяженностью 10^20 (3 стр)

Страницы: 1 2 3 4 58 Следующая »
#30
6:32, 8 дек. 2014

Ren
> Тогда второй вопрос - как привести координаты вида 175347487573834, 75838345477886749 к удобо читаему виду?

Предлагаю пойти посмотреть в астрономию... Какие массивы в космосе? Где там нулевая точка? :)
Если бы я делал такой глобал, я бы начал с галактики. У галактики есть центр, все остальные звёзды имеют радиальные координаты от этого центра и скорость вращения вокруг. Соответственно, попадая в _галактику_ игрун получает на себя координаты в рамках этой _галактики_ и изменяет своё положение в полёте относительно центра, если делать грубо (и не париться). Как только игрун попадает в звёздную систему, система координат переключается на данную звезду, меняется механика, включается жизнь и так далее. Точка влёта-вылета рассчитывается из положения звезды в галактике и координат корабля в ней же. То же самое со всеми остальными массивными телами, типа планет - проход некой области в пространстве переключает систему координат на систему данного тела. И ещё один момент: все, вообще все, вращаются вокруг чего-нибудь, как ты собрался пересчитывать(перегонять в памяти) сотни миллиардов звёзд в массиве? Точнее, что у тебя одна точка в массиве? Надеюсь, ты задумал и сделаешь майнкрафт в одной отдельно взятой вселенной? :)  Кстати да, тема с вылетом-влётом из-в галактику во вселенной решается всё-таки заведением центра масс всех галактик во вселенной, этот центр масс и будет центром координат, а в общем-то, наоборот. Вообще, надо бы сделать плавный переход от галактических(звёздных, планетарных) координат к вселенским(галактическим, звёздным) и обратно. Иначе, вылетаешь ты такой со скоростью, скажем 200 км/с из галактики в систему координат вселенной, а у галактики скорость 500 км/с, и она мгновенно улетает к горизонту, и... и... всё... прощай, галактика... =( или ещё веселее - если ты вылетаешь с другой стороны... и опа... в то же мгновение, галактика нагоняет тебя, да ещё и с разгону в 300км/с долбит об тебя какую-нить звезду... неприятно! =)

Чуорд, што-то меня цепляет эта идея... тока бы не началось...

#31
11:09, 8 дек. 2014

Неее... Массивом это делать не правильно. Каждую планету (и/или другие объекты) можно делать 2 или 3 мерными массивами, если это необходимо. А остальное - координатами и параметрами. Даже в космическом майнкрафте никто не будет строить шахты на Солнце... ну разве что ночью. По этому для Солнца достаточно "xyz,m,R", может ещё RGB цвет. Остальные объекты, как бесконечные астероиды гораздо проще учесть "по названию", более того, не обязательно все из них хранить в памяти - а только те, с которыми игрок встречался недавно и удалять их по прошествии некоторого времени, а новые генерировать случайно по мере необходимости. Как бы там ни было, вакуума в космосе больше, чем материи :) Всякие же "газовые облака", тёмную и светлую сторону сил... материи снова-таки стоит задавать с меньшей разрешающей способностью, или вообще, какой-либо функцией.

#32
11:46, 8 дек. 2014

StepEver
> Вообще, надо бы сделать плавный переход от галактических(звёздных, планетарных)
> координат к вселенским(галактическим, звёздным) и обратно.
Ну, в KSP примерно так(разве что заканчивающееся на уровне звезды). Но я думаю Ren все-таки что-то более казуальное делает, поэтому и галактика вращаться не должна и честно пересчитывать скорости не надо.

#33
11:53, 8 дек. 2014

kipar
> Но я думаю Ren все-таки что-то более казуальное делает
Ну может, но хорошо так-то казулки выросли... мир со стороной в длину 10^20  ^_^
Надо у Neptune спросить, на каких принципах он SpaceEngine делал... а лучше просто выпросить/купить у него лицензию на право пользоваться.

#34
11:59, 8 дек. 2014

Ren
> но когда появляются значения, отличные от значений по умолчанию, такой массив становится неэффективным
Ржано.
Оформить бы тебя в пёрлы, но не могу придумать, как это сделать эффективно - чтоб смысл передать.

Оформил. Достаточно легко оказалось.

#35
12:08, 8 дек. 2014

Саша123
Вообще-то это цитата с Википедии.

Саша123
> Ржано.
А вот это оговорка по Фрейду. Кушай, не обляпайся.

#36
12:11, 8 дек. 2014

Ren
Попробуй повысить котировки акций. Должно сработать.

#37
13:36, 8 дек. 2014

StepEver
> Где там нулевая точка? :)
Изображение
угадай где нулевая точка примерно у такого 2д-массива?))

> как ты собрался пересчитывать(перегонять в памяти) сотни миллиардов звёзд в
> массиве?
В целом это не очень сложно, другое дело что напряжно по ресурсам. Но я не планировал вращение звезд делать. На уровне звезд все статично
> Вообще, надо бы сделать плавный переход от галактических(звёздных,
> планетарных) координат к вселенским(галактическим, звёздным) и обратно. Иначе,
> вылетаешь ты такой со скоростью, скажем 200 км/с из галактики в систему
> координат вселенной, а у галактики скорость 500 км/с, и она мгновенно улетает к
> горизонту, и... и... всё... прощай, галактика... =( или ещё веселее - если ты
> вылетаешь с другой стороны... и опа... в то же мгновение, галактика нагоняет
> тебя, да ещё и с разгону в 300км/с долбит об тебя какую-нить звезду...
> неприятно! =)
Это интересная тема, пока не знаю как ее решать в целом. Планета убегающая от тебя на скорости 9 км/с - представляет проблему для посадки, если твоя скорость выражена в абсолютных величинах. Если в относительных, то к чему привязываться? К ближайшей планете/спутнику? Это затруднит внутрисистемную навигацию.
eugeneloza
> По этому для Солнца достаточно "xyz,m,R"
Ну если уж речь пошла так далеко, то "xy,T,R"
eugeneloza
> никто не будет строить шахты на Солнце... ну разве что ночью
Хорошая шутка))
StepEver
> а лучше просто выпросить/купить у него лицензию на право пользоваться.
Вряд-ли он согласится)) у него какая-то своя цель походу))

#38
13:52, 8 дек. 2014

Ren
> Тогда второй вопрос - как привести координаты вида 175347487573834, 75838345477886749 к удобо читаему виду?
Использовать несколько индексов для разных карт. На глобальной, разбитой к примеру по парсекам, для далеких путешествий, будет координаты парсеков. И локальной, где внутри каждого парсека можно задавать координаты отдельных планет. Полные координаты отдельной планеты в отдельном парсеке будут похожи на IP адрес, но для перемещения в пределах одного парсека можно использовать короткую запись.

#39
13:59, 8 дек. 2014

Ren
> Это интересная тема, пока не знаю как ее решать в целом. Планета убегающая от
> тебя на скорости 9 км/с - представляет проблему для посадки, если твоя скорость
> выражена в абсолютных величинах. Если в относительных, то к чему привязываться?
> К ближайшей планете/спутнику? Это затруднит внутрисистемную навигацию.
Почему затруднит? Как раз должны быть сферы влияния, все по ним летают. Если мы дальше 1 мегаметра от земли - меряем относительно солнца, если ближе - меряем относительно земли.

Проклятые гуманитарии заняли термин "сфера влияния" в википедии, лол. В английской хоть "disambiguation", а в русской https://ru.wikipedia.org/wiki/Сфера_действия_тяготения
#40
14:03, 8 дек. 2014

kipar
> Почему затруднит? Как раз должны быть сферы влияния, все по ним летают. Если мы
> дальше 1 мегаметра от земли - меряем относительно солнца, если ближе - меряем
> относительно земли.
А границы сферы влияния? Резкие? Перешел границу и внезапно модель скорости поменялась?
П.С. по ссылке 1 гигаметр))

#41
14:08, 8 дек. 2014

Ren
> П.С. по ссылке 1 гигаметр))
Да, торможу.

Ren
> А границы сферы влияния? Резкие? Перешел границу и внезапно модель скорости
> поменялась?
Да, это самый простой вариант для расчетов и для рисования орбит.
Ну, либо обе скорости выводить - относительно солнца и относительно цели.

#42
14:12, 8 дек. 2014

Еще сотня страниц, и можно будет поговорить о пространственно-индексированной иерархии объектов.

#43
14:23, 8 дек. 2014

Ren
продавай на пролонгировании доу джонсона

#44
14:26, 8 дек. 2014

beejah

Не торопись. Сначала мы должны вскипятить океаны массивом 10^40.

Страницы: 1 2 3 4 58 Следующая »
ФлеймФорумРазработка игр