Самая первая игра в мире Spacewar была основана на ведении огня по противникам и избегании их снарядов, с тех пор многое поменялось, однако последующие 2D игры наследовали её механику стрельбы.
Неспешно летящие пули в Contra или фаерболл из рта Боузера, охраняющего принцессу, все эти механики работали одинаково :
снаряд генерировался и летел в заданном направлении.
Перепрыгнем в современные трехмерные игры : здесь можно четко выделить 3 метода реализации стрельбы, у каждого свои преимущества и области использования, о них в этой статье.
Обстрел лучами
Изначально именно этот метод применялся для реализации стрельбы в первых DOOM или Wolfenstein, а сейчас так же популярен в играх, имеющих отношение к киберспорту, например CS: GO и серия Call Of Duty.
Работает он крайне просто : по нажатию кнопки из дула оружия выпускается луч в направлении прицеливания, проигрывается звук, эффект огня близ дула и иногда выпрыгивание гильзы из патронника. Поражая стену - остается небольшая текстура дырки, а при попадании в коллайдер игрока ему мгновенно наносится урон.
Интересно здесь то, что самой пули как объекта в игре нет. Всё потому что игроку не суждено её увидеть. Попадающий в игрока луч несет информацию о количестве урона, останавливающей силы и в некоторых случаях что либо еще, например дебаффы в Overwatch или огневую мощь, позволяющую осуществить "прострел" объекта.
Из-за специфики мгновенного попадания расчеты сводятся к минимуму, что крайне позитивно сказывается на четкости работы в реалиях сетевой игры, а небольшие, как правило, локации, не уменьшают реализм стрельбы.
С такой методикой сложно реализовать толковую систему разрушений. Полагаю вы видели, как бездушно падают какие-нибудь досочки или рушится вентиляция в Counter Strike, всё потому что луч просто активирует гравитацию, не придавая сил для направленного полета.
Физика и баллистика
Лук тоже умеет стрелять, но стрела его летит на скоростях далеких от пуль, поэтому был создан реалистичный метод стрельбы с использованием гравитации и физических столкновений.
Идея прижилась и в некоторых шутерах, таких как Battlefield, PUBG и Sniper Elite например.
На огромных полях сражений снаряды обязаны иметь баллистику, во имя баланса и более комфортного игрового опыта.
В современных движках не составляет труда создать такую систему, достаточно лишь добавить пуле коллайдер (физические границы) и компонент физики, в котором точечно настраивается масса.
Не составит труда так же задать угасание мощи выстрела, определив скорость пули и помножив на определенную переменную.
Количество передаваемой серверу информации кратно возрастает, однако и рассчитывается физика лишь у вас и на сервере, причем на пару кадров вперед.
Из-за такой реалистичной модели поведения редки, но возможны случаи смерти двух участников дуэли с разрывом в доли секунды.
Гибридная система
Разнообразные на виды оружия игры, взяли на вооружение гибридный метод механики стрельбы.
Такая система используется в Fortnite и Overwatch. Последняя к слову имеет среди персонажей любителей как автоматов и револьверов, так и лучников с ниндзя, искусно метающих сюрикены во всё что движется.
Таким образом любители милитаризма при нажатии на спусковой крючок получают результат мгновенно, а любителям натягивать тетиву и вести стрельбу на дальние дистанции приходится мириться с баллистикой и другими правилами игровой физики.
Как работает
Разрушаемость в играх
Симуляция ткани
Процедурная анимация