Математика и программирование игр - PullRequest
16 голосов
/ 09 октября 2008

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

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

Ответы [ 11 ]

17 голосов
/ 09 октября 2008

Вы должны быть компетентны в тригонометрии: Википедия и Mathworld

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

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

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

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

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

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

Наконец, даже если мы склонны думать в градусах, реальные библиотеки будут использовать радианы. Рекомендуется хранить углы в радианах (в «математической» ориентации, а не в «гео») и преобразовывать объекты при отображении отладочной информации.

6 голосов
/ 09 октября 2008

Я сейчас прохожу через " Физика для разработчиков игр " Дэвида М. Бурга. Пока я бы порекомендовал это.

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

4 голосов
/ 09 октября 2008

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

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

2 голосов
/ 24 ноября 2012

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

И для этого я нашел этот математический канал: https://www.youtube.com/user/patrickJMT

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

2 голосов
/ 27 ноября 2008

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

1 голос
/ 27 марта 2013

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

Затем перейдите к этой удивительной книге Дэниела Шиффмана под названием " Природа кода ". Книга также доступна онлайн с интерактивными примерами, написанными на 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/

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

1 голос
/ 27 ноября 2008

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

1 голос
/ 09 октября 2008

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

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

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

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

Принятие этой книги, вероятно, не собирается всосать вас и вдохновлять.

0 голосов
/ 28 декабря 2010

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

0 голосов
/ 09 октября 2008

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...