Я хочу программировать графические 2D-игры более сложные, чем базовые 2D-игры, которые я уже знаю. Я не хочу заниматься 3D-программированием. Просто более сложные 2D вещи. Я бросил школу до того, как научился многому, поэтому ушел с достаточными знаниями алгебры, чтобы сбалансировать свою чековую книжку и заняться легким 2D декартовым программированием.
Есть ли какие-нибудь хорошие ресурсы для парня с ограниченным объемом внимания (скажем, по 20 минут на предмет, который мне очень интересен), чтобы постепенно научиться делать что-то более полезное с математикой в программировании?





Сейчас я просматриваю "Физика для разработчиков игр" Дэвида М. Бурга. Пока что рекомендую.
Он предоставляет математические концепции, лежащие в основе физики, которые можно легко применить в двумерной сфере, чтобы немного оживить ваши игры.
Как ни странно, в Википедии я нашел много полезного по линейной алгебре: http://en.wikipedia.org/wiki/Portal:Mat Mathematics
Как правило, это не лучший источник знаний, но математика там подойдет.
Вы должны быть компетентны в тригонометрии: Википедия и Mathworld
Даже если вы не хотите заниматься 3D-программированием, в 2D-играх также используются векторы и матрицы. (из линейной алгебры)
Ресурсы по линейной алгебре: Викпедия и Mathworld
Один момент, который сэкономит вам много усилий при программировании триггеров, - это осознание необходимости функции atan2 (), а не функции atan (). Это важно при определении направления между двумя точками.
Возможность перемещаться между различными системами координат - большой плюс. Это придет с опытом. Две общие вещи, которые сбивают с толку людей:
a) Большинство экранных систем помещают начало координат (0,0) в верхнем левом углу, при этом положительная ось x проходит вправо, а положительная ось y - вниз. Стандартные декартовы координаты предполагают начало квадранта 1 (где x и y всегда положительны или равны нулю) в нижнем левом углу. Это требует от программиста на каком-то этапе «перевернуть» ориентацию по оси y.
б) Типичное географическое положение: 0 градусов по северу и положительные градусы по часовой стрелке. Все триггерные функции помещают 0 градусов как восток с положительными градусами, вращающимися против часовой стрелки.
Наконец, хотя мы склонны мыслить градусами, настоящие библиотеки будут использовать радианы. Лучше всего хранить углы в радианах (в «математической» ориентации, а не в «гео») и преобразовывать значения при отображении отладочной информации.
Я рекомендую ресурсы Wolfram: http://mathworld.wolfram.com
Они толстые, но лучшего онлайн-ресурса я не знаю.
Я не согласен с рекомендацией Physics для разработчиков игр.
Мне эта книга показалась довольно скучной, и я бы не назвал свою концентрацию внимания который короткой.
Я бы сказал, что главное, в чем нужно хорошо разбираться, - это векторы, использование триггеров для управления ими, а затем поверх этого фундамента вы применяете любую физику, специфичную для вашего текущего проекта.
Я бы просто запустил гугл / википедию и начал бы подпрыгивать по сети, впитывая случайные вещи, а когда ваше ограниченное внимание начинает беспокоить, подпрыгивайте снова.
Принятие этой книги, вероятно, не увлечет вас и не вдохновит.
GameDev.net имеет раздел статей по математике и физике. Стоит быстро просмотреть, не связано ли что-нибудь с тем, что вы пытаетесь сделать.
Если вам нужен общий математический сайт, я бы порекомендовал planetmath.org. Статьи там, как правило, соответствуют более высоким стандартам, чем википедия (что, по моему опыту, может быть совершенно ужасным, когда дело доходит до математики), и более удобны для пользователя, чем mathworld. Mathworld хорош, если вы математик и нуждаетесь в полностью правильном определении какого-либо термина, но для повседневного использования оно, как правило, далеко от теоретического и тупого.
Если вы живете в США, как насчет того, чтобы поступить в местный общественный колледж, чтобы посещать те уроки математики, которые вы пропустили? У них будут ресурсы для помощи учащимся, которые нуждаются в занятиях по восстановлению навыков и могут иметь проблемы с обучением. У вас есть стимул учиться, и теперь вы понимаете ценность образования. Нет ничего постыдного в желании учиться. Обратитесь к научному консультанту, и он вам поможет. Действуй.
Вы можете проверить любой текст OReilly по этой теме. У них есть хорошие примеры, над которыми можно работать. Это даст вам лучшее представление о том, подходит ли вам программирование. Если вы хотите заняться программированием игр, лучше всего запустить программирование игр. Просто перейдите к нему и найдите ответы на вопросы (ссылки в других ответах здесь) по мере их возникновения.
Я очень верю, что обучение на основе серии видео - это самый быстрый из возможных способов обучения, то есть, если вы хотите быстро продвигаться в том, чему вы хотите научиться. Вы можете потратить много времени на чтение страницы, чтобы получить небольшую часть информации, которую видео может дать вам через минуту или две!
И для этого я нашел этот математический канал: https://www.youtube.com/user/patrickJMT
Также: https://www.youtube.com/playlist?list=PL233FC7AA6FE11E0E
Я смотрел видео на этом сайте и подумал, было бы здорово, если бы кто-нибудь мог указать, какие вещи используются в программировании игр! Так что ура!
В программировании игр используется много линейной алгебры, например векторы (и все, что с ними связано: проекции, единичные векторы, расстояние и т. д.), Плоскости (столкновения плоскостей с векторами и другими плоскостями), ядро, промежутки, подмножества, преобразования (МНОГО) , матрицы и т. д. Хороший источник линейной алгебры: tutorial.math.lamar.edu/Classes/Alg/Alg.aspx После этого вы можете перейти к серьезным трехмерным вещам.
Вы можете начать с изучения Обработка!
Затем перейдите к этой удивительной книге Дэниела Шиффмана под названием «Природа кода». Книга также доступна в Интернете с интерактивными примерами, написанными на Processing.js.
Обложки книги
1. VECTORS
2. FORCES
3. OSCILLATION
4. PARTICLE SYSTEMS
5. PHYSICS LIBRARIES
6. AUTONOMOUS AGENTS
7. CELLULAR AUTOMATA
8. FRACTALS
9. THE EVOLUTION OF CODE
10. NEURAL NETWORKS
Он также загрузил на Vimeo видеоролики, объясняющие концепции из каждой главы! http://vimeo.com/shiffman/videos/sort:date/format:detail
How can we capture the unpredictable evolutionary and emergent properties of nature in software? How can understanding the mathematical principles behind our physical world help us to create digital worlds? This book focuses on the programming strategies and techniques behind computer simulations of natural systems using Processing.
Он также написал книгу, чтобы научить вас основам Обработка обучения.
http://www.learningprocessing.com/
This book tells a story. It’s a story of liberation, of taking the first steps towards understanding the foundations of computing, writing your own code, and creating your own media without the bonds of existing software tools. This story is not reserved for computer scientists and engineers. This story is for you.
+1 за то, что бросил, ты самый крутой чувак в SO