То, что мы привыкли видеть на экране не что иное, как графическая составляющая. Как правило, в 3D играх поверхности составляются полигонами – мелкими объектами, которые просто смоделировать. С помощью них создаётся физическая модель различных тел, создаются игровые законы (скорость, гравитация, прыжок и т.п.). Именно эти модели и законы позволяют нашим персонажам не проходить сквозь пол или стены, взаимодействовать с окружающим миром, передвигаться по локациям.
Математика кроется во взаимодействии, видов взаимодействий очень много, и чем сложнее взаимодействие, тем сложнее формулы. Рассмотрим простейшие случаи: Всем известная 2D игра Марио, все действия в ней происходят с помощью сложения векторов. Чтобы сложить вектора, нам надо просто сложить каждую их составляющую друг с другом. Например:
(1, 7, 3) + (3, -2, 5) = (1+3, 7-2, 3+5) = (4, 5, 8).
Для чего понадобилось складывать вектора? Чаще всего сложение векторов в играх используется для физического взаимодействия с объектом. Каждый предмет в игре имеет свой вектор (координаты) для местоположения, скорости и ускорения. Для любого фрейма (равного 1/60 секунды), мы должны сложить несколько векторов: прибавить скорость к координате и ускорение к скорости. Давайте рассмотрим пример с прыжками Марио. Начальная позиция равна (0, 0). В момент начала прыжка его скорость (1, 3), он быстро начинает двигаться вверх и вправо по координатной плоскости. Его ускорение равно (0, -1), из-за того, что в игре присутствует сила притяжения, которая тянет его вниз. На рисунке изображен его прыжок, который для наглядности, проходит в 8 кадров. В скобках указана его скорость изменения координат в каждом кадре.
Рис 1. Схема движения Марио. |
Проделаем те же действия для второго кадра. Добавляем измененную скорость (1, 2) к предыдущему местоположению (1, 3) и получаем координаты (2, 5). Затем добавляем ускорение (0, -1) к его измененной скорости (1,2), получаем новую скорость (1,1). Как правило, игрок контролирует игровой процесс с помощью клавиатуры или джойстика, а игра, в свою очередь, рассчитывает новые значения для скорости и местоположения, используя сложение векторов.
Чем проще игра, тем легче её математическая составляющая, и совершенно ясно, что в современных 3D играх, в которых разрушаемость ландшафта уже обязательное условие, математика сложнее на много порядков.
Список литературы:
Использование векторов в экономике/ В.Б. Светличная, Т.А. Матвеева, С.А. Зотова, М.А.Телегина // Студенческий научный форум – 2017: докл. IX междунар. студенч. электрон. науч. конф. РАЕ. - Москва, 2017.
Математическая модель в расчётах траектории движения искусственного спутника Земли / И.А. Иванушкин, Т.А. Матвеева, В.Б. Светличная, С.А. Зотова // Студенческий научный форум – 2017: докл. IX междунар. студенч. электрон. науч. конф. / РАЕ. - Москва, 2017.