О математике в геймдеве: пара мыслей + разбор задачки

В университете меня грузили кучей математики: матан, линал, ангем, теорвер, дисмат, комбинаторика, теория игр..

И у большинства моих одногруппников возникал стандартный вопрос: а надо ли оно нам?


Прошло.. мм.. 7 лет, я работаю геймдизайнером.

И почти на каждом собеседовании или в тестовом задании меня спрашивают про математику.


Вот пример задачи, которую меня попросили решить недавно:


В пошаговом бою сражаются Голиаф и Давиды.
У Голиафа 1000 очков здоровья, за один раунд он может ударить одного Давида и нанести 1 единицу урона.
У каждого Давида 1 очко здоровья, и за раунд каждый из них может нанести 1 единицу урона Голиафу.
Какое минимальное число Давидов, Х, необходимо для того, чтобы победить Голиафа?


В комментариях я скину решение, но не лишайте себя удовольствия дойти до ответа самостоятельно)


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

Я не буду называть размер ЗП по той вакансии, для которой эта задача давалась :)

Но, в общем, не мало - для задачи, которую может решить 9-классник.


У меня есть много знакомых геймдизайнеров, и ещё больше - программистов.

Казалось бы, куда без математики?

Однако, на поверку оказывается, что её.. никто не использует.

Все, конечно, при случае могут поумничать на брейнштормах, но по факту: Гугл, Эксель и способность быстро разобраться в незнакомой или забытой теме.


Расчёт физического движка? Написание шейдеров? Внутриигровая экономика?

В реальности всё сильно проще)


Жалею ли я, что слакал на вышмате в ВУЗе? Да, пожалуй.

Повлияло ли это значительно на мою работу? Да не особо.


Надеюсь, кому-нибудь это было интересно)

Лига Разработчиков Видеоигр

6.6K постов22.1K подписчиков

Добавить пост

Правила сообщества

ОБЩИЕ ПРАВИЛА:

- Уважайте чужой труд и используйте конструктивную критику

- Не занимайтесь саморекламой, пишите качественные и интересные посты

- Никакой политики


СТОИТ ПУБЛИКОВАТЬ:

- Посты о Вашей игре с историей её разработки и описанием полученного опыта

- Обучающие материалы, туториалы

- Интервью с опытными разработчиками

- Анонсы бесплатных мероприятий для разработчиков и истории их посещения;
- Ваши работы, если Вы художник/композитор и хотите поделиться ими на безвозмездной основе

НЕ СТОИТ ПУБЛИКОВАТЬ:

- Посты, содержащие только вопрос или просьбу помочь
- Посты, содержащие только идею игры

- Посты, единственная цель которых - набор команды для разработки игры

- Посты, не относящиеся к тематике сообщества

Подобные посты по решению администрации могут быть перемещены из сообщества в общую ленту.

ЗАПРЕЩЕНО:

- Публиковать бессодержательные посты с рекламой Вашего проекта (см. следующий пункт), а также все прочие посты, содержащие рекламу/рекламные интеграции

- Выдавать чужой труд за свой

Подобные посты будут перемещены из сообщества в общую ленту, а их авторы по решению администрации могут быть внесены в игнор-лист сообщества.


О РАЗМЕЩЕНИИ ССЫЛОК:

Ссылка на сторонний ресурс, связанный с игрой, допускается только при следующих условиях:

- Пост должен быть содержательным и интересным для пользователей, нести пользу для сообщества

- Ссылка должна размещаться непосредственно в начале или конце поста и только один раз

- Cсылка размещается в формате: "Страница игры в Steam: URL"

5
Автор поста оценил этот комментарий

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

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

Как раз изучение математики и тренирует эти возможности.

раскрыть ветку
1
Автор поста оценил этот комментарий

Помню в Game Maker делал свои танчики, и захотел сделать, чтобы башня поворачивалась со строго определенной скорость по наименьшей дуге за мышкой. И столкнулся с тем, что переменные объектов отвечающие за угол поворота (sprite_angle) спрайта (и направления движения объекта; direction) всегда меньше чем 360. Сидел, додумывался до формулы, т.к. как вбивать в гугол не знаю и по сей день.


Кому интересно вот условия:


Красный пунктир - 0 градусов

0 градусов + 45 = 45 градусов

0 градусов - 45 = 315 градусов

Вам всегда известна позиция башни (x,y) и позиция курсора (x,y)


Задача:

Найти формулу, которая по исходным данным позиции башни и позиции курсора выдает:

-1, если башня будет смотреть в точку курсора быстрее, при вращении против часовой стрелки

1, если башня будет смотреть в точку курсора быстрее, при вращении по часовой стрелки

Нельзя использовать ветвления.


Hint: В формуле фигурировал косинус.


p/s/ Ответ давно покоится в мире погибших хардов.

Иллюстрация к комментарию
раскрыть ветку