Я обычный программист с опытом работы около 3 лет, который заинтересован в разработке игр. Проблема, с которой я сталкиваюсь, заключается в том, что, когда я смотрю на эти книги для начинающих, большинство из них обучают базовым навыкам программирования, и у меня не хватает терпения просматривать их или находить их стоящими. Но когда я смотрю на более продвинутые книги, они у меня над головой и опять бесполезны для меня. То, что я ищу, - это книги, которые объясняют мельчайшие детали игр, но на более разумном уровне.
Например, я хорошо знаком со всеми видами структуры данных (хэши, деревья, связанные списки) и со многими распространенными алгоритмами (сортировка, поиск), но я не знаю, как, скажем, эффективно реализовать обнаружение столкновений. У меня также есть опыт использования иностранных библиотек, поэтому я знаю, как использовать документацию для изучения API, поэтому мне также не нужна книга «Учимся использовать X».
Лично мне все равно, какие платформы / языки / библиотеки используются в книгах, так как я чувствую себя комфортно во многих языках, но игра, в которую я смотрю, будет использовать Javascript и HTML5 canvas.
Какие-либо предложения? Любые, которые бесплатны?
PS Я должен отметить, что мой уровень математики и физики относительно низок, и книга, которая мягко объединила эти вещи, была бы плюсом.
РЕДАКТИРОВАТЬ: я должен упомянуть, что я заинтересован в 2D-программировании, и на данный момент я действительно не забочусь о 3D еще.
Ответы:
Вы смотрели серию Gems для программирования игр ? Это может дать вам специфику, о которой вы, похоже, просите. На HTML5 / canvas не так много книг, так как они довольно новые, особенно те, которые говорят о программировании игр.
источник
Какой аспект игрового программирования вам интересен? Есть немало книг, в которых обсуждаются конкретные аспекты программирования игр. Начать и запустить игру не сложно, и любая игровая логика похожа на то, как вы управляете данными для любого другого приложения, возможно, немного больше озабочена скоростью выполнения. Впрочем, попасть в такие вещи, как графическое программирование, можно совсем по-другому. Начните с базового каркаса игры, затем сосредоточьтесь на одной области, которая вас интересует, например, на разработке надежной боевой системы, синхронизации анимации или шейдеров.
Книги общего характера, которые я нашел полезными:
Вы, вероятно, находитесь на той стадии, когда получите наибольшую информацию, просматривая различные учебные публикации для конкретных движков в Интернете. Есть также достаточно приличное количество игр с открытым исходным кодом, которые вы можете проверить.
Одной интересной вещью для изучения может быть двигатель Monocle .
Редактировать :
Что касается математики, я тоже немного шатался на своих основах. Хороший ресурс для этих общих предметных областей - Ханская Академия .
Для других бесплатных вещей, просто просмотрите GameDev.net, и, возможно, статьи MSDN для XNA.
источник
Если вы уверены в объектно-ориентированном программировании, вы должны убедиться, что вы выбрали что-то, что охватывает компонентно-ориентированное проектирование. Это программный подход в ООП, который очень силен в разработке игр и стал стандартным подходом за последнее десятилетие.
Два ресурса, которые внесли огромный вклад в мое понимание ХПК:
Существует ответ на Stack Overflow, который содержит невероятный список ресурсов: разработка программного обеспечения на основе компонентов в игровой литературе .
Примечание: ХПК не используется исключительно при разработке игр. Вы можете найти ресурсы, которые объясняют ХПК в совершенно разных контекстах, которые совсем не обязательно помогут понять роль, которую они играют в играх (YMMV).
источник
Я добавлю к потоку названий здесь:
Game Engine Architecture от Jason Gregory (Naughty Dog) для общего обзора игрового движка на достаточно детальном уровне.
Обнаружение столкновений в режиме реального времени Кристером Эриксоном (Бог Войны) для всестороннего и всестороннего обзора систем обнаружения столкновений.
Рендеринг в режиме реального времени Томасом Моллером и Эриком Хейнсом для столь же углубленного анализа рендеринга.
источник
Я рекомендую Введение в программирование игр с DirectX 9.0c: подход шейдера от Frank Luna. Он также доступен для D3D10, если вам интересно. Книга предполагает базовые знания C ++, но не специфична для игры и не содержит COM, и начинается с различных математических основ, таких как векторы и матрицы, и довольно мягко направляет пользователя при настройке игр от базовых до промежуточных. Что примечательно, конечно, это то, что со временем все меняется - например, он не учит обучению аппаратному обеспечению или другим относительно новым оптимизациям .
источник
Я только что нашел издателя с большим списком возможных книг: http://www.courseptr.com/Courses.aspx?MenuId=8&MenuSubId=0 - они являются издателями серии Game Programming Gems.
источник