Ресурсы для 2d игры физики

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

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

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

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

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

42
задан Erik Forbes 03 окт. '08 в 5:13
источник поделиться
8 ответов

Вот несколько ресурсов, которые я собрал несколько лет назад. Следует отметить интеграцию Verlet. Я также включаю ссылки на некоторые двигатели с открытым исходным кодом и коммерческой физикой, которые я нашел в то время. На этой теме есть статья stackoverflow: 2d физика игры?

Физические методы

Книги

  • "Развитие игровой физики" , Ян Миллингтон - мне принадлежит эта книга и очень рекомендую ее. Книга создает физический движок на С++ с нуля. Автор начинает с физики элементарных частиц, а затем добавляет "законы движения", ограничения, физику твердого тела и так далее. Он полностью документирует исходный код.

Физические двигатели

19
ответ дан mistrmark 03 окт. '08 в 10:20
источник поделиться
7
ответ дан David Koelle 03 окт. '08 в 6:47
источник поделиться

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

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

  • Кинематика/Динамика. Крис Хеккер написал отличный онлайн-ресурс, который шаг за шагом прошел через ответ на столкновение.

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

Удачи! Создание собственного моделирования физики - невероятно полезный опыт.

6
ответ дан epaik 11 марта '11 в 1:23
источник поделиться

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

Оригинальный ответ:

Что, не упоминается Box2D? Его проект с открытым исходным кодом сотрудника метели, имеет хорошее сообщество, и хорошо, отлично работает.

В моем (кратком) опыте с Box2D, интегрируя его с Torque Game Builder, я нашел API чистым в использовании, документация была понятной, она поддерживала все объекты физики, которые я ожидал (в частности, были суставы), а сообщество выглядело дружелюбным и активным (примерно в начале 2010 года).

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

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

3
ответ дан James 24 окт. '08 в 3:13
источник поделиться

Это отличный учебник, который демонстрирует концепции 2D-физики с использованием флеш-памяти и не относится к флэш-памяти. http://www.rodedev.com/tutorials/gamephysics/game_physics.swf

3
ответ дан angelo 14 окт. '08 в 23:44
источник поделиться

F # имеет функцию под названием Единицы измерения, которая делает анализ размеров для вас, предоставляя ошибки, если вы ошибаетесь. Например, если вы скажете:

let distance : float<meters> = gravity * 3.0<seconds>

Это даст ошибку компиляции, поскольку гравитация равна < метры/секунды ^ 2 > метров > . Кроме того, поскольку F # - это просто .NET, вы можете написать свой математический/физический код в библиотеке классов и ссылаться на него с вашего С#.

Я бы рекомендовал вам проверить эти сообщения в блоге для получения дополнительной информации:

2
ответ дан Chris Smith 03 окт. '08 в 20:54
источник поделиться

Это отличный ресурс для написания вашего первого движка. Он в 3D, но его очень легко преобразовать в 2D. Я знаю, по крайней мере, одну крупную компанию, которая следовала этому руководству для своего внутреннего движка, и я лично следовал его шагам для своего собственного движка. Он объясняет все основные понятия физики в spring/импульсной физике и показывает вам, как писать свой собственный intergrater.

1
ответ дан DavidG 18 окт. '08 в 20:33
источник поделиться

Журнал F #.NET опубликовал две статьи об этом:

0
ответ дан Jon Harrop 20 февр. '10 в 2:04
источник поделиться

Другие вопросы по меткам