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

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

Страницы: 13 4 5 68 Следующая »
#45
14:30, 8 дек. 2014

kipar
> Да, это самый простой вариант для расчетов и для рисования орбит.
> Ну, либо обе скорости выводить - относительно солнца и относительно цели.
Не могу представить в голове взаимодействие двух и более кораблей на границе "сферы влияния". Ушел рисовать картинки с векторами.


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

Продавай индексы на бирже фьючерсов

#47
15:25, 8 дек. 2014

Ren
Тебе надо учитывать гравитацию. Т.е. кроме собственной скорости корабля, надо добавлять то, что дали ускорения свободных падений. Ведь по идее, находясь на земле, мы падаем на все объекты вселенной, но так как земля сильно ближе, остальными можно пренебречь

#48
16:24, 8 дек. 2014

StepEver
> Т.е. кроме собственной скорости корабля, надо добавлять то, что дали ускорения свободных падений.
Чем проще, тем лучше. Это игра, а не диссертация по вариационному исчислению. Помню, лет 10 назад писал прототип "стрелялки в космосе" на около-ньютоновской физике. Управлять такой штукой даже в пошаговом режиме оказалось невозможным - сколько "подсказок" автопилота не вводил. Можно, конечно же, отдать всё управление компьютеру и считать там брахистохроны или оптимизационную задачу по топливу... Но это в большинстве случаев будет созерцание игроком процесса работы компьютера, в крайнем случае, можно добавить ползунок "быстрее - экономнее".
В среднестатистических же ситуациях нужно сделать то, чем игрок смог бы управлять с помощью клавиатуры/мыши без занимательной задачи по решению интегральных уравнений.
А то можно докопаться до гравитационного притяжения космического корабля к его собственному выхлопу да и газовых эманаций из более нагретой светом далёкой звезды части корпуса корабля...

Массивные объекты (например 3*10^8 звёзд в галактике, но столько никому не нужно, миллион с головой хватит даже для ММО) -> Постоянные объекты типа планет (подгружаются/генерируются в зависимости от близости) -> мелкие случайные объекты, например, астероиды (в динамически наполняемом-опустошаемом массиве). Мне кажется, что этого с головой достаточно для почти любого сеттинга.

#49
16:44, 8 дек. 2014

eugeneloza
> Это игра, а не диссертация по вариационному исчислению
Вот-вот. Задумывается "инерциальная" система полетов (без торможения). Задача сделать ее играбельной. А вот эти жы - сильно мешают. А убрать жы, так догонять планету устанешь. Тем более парковаться.

eugeneloza
> Массивные объекты (например 3*10^8 звёзд в галактике, но столько никому не
> нужно, миллион с головой хватит даже для ММО) -> Постоянные объекты типа планет
> (подгружаются/генерируются в зависимости от близости) -> мелкие случайные
> объекты, например, астероиды (в динамически наполняемом-опустошаемом массиве).
> Мне кажется, что этого с головой достаточно для почти любого сеттинга.
Именно так. Даже цифры похожие.

#50
16:53, 8 дек. 2014

я так и не понял где там двумерный массив?
если это GRID/MULTIGRID то что мешает сделать размеры ячеек больше тем самым уменьшив размерность массива. космос то все равно пустой.
а если сливать в кучу пустые клетки то QUAD/OCTREE получится.

#51
19:43, 8 дек. 2014

eugeneloza
> Чем проще, тем лучше. Это игра, а не диссертация по вариационному исчислению.
Ну может и так, но сложить пару систем отсчёта тоже не сильно сложно.

Pushkoff
> а если сливать в кучу пустые клетки то QUAD/OCTREE получится.
а потом разбираться в них - это капец какой-то

#52
20:04, 8 дек. 2014

корзину трейдинга лонгируй на фючерсе

#53
20:59, 8 дек. 2014

Ren
> так догонять планету устанешь. Тем более парковаться.
Ну сделайте автопарковку. А то и автопилот.

#54
22:37, 8 дек. 2014
Ну может и так, но сложить пару систем отсчёта тоже не сильно сложно.

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

1) Планета стоит на месте и звёзды тоже. (типа elite plus)
2) Движения игрока заведомо быстрее движения планеты. Например, планета делает оборот за 10 минут, а пролететь солнечную систему насквозь игроку хватит 10 секунд. Тогда по сути можно вообще жы не считать, двигатель корабля заведомо мощнее 10жы. Пойдёт с головой безинерциальное движение - гравитация будет лёгкой помехой для управления, и при этом если игрок не движется, его будет красиво тянуть к планете / вращать по орбите :)
3) Я в своей игрушке-наброске вводил некое "торможение". Даже псевдонаучную теорию под него придумал :) Правда, так и не довводил до конца. Т.е. иными словами скорость корабля, включая жы, "3.1." плавно ограничена сверху и "3.2." постепенно и не очень быстро падает до нуля (у Вас будет до "местного нуля", т.е. до скорости самого ближайшего массивного объекта) - каждый тик определённое кол-во процентов. Типа как в Star Control 2, правда, там чуть хитрее, торможение они вводили только когда корабль включал двигатель.
4) Делать всё на автомате/автопилоте (как в elite 3). При этом не обязательно заставлять компьютер решать невнятное интегральное уравнение, даже не помню какого типа. Достаточно просто сделать приблизительную траекторию, что, в сочетании с п.2. (т.е. ускорение двигателя корабля заведомо больше всех возможных внешних факторов) приведёт задачу автопилота к достаточно простой - в какой точке прямолинейного маршрута начать тормозить, чтобы конечная скорость равнялась скорости цели, решается арифметикой. А всякие украшательства, типа изгибов и иже добавить чисто для красоты.

хм... и как же я забыл:
5) Делать гиперпрыжки между планетами. Т.е. игрок не летит 4 парсека на протяжении 50 лет, а бах и невдалеке от нужной звёздной системы или даже планеты c необходимой автоматом согласованной "галактической" скоростью. Типа как в той же elite 3.

#55
23:30, 8 дек. 2014

Ушли уже вглубь, ну да ладно
eugeneloza
> 5) Делать гиперпрыжки между планетами. Т.е. игрок не летит 4 парсека на
> протяжении 50 лет, а бах и невдалеке от нужной звёздной системы или даже
> планеты. Типа как в той же elite 3.
Гиперускорение в межпланетных перелетах (разгон, разворот, торможение). Ускорение/торможение 100 км/с^2. Полет Земля - Луна - 1 минута. Земля - Юпитер - 40 минут.
Между системами прыжок. Прокол пространства. Ибо никакое внятное ускорение, даже с превышением скорости света...  в общем диаметр галактики 100 000 световых лет. Что как бы намекает.

Действия игрока при прыжках - настроил параметры, полетел/прыгнул. Хочется оставить движение планет внутри системы ибо тогда ее "география" будет постоянно меняться, что сделает из навигации по системе фишку, а не рутину. Врезался в Марс - потерял корабль. Пролетел близко от Солнца - сгорел. Оверсан - значит два прыжка. И т.п.

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

#56
7:30, 9 дек. 2014

Ren
> при пересечении некой границы сферы - скорость моментально возрастает относительно предыдущей....
ты учитываешь инерцию? При переходе сферы скорость корабля должна увеличиваться на скорость планеты(векторно), точно так же как и при прохождении в сферу, из скорости корабля вычитается скорость планеты, и всё ок.
Точнее так, при переходе из одной системы в другую - у корабля вычитается скорость новой и добавляется скорость старой системы. Эйншейн почти рад (время + гравитация не учтены).
Единственное, что мне непонятно, какую скорость ты будешь рисовать на спидометре? =)
Поэтому я бы делал так: зависимость от 2 систем координат, 2 спидометра. Один от ближайшей звезды, второй от ближайшей планеты(если она ближе звезды, иначе от второй ближайшей звезды или вообще молчит). И рассчитать влияние гравитаций в реалтайме, используя формулу Кармака, вообще не проблема.

upd: не, не так. Система координат одна, центр её - центр сил гравитаций в данной системе. Т.е. если взять систему "звезда + планета", то он для корабля в данный момент находится на линии между звездой и планетой, в пропорции действий сил гравитации обоих тел на корабль. Физически это очень даже правильно. Грубо говоря, есть точка между Землёй и Луной, где сила гравитации обоих планет уравновешивается, и можно висеть. Соответственно, если там у объекта скорость ноль, он будет висеть в этой точке, вращаясь вместе с Луной вокруг Земли и с Землёй вокруг Солнца. Эта точка в данный момент и есть центр координат. Если мы завелись и поехали в сторону Земли, её гравитация начинает влиять сильнее, центр координат впереди корабля улетает к центру Земли. Но непонятно, получается, мы летим к Земле, при этом относительно центра координат, мы летим от Земли :)
Со спидометром тоже непонятно, но можно тоже привязать к центру сил гравитаций, она будет плавно меняться по мере движения корабля.

#57
8:57, 9 дек. 2014

Тема ушла от массива. Печаль.

#58
9:19, 9 дек. 2014

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

#59
10:28, 9 дек. 2014

Incvisitor
> Тема ушла от массива. Печаль.
Массив в реальной жизни на больших вещах не работает

Страницы: 13 4 5 68 Следующая »
ФлеймФорумРазработка игр