Математика в разработке игр: как используется и что почитать по теме

3
13964

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


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

Математика – это всё, когда дело доходит до разработки игр. Начиная от возможности рассчитать траекторию птицы в Angry Birds до возможности удостовериться, что персонаж может прыгнуть и приземлиться обратно на землю. Без математики игры просто бы не работали.

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

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

Математика – это мука в торте, который игровые разработчики называют конечным продуктом.

Математика используется в каждом из аспектов разработки игры. Maya – программа, которая записывает все вершины, нормали моделей в математической форме и позволяет разработчикам создавать целые миры или отдельных персонажей, чтобы те даже не задумывались о математике. Простыми словами, вы можете написать модель Годзиллы в блокноте и затем открыть её в программе.

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

Для наглядности, приведём несколько примеров:

PhysX

  • Волны красиво ударяются о края вашего корабля в Assassin’s Creed: Black Flag? Математика
  • Пули свистят, пролетая над вашей головой в Call Of Duty: Ghost? Математика
  • Эта красивая анимация в UI, которая, к тому же, генерируется процедурно? Математика
  • Соник может бежать, а Марио может прыгать? Математика
  • Дрифт на скорости 80 миль в час в Need For Speed? Математика
  • Скольжение вниз по горе на сноуборде в SSX? Математика
  • Ракета отрывается от Земли в Kerbal Space Program? Математика

Немного про прыжки Марио:

Когда Марио прыгает, он не просто прыгает по прямой линии, он описывает параболу своим прыжком. Ведь было бы странно, если бы он отрывался от земли, затем летел вперёд по прямой линии, а затем так же прямо опускался вниз. Это бы выглядело глупо и неправильно.

А Kerbal Space Program – вообще сплошная математика, так как там используется наиболее точная симуляция ньютоновской физики со всеми её законами. Без этого игра была бы казуальна и не была бы такой, какой её привыкли видеть.

Какие разделы математики используются в создании игр:

  • Алгебра
  • Дискретная математика
  • Тригонометрия
  • Математический анализ
  • Линейная алгебра
  • И многое другое…

Самые важные понятия для разработки игр с точки зрения математики:

  • Скалярное и векторное произведение
  • Векторы
  • Отражение, матрицы
  • Скалярные манипуляции
  • Косинус, синус, тангенс…

Всё вместе, как правило, используется в продвинутных играх AAA-уровня. Простые же игры обычно требуют меньше математики.

Как математика используется в программировании?

Vectors
Математикой в играх может называться просто сложение X и Y, манипулирование синусами, косинусами и т.д, однако в некоторых случаях над реализацией какого-либо правила в игре нужно подумать час-другой.

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

 

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

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

Некоторые вещи, которые полностью опираются на математику:

  • Симуляция жидкостей
  • Анимация
  • Алгоритмы
  • Архитектура игровых движков
  • Написание игровой логики
  • Аналитика и сбор данных
  • Расчёт кадров в секунду
  • Игровая физика
  • Графика/Шейдеры
  • Искуственный интеллект
  • Процедурная генерация
  • Рендеринг полигонов
  • И много другого…

И это лишь небольшой кусочек того, что требует от разработчика знание математики.

Также предлагаем вашему вниманию несколько книг по данной теме, если, конечно, английский для вас – не проблема:

Другие статьи по теме

Хочу делать игры. Как этому научиться?

Учебный план по освоению gamedev или с чего начать