English Новый сайт

Расширенный поиск

[ Новые сообщения · Пользователи · Правила ]
Страница 11 из 13«12910111213»
Форум » SpaceEngine » Геймплей » Гиперпрыжки (Идеи по игровой технологии)
Гиперпрыжки
mindstalkerДата: Воскресенье, 07.10.2012, 20:32 | Сообщение # 151
Космический пилот
Группа: Команда SE
Российская Федерация
Сообщений: 96
Награды: 0
Статус: Offline
Собственно, про гиперпрыжки.

Текущая концепция:
Гиперперелет представляет собой серию микропрыжков (коротких мгновенных перемещений).
Эти мгновенные прыжки выполняются с сохранением энергии в направлении, определяемом движением корабля (т.е. управлять направлением прыжка можно только путем изменения направления движения корабля). Дальностью прыжка можно управлять напрямую.
Со стороны гиперперелет выглядит как ускоренное движение с сохранением орбиты.

Парадоксы:
Допустим, корабль находится на круговой орбите вокруг Земли. Для наблюдателя в центре Земли его орбита выглядит как окружность. Для наблюдателя в центре Солнца, его орбита выглядит как спираль.
Непонятно, как должен двигаться корабль при включении гиперпривода.
Если корабль будет двигаться, сохраняя орбиту с точки зрения наблюдателя на Земле, то с точки зрения наблюдателя на Солнце его орбита исказится (в пределе, при бесконечно большом ускорении, орбита превратится из спирали в окружность).
Если же корабль сохранит орбиту при наблюдении с Солнца, то он покинет орбиту Земли.

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

Он может быть лишь ПОХОЖ.

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

1.
Самое простое с точки зрения реализации в движке - сохранять скорость и направление движения в глобальной системе координат. В SE звезды и барицентры первого уровня неподвижны и глобальная - это как раз система координат, связанная со звездами и барицентрами первого уровня.

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

Насколько я понял, примерно так реализовано в версии 0.96.

2.
Если нужно, чтобы орбита вокруг планеты сохранялась, все несколько усложняется. В принципе, достаточно, чтобы сохранялись скорость и направление движения относительно планеты. Вопрос в том, как автоматически определить, вокруг чего сохранять орбиту (т.е. нужен способ определения, в зоне влияния кокого объекта находится корабль). К тому же, желательно, чтобы переход между зонами влияния был плавным.

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

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

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

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

Вообще, можно предположить, что при прыжке корабль переносится в некое пространство, в котором все объекты кроме него неподвижны, в течении некоторого времени по инерции и под действием гравитации передвигается в этом пространстве и возвращается в обычное пространство в соответствующей точке. Гиперпривод оставляет вокруг корабля "пузырь" обычного пространства, поэтому для экипажа корабля прыжок тоже мгновенный. Затраты энергии зависят (как минимум) от времени нахождения в "гиперпространстве".
Поскольку гиперперелет представляет собой серию микропрыжков, коэффициент ускорения это ни что иное, как отношение "времени" нахождения в гиперпространстве к времени промежутка между прыжками.


Windows 7 x64; Core i5-2500K (3.3 Ghz); 8Gb RAM; Radeon HD 6950 2Gb
SpaceEngineerДата: Понедельник, 08.10.2012, 00:33 | Сообщение # 152
Автор Space Engine
Группа: Администраторы
Российская Федерация
Сообщений: 5544
Награды: 54
Статус: Offline
Quote (mindstalker)
Если корабль будет двигаться, сохраняя орбиту с точки зрения наблюдателя на Земле, то с точки зрения наблюдателя на Солнце его орбита исказится (в пределе, при бесконечно большом ускорении, орбита превратится из спирали в окружность). Если же корабль сохранит орбиту при наблюдении с Солнца, то он покинет орбиту Земли.

Да, именно так и получается. Я сделал в 0.96 математику именно как увеличение шага интегрирования по времени для корабля, но не для планет. Получается что планеты как бы замедлились, и корабль по инерции улетает от планеты вдоль её орбиты вокруг солнца. Если учесть движение звёзд в галактике, то корабль вообще улетит из системы (скорость движения звёзд относительно центра галактики - сотни км/с), а если учесть ещё и движение гаалктик, итоговый вектор прыжка окажется совершенно не наглядным.

Quote (mindstalker)
Самый простой (и в то-же время более менее физически обоснованный) вид функции силы влияния - отношение массы объекта к квадрату расстояния до корабля.

Это же гравитация. Я пытался делать зависимость гиперфактора от локальной гравитации, получается неубедительно. Надо отладить рендер предрассчитанных орбит корабля, и рисовать веер орбит, с различными гиперфакторами, тогда можно будет оценить, работает ли идея. Но походу функция автоматического расчёта манёвров для перелёта к заданному телу будет весьма непростой.

Можно поступить проще, сделать гиперпрыжки аркаднымии, т.е. вектор и гиперскорость можно выбирать произвольно, но при выходе из прыжка корабль сохранит скорость. Поэтому использование двигателей для компенсации разности скоростей всё ещё требуется.


mindstalkerДата: Понедельник, 08.10.2012, 10:11 | Сообщение # 153
Космический пилот
Группа: Команда SE
Российская Федерация
Сообщений: 96
Награды: 0
Статус: Offline
Quote (SpaceEngineer)
Можно поступить проще, сделать гиперпрыжки аркаднымии, т.е. вектор и гиперскорость можно выбирать произвольно, но при выходе из прыжка корабль сохранит скорость.


Я правильно понимаю, что т.к. у нас серия микропрыжков, то гиперскорость - это дальность_прыжка x частота_прыжков?

Тогда есть небольшой хак на тему
Quote (SpaceEngineer)
Поэтому использование двигателей для компенсации разности скоростей всё ещё требуется.

Собственно:
1. На гиперприводе перебираемся в точку, в которой гравитация будет разгонять корабль в нужном направлении.
2. "Зависаем" с помощью гиперпривода в этой точке (постоянно прыгаем обратно в нее), набирая скорость.
3. По достижении нужной скорости, летим на гиперприводе куда хотели.
4. ???
5. PROFIT!!!

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

Полностью запретить такое использование гиперпривода невозможно.
Зато можно его ограничить, если запостулировать увеличение стоимости гиперпрыжка (а, значит, уменьшение максимальной гиперскорости) с ростом гравитации.
Разгон до произвольной скорости будет все еще возможен (ограничение - макс. гиперскорость в пустом пространстве), но "гипергравитационные" маневры станут более долгими.
При разгоне корабль будет вынужден удаляться от звезды/планеты по мере роста скорости (иначе гиперпривод не справится и корабль упадет на поверхность), тем самым снижая ускорение.
При торможении, наоборот, нужно постепенно приближаться.
Таким образом, "гипергравитационные" маневры можно сделать неудобными для повседневного применения игроками, но все-же возможными и полезными, например при выходе из строя главного двигателя или если внезапно закончится рабочее тело.


Windows 7 x64; Core i5-2500K (3.3 Ghz); 8Gb RAM; Radeon HD 6950 2Gb
SpaceEngineerДата: Понедельник, 08.10.2012, 18:26 | Сообщение # 154
Автор Space Engine
Группа: Администраторы
Российская Федерация
Сообщений: 5544
Награды: 54
Статус: Offline
Да, такой хак нарушает закон сохранения энрегии. Именно поэтому я хотел придумать такой гипердвигатель, который не нарушает, но он оказывается противоречивым. Телепортация куче всего противоречит!

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

Edit: Хотя нет, даже в этом случае полезут парадоксы - что происходит со светом/материей на границе пузыря?


mindstalkerДата: Понедельник, 08.10.2012, 18:49 | Сообщение # 155
Космический пилот
Группа: Команда SE
Российская Федерация
Сообщений: 96
Награды: 0
Статус: Offline
Если уж на то пошло, то любое сверхсветовое перемещение потенциально нарушает причинно-следственную связь... (вылезают различные замкнутые пространственно подобные мировые линии и т.п.)
Тем не менее, известен по крайней мере один факт сверхсветового перемещения материи - расширение вселенной ;). Так что, возможно, все возможно.

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


Windows 7 x64; Core i5-2500K (3.3 Ghz); 8Gb RAM; Radeon HD 6950 2Gb

Сообщение отредактировал mindstalker - Понедельник, 08.10.2012, 18:55
UnknownДата: Понедельник, 08.10.2012, 19:08 | Сообщение # 156
Нет аватара
Исследователь
Группа: Пользователи
Российская Федерация
Сообщений: 160
Награды: 2
Статус: Offline
Quote (SpaceEngineer)
Edit: Хотя нет, даже в этом случае полезут парадоксы - что происходит со светом/материей на границе пузыря?


Вот поэтому, наверно, и было придумано "гиперпространство", в которое попадает корабль. Т.е. корабль просто исчезает из обычного пространства и движется со сверхсветовой скоростью, т.к. в новом пространстве законы это позволяют, и такой способ не влияет на привычный нам мир. Вот такая шутка smile
SpaceEngineerДата: Понедельник, 08.10.2012, 19:11 | Сообщение # 157
Автор Space Engine
Группа: Администраторы
Российская Федерация
Сообщений: 5544
Награды: 54
Статус: Offline
Quote (mindstalker)
Тем не менее, известен по крайней мере один факт сверхсветового перемещения материи - расширение вселенной ;). Так что, возможно, все возможно.

Пространство - не материя smile

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

А что будет если не вкачать? Прыжок не состоится, или выкинет не там где надо?
Надо всё это обдумать...

Quote (Unknown)
Вот поэтому, наверно, и было придумано "гиперпространство", в которое попадает корабль. Т.е. корабль просто исчезает из обычного пространства и движется со сверхсветовой скоростью, т.к. в новом пространстве законы это позволяют, и такой способ не влияет на привычный нам мир. Вот такая шутка

Это не объясняет, возможен ли хак с бесплатным разгоном в поле гравитации планеты.


mindstalkerДата: Понедельник, 08.10.2012, 22:04 | Сообщение # 158
Космический пилот
Группа: Команда SE
Российская Федерация
Сообщений: 96
Награды: 0
Статус: Offline
Quote (SpaceEngineer)
Пространство - не материя

Да, конечно. Но в результате, некоторые галактики ведь как-то оказались дальше возраста вселенной... А ведь они вполне материальны wink

Quote (SpaceEngineer)
А что будет если не вкачать? Прыжок не состоится, или выкинет не там где надо?


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

В принципе, все зависит от ответов на следующие вопросы:
1. Всегда ли происходит прыжок при активации гиперпривода? Какие условия необходимы, чтобы совершить прыжок?
2. От чего зависит направление прыжка?
3. От чего зависит дальность прыжка?
(Возможно, список неполон)

На эти вопросы нет единственно верных ответов. Поэтому отвечать следует с точки зрения влияния на геймплей и на простоту реализации.

Мой вариант:
1. Нет, не всегда. Необходимо подать энергию выше некоторого порогового значения.
2. Направление прыжка зависит от ориентации гиперпривода а пространстве (отсюда и карданов подвес).
3. Дальность прыжка зависит от энергии, поданной на гиперпривод и от внешних условий (степени искревления пространства aka гравитации и плотности вещества на пути перехода). Дальность прыжка не может быть меньше длины области воздействия гиперпривода* (область выхода не может пересекаться с областью входа)

*Исключительно для пущей реалистичности. С точки зрения геймплея совершенно необязятельно.

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


Windows 7 x64; Core i5-2500K (3.3 Ghz); 8Gb RAM; Radeon HD 6950 2Gb
UnknownДата: Понедельник, 08.10.2012, 22:58 | Сообщение # 159
Нет аватара
Исследователь
Группа: Пользователи
Российская Федерация
Сообщений: 160
Награды: 2
Статус: Offline
Quote (SpaceEngineer)
Это не объясняет, возможен ли хак с бесплатным разгоном в поле гравитации планеты.

у меня была как-то идея, что корабль создаёт сильное антигравитационное поле(не могу точно выразиться), а гравитационное поле планеты отталкивает его от себя и корабль получает импульс движения. Типа магнитов, повёрнутых разными полюсами друг к другу.
А так, если у нас термояд, то на разгон всё равно что-то потребуется. Хотя бы для того, чтобы выйти за пределы действия гравитации планеты.
MutenokДата: Воскресенье, 14.10.2012, 10:50 | Сообщение # 160
Нет аватара
Наблюдатель
Группа: Пользователи
Российская Федерация
Сообщений: 18
Награды: 0
Статус: Offline
что то у меня возникли идейки насчет гипердвигателя.
В нем находится система черных микро-дыр, расходник - тоже черные дыры определенной массы и типа (под это можно подвести классификацию двигателей). Центральная система дыр используется для создание тяги (релятивистские джеты). При включении гипердвигателя дыры из обоймы (их много, маленьких, столько сколько будет прыжков) по очереди взаимодействуют с центральной системой (сталкиваются например и исчезают). В такой момент образуется очень короткоживущая аномалия, которая заставляет корабль прыгнуть. Сами дыры скорее всего делаются на станциях, но мб двигаетль (или отдельные его модели) может генерировать их сам, в специальном режиме (но не может выполнять обычные функции тогда)

Далее: че такое прыжок? Корабль использует обычный полет по инерции, т е его траектория имеет как минимум 4 измерения. Условно уберем одно пространственное, получим плоский космос, и вертикальное измерение времени. Нам нужно что бы корабль проходил максимальное расстояние в пространстве за минимальное смещение во времени. Сейчас это достигается увеличением скорости корабля. Но нам этого не достаточно и мы используем какие то микропрыжки. Значит профиль траектории во времени будет "зубчатым".
Больше всего похоже что корабль прыгает назад во времени вселенной. Т е наш гипердвигатель в момент столкновения создает некую аномалию, которая изменяет течение времени вокруг себя. Корабль пролетает за секунду например 100 км, и прыгает на секунду назад, без изменения своего положения. С точки зрения вселенной он смещается за нулевое время (что бы не нарушать принцип причинности мы не можем прыгнуть во времени только в пределах существования аномалии, а мб даже не в самое начало ее существования). Реально пожалуй смещение должно быть не мгновенным, но сильно меньше по времени вселенной, чем без гипера.
С точки зрения стороннего наблюдателя, будут видны скорее всего сами аномалии появляющиеся и тут же исчезающие, а то происходит с кораблем скрыто зоной искажения. Т е мы увидим цепочку вспышек (или только первую вспышку если шаг двигателя большой, и мы не разглядим соседние из за расстояния).

Вопрос с течением времени в корабле что то остался... Не знаю пока что с этим делать. Концепция сырая и мб не выдержит детального разбора.
RocketeerДата: Среда, 24.10.2012, 07:24 | Сообщение # 161
Космический пилот
Группа: Пользователи
Российская Федерация
Сообщений: 107
Награды: 0
Статус: Offline
В этой теме уже предлагали варп-двигатель - имхо вполне разумная идея.
Я не физик, но насколько знаю, использование варп-двигателей теоретически возможно (Алькубьерре и его сторонники), они не дают диких перегрузок, не нарушают теорию относительности и демонстрируют нужный нам эффект плавного сверхсветового полета.

Публикации по теории варп-двигателя можно почитать тут: http://www.if.ufrj.br/~mbr/warp/


ZX Spectrum 128K + магнитофон "Аэлита-102"

Сообщение отредактировал Rocketeer - Среда, 24.10.2012, 08:45
SpaceEngineerДата: Среда, 24.10.2012, 18:02 | Сообщение # 162
Автор Space Engine
Группа: Администраторы
Российская Федерация
Сообщений: 5544
Награды: 54
Статус: Offline
Quote (Rocketeer)
Я не физик, но насколько знаю, использование варп-двигателей теоретически возможно (Алькубьерре и его сторонники), они не дают диких перегрузок, не нарушают теорию относительности и демонстрируют нужный нам эффект плавного сверхсветового полета.

Вот только требуют безумного количества энергии, ещё и в форме экзотической материи с отрицательным давлением.


SerggДата: Среда, 24.10.2012, 19:24 | Сообщение # 163
Космонавт
Группа: Пользователи
Российская Федерация
Сообщений: 44
Награды: 1
Статус: Offline
а всякие там кротовины с червоточинами не рассматриваете? smile
DIMON99Дата: Среда, 24.10.2012, 21:05 | Сообщение # 164
Исследователь
Группа: Пользователи
Беларусь
Сообщений: 277
Награды: 7
Статус: Offline
Quote (SpaceEngineer)
с отрицательным давлением.

А как это давление может быть отрицательным? shok


Карась любит, чтобы его жарили в сметане. Это знают все кроме карася.
Его даже и не спрашивали не только насчет сметаны, но и любит ли он
поджариться вообще.
Такова сила общего мнения.©
Dizel777Дата: Среда, 24.10.2012, 21:09 | Сообщение # 165
Строитель Миров
Группа: Модераторы
Российская Федерация
Сообщений: 800
Награды: 4
Статус: Offline
DIMON99, относительно другой среды...
К примеру, относительно нашей атмосферы, космос это среда отрицательного давления smile2


Win 7 Ultimate 64-bit SP1
AMD Phenom II X4 945 Processor
4GB RAM, NVIDIA GeForce GTS 250
Форум » SpaceEngine » Геймплей » Гиперпрыжки (Идеи по игровой технологии)
Страница 11 из 13«12910111213»
Поиск:

>