Как мы управляем космическим кораблем в играх?

SPACERIFT: Arcanum System Arcanum Team
SPACERIFT: Arcanum System Arcanum Team

Чистого космоса!

Меня зовут Федоров Илья. Я ведущий разработчик проекта SPACERIFT: Arcanum System,космической онлайн-песочницы, с открытым миром, строительством станций и космическими котами на приборной панели. Сегодня мы поговорим о том, какая физическая модель поведения космического корабля работает в большинстве игр жанра Sci-Fi, а также о некоторых сложностях, которые встают на пути у разработчиков игр подобного жанра.

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

Интересные решения от разработчиков

Физическая модель космического корабля в компьютерной игре чаще всего похожа, скорее, на самолёт, чем на корабль, пригодный для путешествий в открытом космосе. Мы не будем обсуждать дизайн. Сосредоточимся на том, как они летают. :-)

X3 Reunion Egosoft
X3 Reunion Egosoft

Здесь есть сразу несколько пунктов, которые вызывают наибольший процент вопросов игроков:

  • За счёт чего двигается корабль?

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

  • Почему нельзя лететь быстрее?

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

  • Для чего нужны постоянно работающие движки в космосе?

Один из моих любимых пунктов вытекает из предыдущего. Помимо того, что корабль в играх не может перемещаться в пространстве быстрее, чем навязанное ограничение скорости… У него еще и движки работают постоянно! Ну, а разве нет? Вспомните этот чудесный момент, когда вы колесом мыши устанавливаете скорость, на которой корабль должен лететь вперёд. Тут же появляется звук запуска двигателей, всё вибрирует и вы разгоняетесь до установленной скорости, а дальше… Типичная картина.

  • Свобода в маневрах.

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

Игровые условности. Дизайнерские решения. “Так просто лучше, и всё на этом”

Я занимаюсь разработкой игр уже более восьми лет. Сейчас мы работаем уже над вторым проектом в sci-fi жанре, и, как разработчик, я очень много времени потратил на то, чтобы в новом проекте решить все головоломки, которые были описаны выше. Да, если речь идет о разработке такой игры, то перечисленные пункты выше - это действительно одна большая проблема, которая включает в себя множество мелочей. Давайте попробуем разобраться, что из этого - наибольшая проблема, а после - выясним, какие условности действительно необходимы, а какие из них - просто лень разработчиков сделать игру, похожую на реальность будущего.

За счёт чего двигается корабль.

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

Ограничитель скорости. Серьезная проблема!

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

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

Здесь я просто перечислю причины, которые на мой взгляд являются главной проблемой ограничения скорости:

  • Мир игры всегда имеет границы. Ограничивая скорость движения игроку, мы создаем для него иллюзию, что игровой мир действительно бескрайний. А получив игровую механику в виде резкого форсажа или ВАРП-а, игрок получит удовольствие от быстрого преодоления расстояния, и еще раз убедится в том, что расстояние - огромное.
  • Сложность управления. Чтобы быстро летать, необходимо уметь заранее тормозить. Игрок, зачастую, вообще не имеет представления о том, как происходит движение объектов в космосе (это действительно так, я часто удивляюсь тому, как люди недоумевают от того, что в нашем Spacerift корабль отключает движки, когда набирает необходимую скорость). Поэтому, дать игроку полную свободу в наборе скорости - всё равно, что дать младенцу сесть за руль. При таком раскладе игрок быстро забросит игру, т.к. она “сложная”.
  • Космические бои. Отбросим все условности о том, как именно стреляют пушки в играх, сосредоточимся только на теме движения. Невозможно себе представить, как можно попасть по вражескому кораблю, который отдаляется от Вас на тысячу километров меньше, чем за 0.1 секунды.
  • Косвенно всё это может мотивировать игрока прокачивать корабль. Ограничение всегда хочется снять, и разработчик даёт игроку такую возможность. Всегда можно купить новый корабль или прокачать двигатель, чтобы увеличить максимальное ограничение скорости.

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

Постоянно работающие двигатели в космосе. Зачем?

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

Свобода в маневрах.

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

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

Заключение

В свет появляется не большое количество новых sci-fi игр. Но каждая из них является по своему уникальной. Стоит помнить о том, что космос - лишь условный игровой мир, в который встроено огромное количество разнообразных и интересных механик.

Когда мы говорим о физике корабля в космическом игровом мире, не стоит забывать, что необходимо сделать это максимально понятным и простым элементом для рядового игрока. В игры играют люди разных возрастов, и далеко не все из них защитили диссертацию по физике.

SPACERIFT: Arcanum System Arcanum Team
SPACERIFT: Arcanum System Arcanum Team

В SPACERIFT: Arcanum System, релиз которого запланирован на осень 2020 года, многие описанные здесь механики реализованы. Физическая модель корабля включает в себя около 20 маневровых двигателей на каждом из кораблей, которые не только дают визуальный эффект, но и выполняют свою важную функцию. В игре есть механика операционной системы корабля, в которой можно детально настроить опции навигационной системы, и одна из них - стабилизатор инерции корабля. Это автоматическая корректировка импульса корабля таким образом, чтобы корабль придерживался поведения, более близкого к самолёту. Отключив эти опции, игрок получает полностью ручное управление кораблем, возможность двигаться и вращаться в любую сторону. Дал импульс задними двигателями - будь добр, тормози передними. Такая игровая механика сделает любую рядовую задачу, вроде стыковки со станцией - настоящим челенджем для игрока.

Всем спасибо за внимание. Буду рад, если вы поддержите дискуссию в комментариях.

4646
88 комментариев

Как-как, да вот так:

10

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

3

Весьма спорное высказывание. Забить на экономию топлива в условиях инертного космоса - тем самым рискнув навечно остаться летящим в небытие... Такая себе перспектива.
Не выключать двигатели потому что много топлива? То есть бесконечно ускоряться?

9

Но ведь разговор идет про Физику в космосе.....

2

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

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

Сравнение с автомобилем тут абсолютно неуместное.

И если "втопить по прямой", то половину пути мы будем ускоряться, а вторую должны тормозить. Для этого нам нужен или разворот на 180 или двигла такой же мощности на носу корабля. 

Это будет мягко говоря не похоже на симпатичные стереотипные перелеты из "Звездных войн"