Подтвердить что ты не робот

Математика и игровое программирование

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

Есть ли какие-нибудь хорошие ресурсы для парня с ограниченным вниманием (скажем, 20 минут на предмет, который мне очень интересен), чтобы постепенно узнать, как сделать что-то более полезное с математикой в ​​программировании?

4b9b3361

Ответ 1

Вам нужно быть компетентным в Trigonometry: Wikipedia и Mathworld

Даже если вы не хотите делать 3D-программирование, в 2D-играх также используются векторы и матрицы. (из линейной алгебры)

Ресурсы линейной алгебры: Wikepedia и Mathworld

Один момент, который сэкономит вам много сил при программировании Trig, осознает необходимость функции atan2(), а не atan(). Это важно при определении направления между двумя точками.

Возможность перемещения между различными системами координат является большим плюсом. Это придет с опытом. Две общие вещи, которые вызывают людей:

a) Большинство систем экрана помещают начало (0,0) в верхний левый угол, при этом положительная ось x проходит вправо, а положительная ось y - вниз. Стандартные декартовы координаты предполагают начало квадранта 1 (где x и y всегда положительные или нулевые) в левом нижнем углу. Это требует от программиста "перевернуть" ориентацию y на определенном этапе.

b) Типичная география помещает 0 градусов как север, а положительные градусы - по часовой стрелке. Все функции Trig располагают 0 градусов как восток с положительными градусами, проходящими против часовой стрелки.

Наконец, хотя мы склонны думать в градусах, настоящие библиотеки будут использовать радианы. Лучшая практика заключается в том, чтобы хранить углы как радианы (в ориентации "математика", а не "гео" ) и конвертировать вещи при отображении информации отладки.

Ответ 3

В GameDev.net есть раздел статей по математике и физике. Стоит быстро просмотреть, связано ли что-то с тем, что вы пытаетесь сделать.

http://www.gamedev.net/reference/list.asp?categoryid=28

Ответ 4

Если вы живете в США, как насчет регистрации в местном колледже, чтобы принять те математические классы, которые вы пропустили? Они будут располагать ресурсами, чтобы помочь учащимся, которые нуждаются в классах коррекционных навыков, и могут иметь инвалидность обучения. У вас есть стимул к обучению, и вы теперь осознаете ценность образования. Там нет стыда в желании учиться. Обратитесь к академическому советнику, и они помогут вам. Пойдите для этого.

Ответ 5

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

И для этого я нашел этот Math-канал: https://www.youtube.com/user/patrickJMT

также: https://www.youtube.com/playlist?list=PL233FC7AA6FE11E0E

Ответ 6

Я должен не согласиться с рекомендацией физики для разработчиков игр.

Я нашел эту книгу довольно скучной, и я бы не назвал свое собственное внимание таким коротким.

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

Я просто запускаю google/wikipedia и начинаю подпрыгивать вокруг сети, впитывая случайные вещи, и когда ваш ограниченный охват внимания становится мучительным, снова отскакивайте.

Взятие этой книги, вероятно, не приведет вас к вам и не вдохновит вас.

Ответ 7

Если вы хотите использовать общий математический сайт, я бы рекомендовал planetmath.org. Статьи там, как правило, имеют более высокий стандарт, чем wikipedia (что по моему опыту может быть совершенно ужасно, когда дело доходит до математики) и более удобны для пользователя, чем mathworld. Mathworld хорош, если вы математик и нуждаетесь в полном правильном определении некоторого термина, но для повседневного использования он имеет тенденцию быть далеко не теоретическим и тупым.

Ответ 8

Вы можете начать с изучения Обработка!

Затем перейдите к этой удивительной книге Даниэля Шиффмана под названием "" Природа кода". Книга также доступна онлайн с интерактивными примерами, написанными на сайте Processing.js

http://natureofcode.com/book/

Книга охватывает

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

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

Он также написал книгу, чтобы научить вас основам Обучающая обработка

http://www.learningprocessing.com/

В этой книге рассказывается история. Это история освобождения, взятия первые шаги к пониманию основ вычислительной техники, написания собственного кода и создания собственных медиа без связей существующих программных средств. Эта история не предназначена для компьютера ученых и инженеров. Эта история для вас.

Ответ 9

Странно я нашел много полезного материала в линейной алгебре в Википедии: http://en.wikipedia.org/wiki/Portal:Mathematics

Как правило, это не лучший источник знаний, но математика там нормально.

Ответ 10

Я рекомендую ресурсы Вольфрама: http://mathworld.wolfram.com

Они толстые, но я не знаю лучшего онлайн-ресурса.

Ответ 11

Возможно, вы захотите проверить любой текст OReilly по этой теме. У них есть хорошие примеры, с которыми вы можете справиться. Это даст вам лучшее представление о том, подходит ли вам программирование. Если вы хотите попасть в игровое программирование, лучший способ - фактически начать игровое программирование. Просто займитесь этим и найдите ответы на вопросы (ссылки в других ответах здесь) по мере их возникновения.