Где употреблять школьные знания математики

Автор: Вадим Скумбриев

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

Итак, погнали.

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

Базовые тригонометрические функции. Если кто вдруг не в курсе - это синус, косинус, тангес и котангенс. В общем-то проще сказать, где они НЕ используются, но один из самых банальных примеров - круговое движение. Для него существуют полярные координаты, но в основе игры обычно лежат всё-таки прямоугольные, и задавать положение приходится по ним. Допустим, я хочу, чтобы вокруг моего персонажа летал светлячок, как это сделать? Очень просто: задать локальные координаты с центром (0,0) в точке нахождения персонажа, тогда координата X будет определяться косинусом текущего угла, а Y - синусом. Достаточно менять угол со временем, чтобы компьютер уже сам вычислял положение светлячка.

Теорема синусов

Стороны треугольника пропорциональны синусам противолежащих углов.

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

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

Аналитическая геометрия. В большинстве движков для связанных с ней функций есть математические библиотеки, но всё же: моя лазерная пушка лупит по врагу. Как определить, пересекает ли луч вражеский танчик? Для этого надо определить точку падения луча и посчитать, находится ли она в границах геометрической фигуры. Тривиальная задача.

Теория вероятностей. А как, вы думаете, рассчитывается игровой баланс? До него в Игре Мечты я ещё не дошёл, но всё впереди. 

Математическая статистика. Да, да, тоже баланс.

И это только вершина айсберга. Но дальше начинается более лютый матан, особенно в случае ММОРПГ, так что его, наверное, затрагивать я не буду.

+111
798

0 комментариев, по

2 257 1 926 430
Наверх Вниз