Книги по программированию игр, которые не учат программированию? [закрыто]

29

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

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

Лично мне все равно, какие платформы / языки / библиотеки используются в книгах, так как я чувствую себя комфортно во многих языках, но игра, в которую я смотрю, будет использовать Javascript и HTML5 canvas.

Какие-либо предложения? Любые, которые бесплатны?

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

РЕДАКТИРОВАТЬ: я должен упомянуть, что я заинтересован в 2D-программировании, и на данный момент я действительно не забочусь о 3D еще.

Майк
источник
1
Вы пробовали пролистывать страницы с вещами, которые вы уже знаете?
Ricket

Ответы:

11

Вы смотрели серию Gems для программирования игр ? Это может дать вам специфику, о которой вы, похоже, просите. На HTML5 / canvas не так много книг, так как они довольно новые, особенно те, которые говорят о программировании игр.

timfreilly
источник
9

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

Книги общего характера, которые я нашел полезными:

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

Одной интересной вещью для изучения может быть двигатель Monocle .


Редактировать :

Что касается математики, я тоже немного шатался на своих основах. Хороший ресурс для этих общих предметных областей - Ханская Академия .

Для других бесплатных вещей, просто просмотрите GameDev.net, и, возможно, статьи MSDN для XNA.

michael.bartnett
источник
6

Если вы уверены в объектно-ориентированном программировании, вы должны убедиться, что вы выбрали что-то, что охватывает компонентно-ориентированное проектирование. Это программный подход в ООП, который очень силен в разработке игр и стал стандартным подходом за последнее десятилетие.

Два ресурса, которые внесли огромный вклад в мое понимание ХПК:

Существует ответ на Stack Overflow, который содержит невероятный список ресурсов: разработка программного обеспечения на основе компонентов в игровой литературе .

Примечание: ХПК не используется исключительно при разработке игр. Вы можете найти ресурсы, которые объясняют ХПК в совершенно разных контекстах, которые совсем не обязательно помогут понять роль, которую они играют в играх (YMMV).

двойника
источник
6

Я добавлю к потоку названий здесь:

Game Engine Architecture от Jason Gregory (Naughty Dog) для общего обзора игрового движка на достаточно детальном уровне.

Обнаружение столкновений в режиме реального времени Кристером Эриксоном (Бог Войны) для всестороннего и всестороннего обзора систем обнаружения столкновений.

Рендеринг в режиме реального времени Томасом Моллером и Эриком Хейнсом для столь же углубленного анализа рендеринга.

user_123abc
источник
5

Я рекомендую Введение в программирование игр с DirectX 9.0c: подход шейдера от Frank Luna. Он также доступен для D3D10, если вам интересно. Книга предполагает базовые знания C ++, но не специфична для игры и не содержит COM, и начинается с различных математических основ, таких как векторы и матрицы, и довольно мягко направляет пользователя при настройке игр от базовых до промежуточных. Что примечательно, конечно, это то, что со временем все меняется - например, он не учит обучению аппаратному обеспечению или другим относительно новым оптимизациям .

Anna Lear
источник
Несмотря на значительные изменения между 9 и 10, я бы сейчас остановился на версии для DirectX 10.
Джон Робертсон