Кто и как создает игры.

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

С геймдевом связано много областей, и каждый этап обучения основан на этапе предшествующем. Например, не стоит сразу перескакивать на игровые движки. Начните с разработки ПО, изучения математики с заточкой под программирование игр и только после переходите к геймдеву. Каждый из представленных этапов – это пошаговое руководство, включающее в себя книги и другие материалы.

0. Разработка игр для детей

Многие книги ориентированы на работу с легендарной и интуитивно понятной средой разработки для детей Scratch, в том числе ScratchJr. После базиса следует информация о Python Pygame. Есть книга для пятилетних, но большая часть материалов подойдет для детей в возрасте от 8 лет.

1. Информатика

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

2. Языки программирования

Разговаривать на языке компьютера непросто, но возможно. И таких способов уйма. Например, язык C существенно повлиял на индустрию ПО, поделившись своим синтаксисом с популярными C#, C++ и Java. C++, в свою очередь, является мощным языком для создания эффективных программ и программных комплексов. Многие также пишут игры на C#: язык шустрый, удобный и позволяет быстрее стартовать разработку.

А вот Lua перенял кое-что от C++. Скрипт-язык хорош для игровой логики. Он упростит инициализацию уровня, привязку задач к объектам, смену поведения NPC в интерактивном режиме без необходимости перекомпилировать проект и многое другое.

3. Создание приложений

И если информатика – это базис теоретический, то здесь больше практики. Разработка игр – ухабистая стезя, и начать лучше с приложений. Книги с практическими заданиями, а также информацией о паттернах и UML помогут разобраться, что к чему.

4. Математика для разработки игр

Нет, здесь не будет школьного курса алгебры и геометрии. Подборка разбита на основы математики в сфере геймдева и более продвинутый уровень.

5. Игровое программирование

Аппаратные платформы, операционные системы, наборы API, алгоритмы, кроссплатформенность и другие важные аспекты, которые лягут в основу разрабатываемой игры. Книги дополнены рядом геймдев-статей, в которых содержится полезная информация по программированию.

6. Разработка игрового движка

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

7. Компьютерная графика

Да, содержимое – это важно, но именно компьютерная графика является аналогом интерфейса приложения, который будут видеть пользователи. Поэтому ей стоит уделить особое внимание.

Недаром этот раздел самый большой. Сюда включены основы программирования с Real-Time 3D, DirectX и OpenGL. Все дополнено информацией о рендеринге и технологиях. Отдельного внимания в подборке удостоились Direct3D и OpenGL.



8. Игровое аудио

Разработка игр касается и аудио: это звуки, издаваемые NPC, главным героем, явлениями или предметами, а также музыка. Аудио программирование обошлось всего двумя книгами, но в них доступно изложена необходимая информация.

9. Игровая физика и анимация

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

Довольно часто начинающие пользователи ПК задаются вопросом: «Кто же стоит за созданием компьютерных игр?». Ответ достаточно очевиден и прост, но давайте обо всем по порядку.

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

Что же мы видим сегодня? Стремительно развитие информационных технологий и различных отраслей программирования «открыло нам глаза» на современный мир игровой индустрии. Многие наши специалисты участвуют в разработке зарубежных компьютерных игр и выводят проекты на самые высокие позиции в рейтинге виртуальных развлечений. Научиться программированию или моделированию 3D-объектов – это уже не сложно, ведь теперь мы имеем огромное количество специализированной литературы, глобальные информационные сети, различные учебные центры и т.д. Вот, например, ресурс http://tritec-education.ru/ предлагает всем желающим курсы по изучению таких сложных приложений, как «Компас-3D», «3D Max», «Adobe Phototshop», знание которых является обязательным для создания той или иной игровой новинки.

Как Вы уже поняли, именно люди занимаются разработкой всех игр, присутствующих сегодня в компьютерном мире. Раньше, когда игра представляла собой всего лишь небольшой «кусочек кода», над ее созданием трудились один или два специалиста, а теперь, когда каждое виртуальное развлечение занимает на жестком диске около 10 ГБ и объем кода вообще не сосчитать – стоят за этим несколько десятков, а то и сотен программистов , художников, аниматоров и других «знатоков». Каждый отвечает за свою часть программы. Почему «программы»? Да потому, что игра тоже является приложением, написанным на одном из языков программирования и дополненным моделями персонажей, аудио и видеоконтентом.

Сначала должна появиться идея . Другими словами, на начальной стадии специалистами создается план будущей игры. Потом подсчитывается бюджет , который необходим для реализации данной идеи. Готовый «цифры» показывают издателям. Если того заинтересует придуманная игра, то он обязательно вложит в ее развитие необходимую сумму денег.

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

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





Кто Работает в Индустрии Разработки Игр

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

Дизайн

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

Ведущий дизайнер, ведущий геймдизайнер  - руководитель и координатор остальной дизайнерской команды, в его обязанности входит определение и проработка ключевых элементов будущей игры, взаимодействие с прочими руководителями других отделов (арт-директором, ведущим программистом и т.д.), решение иных дизайнерских задач, которые нельзя по каким-либо причинам поручить подчинённым дизайнерам. В общем виде именно ведущий дизайнер является лицом, которое определяет конечный облик игры, её "суть" на уровне геймплея.

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

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

Дизайнер интерфейса, дизайнер UI  - разрабатывает пользовательский интерфейс, всевозможные меню, HUD"ы, окна и т.д. Рисовать их самостоятельно ему вовсе не обязательно, но в общем это было бы плюсом.

Сценарист  - человек, который отвечает за текстовую составляющую игры. В его обязанности входит составление диалогов, проработка сюжета, описание всевозможных сцен, событий, возможных вариантов их развития, наполнение внутриигровой литературы, если таковая имеется и т.д. - в общем, всё, что сделает геймплей органично вписанным в игровой мир. Среди новичков существует мода называть себя "сценаристами", однако реальное наполнение этого слова гораздо объёмнее, чем простое написание сюжета для игры. Гораздо более сложной задачей может стать составление непротиворечивых, логичных миссий и заданий, написание реалистичных реплик для разных персонажей - всё это требует высокого художественного мастерства, владения языком и определённой долей таланта.

Программирование

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

Ведущий программист  - наиболее опытный и технически подкованный специалист, в задачи которого входит сведение всех подразделов игрового движка в широком смысле этого слова в единую работающую систему. Ведущий программист именно программированием может заниматься меньшую часть своего времени, т.к. его основная обязанность это всё же именно координация и соединение всех систем в единое целое. Также ведущий программист может заниматься написанием "скелета" игрового движка для всех подсистем, которыми уже будут заниматься другие люди.

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

Программист 3D-движка, программист графического движка  - специалист, отвечающий за отображение игрового мира на экране игрока, шейдеры, графические эффекты и т.д.

Программист AI (искусственного интеллекта) - в его задачи входит программная реализация различных моделей поведения врагов, системы триггеров, условий и прочих элементов, управляющих поведением внутриигровых объектов со стороны компьютера.

Программист UI  - отвечает за взаимодействие пользователя с игровым миром через интерфейс пользователя (UI), различные HUD, меню и т.д.

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

Программист сетевого кода  - отвечает за взаимодействия игры через сеть интернет (либо локальную сеть) с серверами обновлений, другими игроками (мультиплеер) и т.д.

Графический контент

Графический контент, ассеты  - совокупность объектов игрового мира, которые игрок видит на экране. Сюда входят модели персонажей, предметы окружения, ландшафт и проч.

Арт-директор  - руководитель художественного отдела, обычно самый опытный сотрудник арт-отдела, отвечает за координацию работы подчинённых 2D и 3D художников, контролирует качество, следит за выдерживанием общего стиля во всех работах.

2D-художник  - обобщённое название ряда более узких специальностей. Задачей 2D-художнка обычно является создание графического контента в 2D-редакторах (обычно - Photoshop) в виде эскизных рисунков, текстур для 3D-моделей, различного рода заставок, фоновых изображений и т.д. Более узкими специальностями 2D-художников являются: концепт художник, художник по текстурам, художник бэкграундов.

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

Художник по текстурам  - в его обязанности входит создание различных текстур для 3D-моделей, созданных 3D-художниками, в соответствии с концепт-рисунками.

3D-художник  - обобщённое название ряда более узких специальностей. Задачей 3D-художника в общем виде является создание 3D-контента в виде моделей персонажей, техники, архитектуры и прочих игровых объектов. Более узкими специализациями 3D-художников являются: моделер персонажей, моделер окружения (environment artist), аниматор.

Моделер персонажей  - занимается созданием в 3D-пакете модели игровых персонажей, их одежды, вооружения, доспехов и т.д. Впрочем, персонажи могут быть как органическими (гуманоиды), так и неорганическими (различного рода техника), поэтому многие моделеры относят себя к моделерам органики либо моделерам неорганических поверхностей в зависимости от умений и предпочтений.

Моделер окружения  - в его задачи входит моделирование предметов окружающего мира, ландшафта, зданий и т.д.

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

Тестирование

Тестирование, контроль качества (QA, Quality Assurance) - процесс выявления различного рода ошибок и дефектов контента игры. Тестирование обязательно должно проводиться во избежание частичной либо полной неработоспособности игры у конечного потребителя.

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

Звук

Звук  - отдел звука обеспечивает игру звуковыми эффектами, музыкой и озвучивает игровых персонажей.

Композитор  - в его задачи входит написание музыки (саундтрека) к игре.

Звукоинженер  - занимается поиском готовых звуковых эффектов для игры либо созданием новых путём синтеза нескольких звуков или записью оригинальных.

Актёры озвучивания  - озвучивают игровых персонажей.

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

Пора и мне написать чёнить полезное.

Введение.
Ну вот. Мир переполнен статьями о создании игр, разработки движков и выборе вторых... По сути большинство из этого, скажу честно, мусор. Растёт число бессмысленных советов=>растёт число бессмысленных статей=>растёт число бестолковых создателей=>растёт число бестолковых игр. В этой статье я постараюсь "поставить новичков на путь истинный".

Всё начинается с идеи. Кто то где то зачем то почему то хочет создать игру, потому что играть надоедает, т.к. всё хлам, либо хочет оставить свой отпечаток в мире гейм-индустрии (как правило из-за бесконечного рвения остаётся "кучка" и множество недовольных комментариев). И, почему-то, это либо подобие игры S.T.A.L.K.E.R."а, либо создание карт в редакторе WarCraft (простите если неправильно написал название). И, примерно, год назад интернет был переполнен сообщениями "саздаём игру шоб прям STALKER во все дыры ищу праграмистав я сам суперпрофи С== знаю прям ваще!" ну и подобным барахлом. Что изменилось сейчас? Пожалуй, ничего. Только названия игр начали чуточку меняться. Собственно, так вы никого не найдёте.

С чего начать.
Естественно главное в команде-лидер. Желательно, что бы это был самый опытный человек в команде, способный организовать людей. За ним и последнее слово. Так что в команде у него должен быть неоспоримый авторитет. Это мозг команды. В идеале "верхушка" состоит из 2-3 человек (лидер,профи в программировании, знает все этапы создания игр, генератор умных идей, помощник). Если Вы хотите стать лидером-заинтересуйте людей, покажите что вы умеете не только орать и указывать. От плохого руководителя уйдут все. Не стоит набирать 999999 человек, т.к. на управление всей этой массой уйдёт уйма времени. Но и 2 человека врятли справятся.

Люди.
Конечно же хочется, что бы в команде были профессионалы, но извиняйте-такой вариант отметается сразу. В странах СНГ настоящих профи 200-300 человек, уникумов 10-20. Остальные либо среднячки с раздутым самомнением, либо... либо новички с раздутым самомнением. В сравнение-в США по неподтвержденным данным 5000 профи, и 500 уникумов (официальный статистики никто не составлял). Ну что ж. Можно искать среди среднячков, но этот вариант редко когда улыбнётся, т.к. они заламывают большую цену и требуют королевских условий. Остаётся самый распространённый вариант-новички. А тут два пути - есть люди которые "зырь я в 3ДэМаксе чё намутил за 5 минут" и те кто "да я как то не очень, в институте мы это не учили.. Давай я попробую". Второй вариант более оптимистичен, т.к. среди них нередко попадаются и довольно талантливые люди, способные за 2-3 месяца неплохо освоить свою роль. Главное - это отделить действительно способных людей от всего остального. Ваша команда должна быть:
1)Разделена на уровни: программисты, дизайнеры, музыканты. В идеале каждый уровень состоит минимум из 3 человек, из которых 1 этакий "подлидер". Ему поручается работа, он её распределяет между участниками ведомого им уровня.
2)Дружной, т.к. разлады 2-3 человек способны развалить всю команду.
3)Целеустремлённой, способной к самосовершенствованию.
Самый приятный вариант-набор людей из своего города, а желательно из друзей. Но если Вы решили искать людей на форуме, прошу Вас, все кто это читает - УДЕЛИТЕ ОФОРМЛЕНИЮ ОБЪЯВЛЕНИЯ ХОТЬ 5 МИНУТ!!! Реально прост бесят "создаем МоМоМо нужны все". Я бы лично рад примкнуть к подобному проекту, но смысл если создатель сразу приказал ему долго жить?

Организация.
В команде есть новички, некоторые люди не знают друг друга? Труд объединяет! Создайте вместе какую-нибудь игру, но лучше мод. Желательно уже на этом ровне определиться с редакторами, движком. Графика не ахти, баги... Ну что ж. Зато хоть какой то опыт работы в команде будет, да и основы освоите. Желательно, что бы лидер, подлидеры и вся "верхушка" работала наравне со всеми, и даже больше - заслужите доверие, да и люди будут стараться, потому что увидят, что для Вас это не просто баловство.

Проект.
Пора создавать игру. Бюджетную. Бесплатно пахать на одном интузиазме никто не будет! Выберите тему, обсудите её с командой, а затем вместе со всеми создавайте чертежи, планы. Желательно участие в этом этапе принимали и подлидеры. Искать сразу на готовый проект людей и сразу к нему приступать тоже не вариант, сами понимаете почему.

Тут просто изложена организация и подбор людей. О движках, 3D редакторах и графических 2D редакторах расскажу в следующей теме. Вечером будет готово.

Жесткая критика сразу после релиза – такова судьба многих современных видеоигр. Будь то небольшие, но увлекательные онлайн-приложения или глобальные проекты, бюджет которых составляет ни один миллион долларов, все они вызывают недовольство той или иной категории пользователей. Вот только большая часть критики сегодня, к сожалению, не объективна. Далекие от основ создания компьютерных игр люди ругают то, что даже теоретически нельзя преподнести иначе, чем это сделали разработчики. Исправить эту несправедливость мы и постараемся сегодня. Итак, начнем.

Сформируем концепцию

Первый шаг в создании любой игры – это определение ее концепции. Чему будет посвящен проект? К какому жанру и теме он будет относиться? На какую аудиторию должен быть ориентирован? Ответив на эти вопросы, вы сможете задать направление развития своему творению, понять, каких целей хотите и сможете (при наличии должного старания) достичь. Так, ориентация на бои или соревнования гарантирует повышенный интерес у геймеров, на обучение или логику – отсутствие серьезных конкурентов. Выбор в пользу мира фэнтези или постапокалипсиса поспособствует комфорту и быстрой адаптации игроков (т.к. эти вселенные для них привычны), комиксов или аниме – более узкую (но и более преданную) аудиторию, которая не убежит при выходе схожего проекта.

Определимся с возможностями

Следующий шаг в создании игрового шедевра – осознание собственных возможностей. Как правило, на этом этапе разработчики определяются с максимально допустимым бюджетом проекта, выбирают движок, на котором будет вестись разработка, или подбирают наиболее подходящий язык программирования, а также производится оценка имеющихся в распоряжении ресурсов (как технических, так и человеческих). Определиться со всеми этими нюансами необходимо заранее. В противном случае вы можете столкнуться с ситуацией, когда после разработки, например, эффектного супер-удара с оригинальной подводкой из целой цепочки квестов, окажется, что реализовать эту гениальную идею в рамках данного проекта возможности нет.

Разнообразие движков и платформ — есть над чем задуматься

Просчитаем механику

Внутриигровая механика – одна из наиболее важных составляющих любого проекта. Тогда как графическая составляющая призвана привлечь внимание игроков, заинтересовать в новом проекте, задача геймплея — навечно оставить след в их сердцах. Яркий пример тому Stardew Valley – симулятор фермы с пиксельной графикой, который с первых дней релиза возглавил топы продаж в Steam’е. Необходимо понимать, что внимание стоит уделять даже мелочам. Например, если в игре имеется классовое деление, явный перекос в пользу одной или нескольких фракций недопустим, а чем больше возможностей предоставит проект игроку (квестов, прокачки, головоломок и т.п), тем дольше тот не захочет покидать игровой мир. Причем в проработке нуждается не только сам персонаж, но и все окружающие его объекты, как то: NPC и враги (), декорации и предметы (физический движок), уровни и все остальное.

Придумаем сюжет

Если раньше разработка онлайн и оффлайн-проектов была приблизительно схожа, то сейчас на данном этапе появляется первое кардинальное различие. Продумывая сюжет игры, необходимо четко осознавать ее временные рамки. Тогда как прохождение ориентированных на одного игрока проектов редко занимает больше 1-2 месяцев, многопользовательские онлайн-игры, как правило, не имеют конца. Поэтому и сюжет здесь не должен иметь логического завершения, а подаваться с открытым финалом, который еженедельно/ежемесячно можно оттягивать, добавляя новые квесты, предметы, умения. В однопользовательских играх финал прорабатывается чуть ли не с первых дней работы над сюжетом. При этом он не должен оставлять открытых вопросов (если, конечно, вы не планируете выпустить продолжение игры) и каких-то недомолвок, хотя и может быть альтернативным (как в Silent Hill 2).

Создадим оформление

Продумав все нюансы каркаса проекта, можно переходить к его графической составляющей (интерфейсу, звуковому сопровождению, фонам, артам, спецэффектам, анимациям и т.п). Особое внимание здесь следует уделить направленности игры. Если предполагается, что обновления для нее будут выходить достаточно часто (например, раз в неделю), нет смысла создавать арты с детальной проработкой и анимации, насчитывающие несколько десятков (а то и сотен) движений. Чем проще будут оформлены персонажи, тем меньше косяков вы получите при их внедрении и меньше сил потратите на регулярные релизы. В случае редко обновляемых либо оффлайн-проектов, как правило, все наоборот. Чем более проработанным будет виртуальный мир и эффектными движения/умения игрока, тем больше у игры шансов привлечь внимание широкой аудитории.

Поймем, что работа только начинается

Не стоит думать, что работа над игрой завершается после ее предрелиза. Напротив, с этого момента разработчик обзаводится дополнительными обязанностями. Он должен протестировать свой продукт, обнаружить и искоренить в нем баги, достойным образом прорекламировать свое творение и создать определенный образ в сознании игроков, начать разрабатывать возможные дополнения, DLC и локализации, продумать систему продаж и поддержки игроков.

Как видите, работа по созданию игры требует огромных усилий. Поэтому прежде чем ругать очередной релиз задумайтесь, действительно ли он так плох, или вы сами наделили его нереализуемыми чертами.