Winding Trail project

 

Стрельба по параболе

Февраль 15, 2006, 12:59
Автор:
Alena
Категория: Программист

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

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


Комментариев: 17
Оставить комментарий
Автор: Maniac (02.15.06, Февраль 15, 2006, 16:22)

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

Автор: Tomaz (02.15.06, Февраль 15, 2006, 18:44)

Наверное выбирать только угол при стрельбе навесом было бы интереснее. Только при таком способе нужно много боеприпасов.

Автор: Karasevda (02.15.06, Февраль 15, 2006, 19:10)

В продолжении дискуссии… Есть версия: можно сделать дополнительный модуль для любимого грузовика - баллистический вычислитель. Есть модуль - задал точку попадания - модуль рассчитал угол - пальнули. Нет модуля - подбираем угол вручную. Даешь реализм! :)

Автор: Serj (02.15.06, Февраль 15, 2006, 19:17)

При стрельбе навесом, можно сделать стрельбу как в “Gunbound”: выбираешь угол, жмёшь пробел для силы выстрела. Загвоздка в том, что та игра - 2D, легче стрелять, здесь же будет 3D. Движок такие фокусы не осилит, я полагаю. И ещё - в том же “Gunbound” есть такие фишки как сила ветра и направление, куда он дует. Вы могли бы их “усыновить” =)
Только всё равно не представляю как вы сделаете 2D view, потому что иначе у вас может получиться “Scorched Earth 3D”, а это - ужос.

Автор: Goodwin (02.16.06, Февраль 16, 2006, 9:28)

/… строила параболу в двумерном пространстве, а потом ее разворачивала/

Значит в расчёт ветер, например, приниматься не будет? Ведь тогдаж её в 3D ещё подскручивать придётся…

Автор: Jim (02.16.06, Февраль 16, 2006, 12:17)

Мы активно сейчас продвигаемся к тому, чтобы уже можно было во что-то полноценно пострелять не теоретически, а на реальных примерах. Когда мы этого достигнем, тогда уже можно будет осмысленно судить, насколько такой “автоматизм” вреден. Есть вероятность, что динамика боя будет настолько высокой, что “ручное управление” параметрами параболы будет нереально усложнять процесс. Избыточный хардкор не всегда на пользу.

Вот прямо сейчас, мне кажется, что если игрок возмет на себя расчет упреждения и учет особенностей рельефа, а автомат возмет на себя все остальное - этого будет достаточно. Но к этому мы, безусловно, еще вернемся.

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

Автор: Alena (02.16.06, Февраль 16, 2006, 12:38)

При стрельбе навесом, можно сделать стрельбу как в “Gunbound”: выбираешь угол, жмёшь пробел для силы выстрела. Загвоздка в том, что та игра - 2D, легче стрелять, здесь же будет 3D. Движок такие фокусы не осилит, я полагаю.

Нет, движок как раз осилит. Проблема в том, насколько это будет играбельно.

Значит в расчёт ветер, например, приниматься не будет?

Нет.

Автор: Serj (02.16.06, Февраль 16, 2006, 18:06)

Обдумал повторно, похоже вы правы. Хотя в принципе можно было бы сделать ветер двухмерным и всё - стрелять стало бы не сложно, хотя и не так уж легко. Правда это неслабо усложнит уравнение параболы. =)

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

Автор: IceCastle (03.13.06, Март 13, 2006, 0:11)

Хы вот почему все когда говорят о “климате” сразу же вспоминают про ветер, а про то, что снаряд просто летит в атмосфере - нет? атмосфера сама по себе второй фактор после гравитации однако! %))

Автор: IceCastle (03.13.06, Март 13, 2006, 0:15)

Когда летит снаряд - на него набегающий поток дует со скоростью километер в секунду, а ветер - ну самый сильный 10 м/с добавит. решение с атмосфкрой сложней конечно, нужно решать дифуры или еще че… ой о чем это я :)

Автор: timochka (03.14.06, Март 14, 2006, 9:56)

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

Автор: timochka (03.14.06, Март 14, 2006, 9:58)

Кстати, для ветра дифф ур-ов решать не надо :-)
Надо таблицу поправок на дальность и на снос в перпендикулярном направлении для диапазона скоростей ветра. Для каждго типа выстрела отдельно естессно.

Автор: Alena (03.14.06, Март 14, 2006, 16:49)

А может проще все надо. В реальной жизни (да хоть при игре в пейнтбол, хоть при стрельбе из танка) нет никакой переменной силы выстрела, ускорение свободного падения тоже постоянно везде :) можно варьировать только направление стрельбы и угол возвышения ствола. ВСЕ!

Мы идем с другой стороны. Нужно мышкой выбрать цель а все расчеты уже происходят автомагичеси (то есть я считаю).

Автор: spiMozg (03.21.06, Март 21, 2006, 5:04)

Алена.Безусловно согласен,что создание такой системы стрельбы - интересная задача.Также интересно реализовать в игре влияние на снаряд ветра,влажности,атмосферных осадков и колебаний ускорения свободного падения,вызванных движением небесных тел.Как спинной мозг,считаю своим долгом заявить следующее:
Самостоятельный расчет траектории “на глазок” не является сложной задачей даже в движении(при постоянной начальной скорости,конечно).Подтверждением сего прошу считать мой опыт стрельбы из Flac(k?,упс,спикинглиш:)Cannon’а в UT2004.Ну не всей траектории,но конечной точки.И дайте игроку простую и понятную систему с V=const и без заморочек с разбросом и влияниями,дело пойдет само после небольшой пристрелки.Программистские заморочки ужасно приятны при программировании,но зачастую ужасно неиграбельны. Этакими темпами придется игроку выдать артиллерийские таблицы,руководство по пользованию ими,компас и астролябию.Простите.
Внушает тревогу и система “раскладывания” машины в своем классическом,можно сказать,стереотипном варианте.Как спинной мозг скажу - ничто так не раздражает,как вот эта вот долгая трансформация ради того,чтобы разок стрельнуть навесом мощным снарядом.Это органично смотрится,если игрок не один,его могут прикрыть боты или товарищи по мультиплееру,сама же концепция неповоротливой сверхмощной артиллерии для одного человека выглядит довольно странно.Также под вопросом целесообразность кругового обзора такой пушки.Если игрок один,возможно лучше использовать сравнительно короткий цикл подготовки к выстрелу и ограниченный сектор стрельбы,чтобы игра не превращалась в периодические поливания местности снарядами в целях профилактики.Есть враг,враг скрылся за препятствием,или известно,где он прячется,короткая остановка,два небольших домкрата упираются в землю,выстрел или два,поехали дальше. На все минуты две-три.Даже в современной армии все больше внимания уделяется мобильности мощного вооружения(РПГ,минометы),что уж говорить о вооружении будущего.
Извините,Jim,но я решительно отказываюсь верить в возможность поразить воздушную цель медленно летящим по параболе снарядом.Если только вы не имели в виду дополнение основного орудия скоростным,с высокой скоростью полета пуль.Ну или ооочень медленно летящую цель.
Впрочем,отказавшись верить в такую возможность я тут же придумал способ.Даже систему способов. Воздушные цели обычно довольно плохо бронированы, что успешно используется в ПВО.Достаточно взорвать осколочный снаряд даже на некотором расстоянии,чтобы летательный аппарат был сильно поврежден. Поэтому,если дать игроку возможность взрывать снаряд дистанционно,а снаряд сделать осколочным, появится возможность не только организовать противовоздушную оборону,но и более эффективно стрелять навесом,взрывая снаряд над врагом и компенсируя таким образом неточность наводки.Вот. А между выстрелами можно на кнопку подрыва повесить выстреливание пристрелочных снарядов,летящих по той же траектории и позволяющих оценить точность наводки и не тратить осколочные снаряды.Пристрелочные снаряды могут работать как осветительные и/или зажигательные.Уф.
“Кончаю,страшно перечесть”:)
В общем же и целом успехов вам,вы делаете то,что вам интересно без оглядки на мейнстрим и “массы”.
Благодарю за внимание.

Автор: Иван Сагалаев (03.21.06, Март 21, 2006, 20:14)

Чего я не понял в предыдущем комментарии — это того, жалоба это на “слишком просто” или на “слишком сложно”? :-)

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

Автор: spiMozg (03.24.06, Март 24, 2006, 4:59)

Предыдущий,нет,предпредыдущий комментарий всего лишь о том,что излишне сложная система стрельбы,равно как и различные ухищрения с долгими трансформациями машины могут напрочь убить всю игру “на колесах”,потому что с точки зрения достаточно быстрого врага момент,когда машина неподвижна,самый подходящий,чтобы подьехать поближе и настучать побольнее.
Каюсь,футуристическое оружие с прицеливанием по системе мортиры тоже будет глупо смотреться,но тогда вопрос возникает для системы с автоматическим прицеливанием,Алена,если целиться таким образом по врагу за препятствием,то как удобно зафиксировать вторую точку параболы,т.е. предполагаемое положение врага?
“Тут суть в принятии решения: стрелять - не стрелять, и чем естрелять. А сам процесс стрельбы — это скорее дань ощущению реалистичности, но не смыслу игры” - я что-то пропустил,передвижение на машине и стрельбу уже сделали пошаговыми ? :)

Автор: Alena (03.24.06, Март 24, 2006, 10:22)

Алена,если целиться таким образом по врагу за препятствием,то как удобно зафиксировать вторую точку параболы,т.е. предполагаемое положение врага?

Предполагаемое - никак. Целиться можно только в врага, он должен попасть в прицел.



Оставить комментарий

(обязательно)

(обязательно)


Переводы строк автоматические, e-mail никогда не показывается, разрешен HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>