Lovesuper
@Lovesuper
pyhon, java, swift программист

Есть ли книга (гайд) по введению в разработку 3D игр для бывалых в других сферах программистов?

Время от времени интересуюсь разработкой 3D игр. Точнее пытаюсь подойти к разработке. Знаю довольно много языков программирования (ФП в тч) и опыт неплохой (веб, мобилки, микроконтроллеры, системные утилиты). Как код писать знаю. Но вот проблема - не могу найти нормального входа в гейм-индустрию (чего всегда хотел). Любые ресурсы, которые нахожу, расчитаны на школо-нубасов, которые делают игру про мамку друга. Изучаем циклы, переменные... Хочется конкретного и обстоятельного введения. Что нужно? Куда смотреть? Что необходимо и из каких частей состоит простейшая 3d игра? Есть какой-то конкретный ман? Чтобы от начала и до конкретного результата без изучения языков. Если есть что-то на примете - подскажите, плз.
  • Вопрос задан
  • 2791 просмотр
Решения вопроса 5
Deerenaros
@Deerenaros
Программист, математик, задрот и даже чуть инженер
Товарищ, могу сказать как человек, который чего только не попробовал разрабатывая игру. Началось всё с чистого Си, был и C# (банальная формочка с кучей кнопочек), был и С++ (чистый opengl и box2d для физики), потом XNA - мощный фреймворк для C#, правда умер к сожалению. Был pygame, правда ничего дальше пары хэлоу ворлдов не продвинулось. Вот сейчас ковыряюсь в юнити. Нередко организуюсь с другом на хакатоны - надо заметить, что с каждым разом продвигаемся всё дальше и дальше. Правда каждый раз и начинаем заново.

В общем, заметил несколько вещей. Во-первых, нужен не программист, а скриптер, по рангу он недалеко ушёл от кодера. То есть он и есть кодер, с тем лишь отличием, что скриптует сцены. Ну и да, было бы не плохо обзавестись другим скриптером, который напишет текст. Сегодня, для разработки игр программисты нужны лишь для ААА-проектов, когда требуется сварганить целый фреймворк и почти с нуля сотворить движок, ну или адаптировать старый к новому железу, что по сути одно и то же. Во-вторых, надо вообще много всякой шпаны - художники, дизайнеры, тестеры, звуковики. В общем, полный набор требуется. Конечно, можно совмещать все должности в одной, но это обычно плохо кончается.
Алсо, выбрав путь не стоит с него сворачивать. Это я говорю как опытный сворачиватель с путей - код переписывать не стоит, иначе как только он более менее разрастётся только и будете, что переписывать. Рефакторинг тоже делать надо очень осторожно. Чем модульнее тем лучше. И так далее.

По поводу манов - их дофига. Разной степени упоротости. Например, есть такой неплохой движок, как OGRE, у него на странице куча ссылок на демки, вики, книги, доки. Но это скорее для любителей хардкора. Для любителей велосипедов есть openal + opengl, ну или sdl + opengl. По opengl тоже много литературы, очень много. К тому же есть Unity3D, но программистам с ним, имхо, делать особо нечего - лишь ограничивает, да и по удобству он далеко не самый лучший, а производительность - ужс какой-то, хотя в большинстве задач хватает с головой.

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

В любом случае, удачи в начинаниях!
Ответ написан
BasmanovDaniil
@BasmanovDaniil
Геймдизайнер-телепат
Книг вроде «Разработка игр для нечайников» нету, подразумевается, что продвинутые программисты будут либо читать мануалы к технологиям, которые они собираются использовать, либо исходники того проекта, к которому их подключили. Для начала, я бы посоветовал пробежаться по статьям в википедии, чтобы узнать некоторые термины и поднять эрудицию. Потом можете почитать Game Programming Patterns, в ней описаны некоторые частые проблемы и их каноничные решения. Кроме того, есть более хардкорные книжки, с узкоспециализированными темами, но их тоже может быть полезно полистать:
Graphics Gems
GPU Gems от nvidia
Game Programming Gems
А когда надоест читать, попробуйте сделать пару-тройку простых примитивных игр: платформер, стрелялку, гоночки. На практике учиться проще.
Ответ написан
Комментировать
AterCattus
@AterCattus
Люблю быстрый backend
Если рассматривать базовые подходы (софтварная растеризация, а не готовые фреймворки под GPU), то мне очень понравились в свое время:
Программирование трехмерных игр для Windows. А. Ламот.
Компьютерная графика. Полигональные модели. : Евге...
Компьютерная геометрия и алгоритмы машинной график...

Все книжки можно скачать, если негде купить/достать. У меня бумажные...
Ответ написан
Комментировать
В качестве ознакомления, можно почитать отличную статью:
habrahabr.ru/post/131931
Ответ написан
@yorick_kiev_ua
Мне в своё время вот эти книги понравились:

www.amazon.com/XNA-Game-Development-Example-Beginn...
www.amazon.com/XNA-4-0-Game-Development-Example/dp...

Очень понятное описание, что такое сцена, камера и так далее, и всё на примерах. Да, это всё на XNA, но принципы и база показаны отлично.

По Юнити ничего подобного как-то не попадалось, там в основном "мануалы" в стиле "как программировать мышкой". А жаль.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@mamkaololosha
Нету. 80% работы в геимдеве сводится к битию головой о стену по причине того, что у вас тормоза, плавающий крашь и прочая магия. Только опыт. Технологии меняются очень быстро. Книги писать некогда. Только фундаментал 20тилетней давности, Кормен и опыт.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы