Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
С чего начать? С практики.
Во фреймворках или движках без прямого управления OpenGL/DirectX, нет никакой сложной математики. Для простого платформера не нужно ничего сложнее AABB-коллизии, для которой достаточно математики уровня восьмого класса, и небольшого рисования на бумажке.
и тетрисы математика и вовсе не нужнаВекторная алгебра нужна как минимум. Жизнь упрощает конкретно.
Ваше предложение это замечательный способ потерять всякий интерес к областиЕсли не хотят с математикой разбираться все равно его потеряют столкнувшись с первой же задачей в одно действие. А так будут уже более менее в курсе что понадобится.
Впрочем, если есть прям любовь к математике, то можно начать и с неё, разумеется.
Векторная алгебра изучается сама собой, наитием или чтением статей, плюс в статье я описал основные разделы математики, на которые стоит посмотреть.
Другое дело что начинать с этого — не нужно, этим нужно продолжать, но начинать не стоит, если нет любви к математике.
Взаимное расположение?А теперь по наитию найдите угол визирования этого объекта 2 из объекта 1 (это относительно курса объекта один). Еще ни одного после таких наитий не видел чтобы вообще нашел. А задачка то банально по одному скалярному умножению на ось требует и арктангенса.
Где на самом деле может пригодиться именно высшая математика, так это, например, в построении математической гравитационной модели солнечной системы Мы не строим самолёт или прибор, от которого зависят жизни, нам достаточно сильно упрощённых моделей, которые могут подглюкивать в граничных случаях, но в основном ведут себя хорошо.
Но это не станок, если начинающий разработчик начнёт строить станки, ему разумеется придётся углубляться.
Это простая задача, сложное преследование как в боевых ракетах, в подавляющем числе случаев, не нужно и даже вредно
Вы многократно усложняете простые задачи, с игровой формы до «реальной».На самом деле упрощаю до реальной. Теория автоматического упраления нужна чтобы упрощать построение автоматики а не чтобы усложнять. Но для того чтобы понять оную ТАУ нужны дифференциальное, интегральное и тензорное счисления.
в облёт препятствий и дружественных целей,Ну вот это для игры можно то и не делать. А пропорциональная навигация упростит жизнь абсолютно во всех автопилотах.
Ну вот это для игры можно то и не делать.
Вы понимаете, что ваши кейсы настолько частные, что шанс на такое напороться мизерен?Настолько мизерен что вся навигация по навпоинтам именно так и работает — на пид-регуляции. А все остальное это надстройка, последовательно задающая таргеты регуляции. И использование такого навигатора по навпоинтам на нижнем уровне автопилота упрощает жизнь в любых автопилотах, хоть в системе облета препятсвий в реальной ракете, хоть в игровом автопилоте, с той лишь разницей у игрового вопросы определения положения других объектов в пространстве элементарно решаемы при помощи аналитической геометрии, в отличии от реального где для этого действительно нужны сложнейшие системы локации, фильтрации сигнала и т.д.
а потом оно разрослось до дипломной работы.
В играх это не нужно.Весь 2D огонь работает именно на этом. Тот который рендерится в максах для текстур — на счете по наукам по такой схеме. 3D огонь на партиклах тоже работает именно на этом только на счете схемы по подходу Лагранжа а не Эйлера
Вы выкатили пушку для стрельбы по воробушкам.

и им занимаются дизайнеры а не программисты
В играх это не нужно.Вы вообще в курсе что вся и графика и моделирование физики на оных науках живет и всегда жило и не только жило но и оные науки двигало?
И судя по вашим словам, у вас огромный перекос, пользуясь вашими методиками, человек не то что ничего не закончит,
но и не начнёт ни один проект, потому что у его голова уже до краёв заполнена алгоритмами и теориейО каком проекте может идти вообще речь пока нет навыков декомпозиции? Пока не освоит хотя бы процедурное программирование, пытаться решать задачи код которых не укладываются в классический экран (это который 25 строк) — вредно. Т.е. таки табуляция, численное интегрирование и т.д. штуки которые позволяют освоить базовые структуры управления выполнением, и буквально за месяц будет и декомпозиция. Все программисты через это прошли во всем мире. Те кто не прошли программистами так и не стали.
Программисты, не проходившие вузовский курс ТАУ, а то и вовсе без высшего образования, притом в их компетенции и способности реализовать разные сложные штуки не приходится сомневаться.Покажите хоть одну более менее сложную штуку где то кроме авиасимов и т.д. которые ни разу не люди без образования делали. Знаете почему весь западный игросторой очень долго крутился вокруг коридорных шутеров и стратежек? Именно потому что там есть только то что может осилить такой горе-разраб на готовом движке. С опенворлдом у них до сих пор примитивщина в плане модели мира. У них там в геймдеве (не путать с движкостроительством там как раз бакалавров за людей не считают) действительно тяжко с людьми с в/о, хайтеч всех раскупает еще в универе. И именно это приводит к тому что индустрия вот-вот схлопнется. Недовольство игроков вызывает то что движковая часть (графоний и физоний) круть, а гемплей все примитивней и примитивней. Это и есть результат заблуждений что типа движок типа кирпичики с ними кто угодно сможет и без знаний. А на самом деле то хорошо сделанный движок может сильно поднять продуктивность профессионала который знает что и как нужно делать самому, а что и как ему может сделать движок. Неучу же он только доставит кучу головняка и вместо нормальной разработки будет очень долгое обкостыливание простейших действий огромной толпой оных псевдодешевых разрабов (хотя так понимаю был бы у них выбор с радостью перекупили бы в хайтече, только вот у хайтеча резерв поднятия з/п выше крыши, а геймдев-конторы в этом плане очень сильно ограничены).
Знаете почему весь западный игросторой очень долго крутился вокруг коридорных шутеров и стратежек? Именно потому что там есть только то что может осилить такой горе-разраб на готовом движке

Именно потому что там есть только то что может осилить такой горе-разраб на готовом движкеВы похоже не совсем правильно поняли «на готовом движке». Я не против использования толково сделанных готовых движков. Я о том что это инструмент для профи с сответсвующим образованием, позволяющий сильно повысить продуктивность. Т.е. система полученная в результате декомпозиции задачи, инструмент позволяющий решать гораздо более сложные задачи, а не какое не средство типа снижающее порог вхождения до нуля и т.д.
А вот сейчас обидно былоА касательно товарища Кармака — то он таки сначала закончил два курса универа, именно на которых вся эта подготовительная для изучения специальности математика и изучается, а уже используя ее и сделал революцию в геймдеве. Т.е. только подтверждает тот факт что выше уровня 8-битны «денди» без серьезного изучения математики не подняться.
Ох, вам сейчас ответит множество программистов, которые стали таковыми без окончания «прикладной математики и вычислительной техники».
Я сам окончил матобеспечение
и прекрасно знаю, что из этого реально используется в играх, а что нет, и с какой частотойНу у меня ученик к примеру все это использует для скриптинга того же SAMP. Примерно с год по векторной алгебре и чуток по пропорциональной навигации поднатаскивал ну в принципе почитай тот то учебник если что объясню. А начиналось все с того что смотрел он на от эту или подобную статейку которую вы показали как баран на новые ворота когда на PAWN скрипты под оный SAMP писал а ниче путнего не получалось. Ну с учебниками ознакомился по линейной алгебре и потом с Роджерсом по вычислительной геометрии так редактор мира слепил быстренько. Потом на каникулах подзаработать решил этим летом. Сайт сверстать для одного SAMP-проекта подрядился. Ну типа сказали ему может скриптером потом возьмем.Ну сайт он доверстал показал там хозяину этот редактор а тут с сервом проблемы какие то со скриптами начались. Ну в общем результат — пятерых скриптеров которые все это не использовали уволили, его вместо них взяли. Проект в котором у них было порядка 150 тыс строк который они три года мурыжили он уже переделал с нуля. С нуля это вместо скрипта плагин который напрямую с апи сервера работает функционал уже серьезно превосходит то что там было. Размер кода на плюсах у него подбирается к 5 тыс строк. У них там щас пусконаладка как раз. И следующий заказ от того же заказчика у него есть — в этот раз клиента с движком с нуля для оного SAMP. Это хлопец сейчас в 9-ом классе.
Всё очень просто, никакой математики сложнее ПифагораНу сложнее теоремы Пифагора в математике вообще ничего нет. Вы надеюсь понимаете что без серьезного изучения математики выше вот этого примитивзма никогда не поднимутся? И ООП без понимания модели акторов только граблями по лбу бьет. А им уже в голову вбито математика не нужна типа.
Получать вышку чтобы изучить векторы не нужно, поиска информации достаточно.По этим поискам если и понимает что то то это разрозненная информация по принципу здесь играем здесь не играем здесь рыбу заворачивали. Вектор это один из математических объектов изучаемой линейной алгеброй. И никакого нормального их применения не обладая целостными знаниями в этом вопросе не возможно.
Статья совершенно о других вещах.
А здесь поговорить о немного других вещах. Более простых и приземлённых. Как вам такое предложение?Ну вот и я о том что начинать надо с простых приземленных вещей, а не сразу лезть в дебри api которые подразумевают знание чего и как там под капотом. Знаете по какой причине в универе изучение графики начинается не с пользования какими то либ а с лаб, набор которых в результате дает полноценный графический конвейер (ну софтверный аналог Direct3D/OpenGL)? Именно потому что после этого все вопросы «а че это и с чем это едят?» в плане любого графического api сразу отпадают. Остаются только вопросы как называется функция которая делает вот это или вот это, ответы на которые моментально находятся в референсе.
Из своего личного опыта могу сообщить следующее — гораздо интереснее изучать многие базовые аспекты алгебры, имея возможность немедленного их практического применения.Вот в том то и дело — целенаправленное систематическое изучение сразу же подкрепляемое лабой а в общем всего курса курсачем в тему, как это делается в универе. При этом еще и матан параллельно точно так же. Как ни крути но касательно анимации те же векторы как инструмент именно интегрирования дифуров используется.
Ни о каких лабах и курсачах здесь и речи нет.
Но смысл этой статьи в том, что при помощи интереса к игрострою можно развить интерес к математике и другим сложным вещам.Таким способом скорее убить чем развить. Потому что вместо целостного комплекта инструментов, позволяющего не решать сложные задачи, дается направление погуглить что то что понять нереально без оного инструмента. Все это просто попытки прыгнуть выше головы которые никогда ни к чему хорошему не приводили. К примеру какое может быть вообще ООП пока не освоено в достаточной мере процедурное программирование?
Что немаловажно, во всех этих штуках кода, как такового, не сильно и много, вполне по силам разобраться семикласснику.
Ну вот суть высшей математики как раз в том чтобы разложить задачу на элементарные операции.
Это совершенно непосильная задача — запустить код на выполнение, посмотреть на результат визуализации, модифицировать, запустить ещё раз, погуглить непонятное, спросить в чятике.
А что вы делаете, в случае если какая-то система ведёт себя не так как задокументировано?
У вас бывали такие случаи?
Вы когда-нибудь писали что-то, что потом работало в «боевых условиях»Ну чтоб прям в боевых нет. А в условиях промышленного производства так вертелся от запуска и до включения электропитания (сбои по питанию там иногда бывают. Примерно раз в 5 лет.).
… Вместо того чтобы изучать математику необходимую для понимания докуметнации
Ну чтоб прям в боевых нет. А в условиях промышленного производства так вертелся от запуска и до включения электропитания (сбои по питанию там иногда бывают. Примерно раз в 5 лет.).
Я всё понял, вы никогда не разрабатывали ничего сложного
Мелкие штуки очень легко натянуть на матмодель.А что то более сложное чем мелкие штуки без матмодели вообще нереально разработать.
И с наводящимися ракетами, и с углами видимости, и с процедурно генерируемым огнём, и со всем остальным.
В вашей жизни не хватает практики, подавляет теоретизирование без ощутимого результата.
Памятка начинающему разработчику компьютерных игр