Разработка игр с чего начать. Программирование игр: программы, особенности создания и рекомендации

💖 Нравится? Поделись с друзьями ссылкой

С чего начать разработку своей игры? Как ни странно, но самым первым и очевидным пунктом здесь будет: оставьте эту затею.

Серьезно. Если вы только-только планируете свой путь в игровой индустрии, у вас горят глаза, и вы точно уверены, что знаете как сделать своего « », или - не начинайте.

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


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

На данный момент имеется огромное количество всевозможных «конструкторов», посредством которых можно собрать простенький прототип даже без базовых знаний программирования. Тот же Game Maker позволяет собрать за несколько вечеров вполне играбельный прототип.


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

Допустим, что вы адекватно оценили силы своей команды, написали концепт, провели исследование рынка и сделали простой, но играбельный прототип. Что дальше?


Выставки, тусовки и шоукейсы. Показывайте. Смотрите. Получайте обратную связь. Даже если отбросить относительно большие ивенты вроде Devgamm и White Nights, где сейчас очень любят инди и охотно дают им места под демонстрации, есть огромное количество мелких инди-ивентов.

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

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

Если хотите лично посетить новые открытые лекции по игровой индустрии и узнать об этом чуть больше, то в марте можно сходить сразу на несколько бесплатных открытых мероприятий в ВШБИ, вход на которые осуществляется просто по регистрации:

  • 01 марта: Особенности локализации игр отечественных разработчиков на другие страны
  • 02 марта: День открытых дверей программы «Менеджмент игровых проектов»
  • 15 марта: Управление командой в игровой индустрии
  • 22 марта: Игровая графика: базовые принципы и инструменты

Первое, что нам понадобится - это определиться с нашей целью. Что в итоге мы хотим получить? Если хотите, чтобы ваша игра «выстрелила», нужно для начала точнее прицелиться, а не бить наугад.

Этапом концепции и определения цели занимается руководитель проекта .


Жанр

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

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

Выбранный жанр можно немного корректировать по ходу работы, но его сущность должна оставаться прежней. Жанр – это своеобразный фундамент всей игры. Если захотите сменить жанр своей игры, то проще будет начать разработку новой игры заново, чем переделывать то, что уже было наработано.


Сеттинг


Разделение компьютерных игр на жанры весьма специфично и не похоже на систему жанров фильмов и книг. Игровые жанры определяют лишь основные действия, которые будут совершать игроки в процессе игры, тем самым они отвечают только на вопрос "ЧТО?". На вопросы "ГДЕ?" и "КОГДА?" отвечает другая основная характеристика игры – сеттинг.

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

Создание игры в популярном сеттинге обеспечивает её собственную популярность, да и игроки чувствуют себя уютно и комфортно в уже знакомом мире. Некоторые игры создаются в своих уникальных сеттингах или в необычных сочетаниях стандартных тем. Такие игры менее популярны, но, тем не менее, они имеют свою аудиторию особых игроков, которые терпеть не могут шаблонность и однообразие.

2. Средство

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


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

Этим этапом занимаются программисты .

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


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

3. Игровая механика


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

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

Если представить игру в виде живого организма, то игровая механика будет является его нервной системой и головным мозгом. А если представить игру в виде строящегося дома, то игровая механика предстанет как электропроводка, трубопровод и прочие бытовые инженерные коммуникации. Представьте, что происходит с красивыми и модными, но не продуманными играми с этой точки зрения: можно поселиться в красивом доме, но если в нём не будет освещения, водопровода и канализации, то при первой же возможности вы покинете его в поисках более комфортабельного жилья.

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


Объекты

Основой всей механики являются игровые объекты. Главный герой игры, компьютерные соперники, второстепенные персонажи (NPC), бонусы, подвижные объекты, декорации – всё это игровые объекты со своими свойствами и возможными действиями.


Управление

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


Физический движок


Если «управление» отвечает за перемещение подконтрольного нам персонажа, то физический движок отвечает за те движения, которые происходят без прямого вмешательства игрока. Эти действия имитируют физические законы реального мира (иногда немного искаженные в сторону фантастики). Брошенный мячик отскакивает от пола, опрокинутая бочка скатывается с наклонной поверхности, выстрел мощным оружием отбрасывает стреляющего назад, хрупкий предмет, брошенный с высоты разбивается – всё это примеры действия физического движка.

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


Искусственный интеллект (ИИ)

ИИ отвечает за поведение компьютерных врагов или союзников.

Роль ИИ значительно разнится в зависимости от жанра игры. В экшенах действия врагов крайне примитивны; в RTS стратегиях достаточно пары десятков скриптов, чтобы придать сопернику кажущуюся разумность; в стелс-экшенах, слешерах и файтингах необходимо создать уникальную систему поведения для каждого типа врагов, иначе глупые враги сделают игру неинтересной. Серьезная стратегическая игра требует колоссальной работы над ИИ, а в простых казуальных играх и в онлайн-проектах, ориентированных на сражения только между реальными игроками, искусственный интеллект вообще не нужен.

4. Уровни


Правила игры в виде игровой механики готовы, теперь нам нужно создать площадки, где эти правила начнут работать. Созданные игровые объекты расставляются в отдельных виртуальных пространствах – уровнях (локациях). Игры чаще всего содержат множество отдельных уровней, переход между которыми происходит по ходу сюжета. Но в последнее время, благодаря возросшей производительности компьютеров, выпускаются игры с одним большим цельным миром, лишь условно разделяемом на различные локации (GTA, Skyrim).

На каждом отдельном уровне расставляются игровые объекты, стенки, платформы, декорации, фоны. Уровни создаются в играх всех жанров. Даже в простенькой казуальной игре по перестановке цветных камешков есть уровни – в их роли выступают игровые поля и расстановка камней. В браузерных играх в роли локации выступают отдельные html-страницы.

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

Построением уровней занимаются левелдизайнеры .

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



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

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

5. Оформление


Созданием графики занимаются художники , геймдизайнеры .

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


Арты

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


2D, 3D модели

На основе артов дизайнеры создают либо двухмерные спрайты из пикселей, либо трёхмерные модели из полигонов.



Анимации

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

В настоящее время для создания человекоподобных 3D-персонажей существует специальная технология «Motion Capture», позволяющая создавать анимации на основе движений настоящих людей. Эта технология доступна лишь крупным и очень богатым компаниям. Для использования Motion Capture нужно не только приобрести дорогостоящее оборудование, но ещё и нанять группу актёров, с которых будут записываться движения.


Фоны

С задними фонами всё гораздо проще – нарисовал один раз, поставил в нужное место на уровне без всяких изменений, и забыл.


Спецэффекты

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



Оформление экрана и меню

Оформить нужно не только игровые уровни, но и систему, объединяющую их в единое целое – игровое меню (строчки, кнопки, страницы настроек). Начальное меню – это вообще визитная карточка игры, и выглядеть она должна идеально. На игровом экране так же есть множество элементов, к которым можно применить оформление – количество жизней, лайфбар, миникарта, меню быстрого выбора действий, инвентарь героя, списки заданий, экраны диалогов. На английском языке всё это называют одним сокращением – GUI (Graphical User Interface - графический пользовательский интерфейс).

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

6. Сюжет


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

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

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


Скрипты, события

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

Скрипт представляет собой следующее: игрок заходит в определённое место, или совершает нужное действие, или выполняются ещё какие-то необходимые условия, и после этого начинают выполняться действия, запрограммированные вами на этот случай. Например, в военном 3D шутере поднимаемся на возвышенность, подходим к установленному пулемёту (условие выполнено), через 10-15 секунд после этого внизу вдруг начинается вражеская массированная атака, и нам есть на кого использовать пулемёт (произошли события).

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

Продумыванием скриптов занимаются сценаристы , а их реализацией – программисты .


Диалоги, повествования


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

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

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

Написанием текстов и диалогов занимаются сценаристы и писатели .



Видеовставки

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

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

Созданием видеовставок занимаются художники , аниматоры , 3D-модельеры , сценаристы , режиссеры .

7. Звук

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


Звуковые эффекты


Для любого маломальского игрового движения нужно добавить соответствующий звук. Это могут быть удары меча, нанесение рукопашного удара, звуки движения автомобиля, получение бонуса, обнаружения героя врагом. Не думайте, что это какое-то излишество, и можно обойтись всего несколькими базовыми звуками. Например, в большинстве 3D-Action игр пренебрегают добавлением звуков шагов главного героя и врагов. В результате – при виде от первого лица видно, что герой передвигается в пространстве, но кажется, что он не идёт, а плавно скользит вперёд. А враги без озвучки шагов вообще могут совершенно бесшумно подбежать к герою сзади и сильно попортить нервы игрокам.

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

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


Музыка


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


Озвучка

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


Наличие в игре музыки и полноценной озвучки значительно увеличивает объем готовой игры, занимаемый на жестком диске, Но по возможности лучше всё таки добавлять озвучку в игру. Это повысит вовлечённость игрока в сюжет и рассказываемую вами историю, так как большинство игроков игнорируют и вообще не читают обычные не озвученные тексты.

8. Отшлифовка


Процесс разработки большой игры построен таким образом, что различными её элементами занимаются различные специалисты. На начальном этапе игра представляет собой разрозненный набор творческих наработок в различных областях искусства: изображения, звуки, 3D-модели, архитектура, тексты, сценки, видеовставки, оформление. И вот, наконец, наступает такой момент, когда разбросанные камни нужно собирать. С помощью программных средств разрозненные объекты соединяются в единую сложную систему.


Сведение материала (a-версия)

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

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


Устранение ошибок (b-версия)

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

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

9. Продажа


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

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


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

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


Локализация

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

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

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


Система продажи


Игра готова, игроки в ожидании её релиза, осталось лишь решить, как доставить игру конечным пользователям, и взять с них деньги.

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

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

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

10. Поддержка

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


Выпуск патчей

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

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

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


Выпуск дополнений

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

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


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

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

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

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

Со вторым вопросом сложнее - изобилие языков, реализаций, компиляторов может ввергнуть начинающего в легкий шок или же толкнуть на неправильный выбор. Не буду долго мучить читателя и попытаюсь сформулировать ответ сразу: за последнее время 99% серьезных компьютерных игр под Windows были написаны и откомпилированы в Microsoft Visual C различных версий.

Попытаюсь кратко ответить на вопрос "Почему так?". Во-первых, почему Cи? Не вдаваясь в историю его создания - об этом итак много написано - скажу лишь, что изначально Си задумывался как высокоуровневая альтернатива ассемблеру. Почему не ассемблер? Современные компиляторы в состоянии генерить код, который уступает коду, написанному человеком на 1-2%... Речь идет об оптимизации. Нет, конечно, Вам придется написать на ассемблере не одну сотню строк, но лишь для того, что бы использовать возможности современных процессоров, о которых еще не знал компилятор потому, что был создан задолго до этого, или же оптимизировать некоторые критичные участки кода. А тем более зная архитектуру процессора, под который вы программируете, можно существенно ускорять эффективный код программы - ведь те же правила действуют и для языков высокого уровня, таких как Си. Скажем тот же механизм предсказания ветвлений процессоров. Почему именно MS Visual C? На это сложно ответить... Можно Borland(Теперь Inprise) С++ (Кстати, его почему-то любят некоторые наши программисты) или Watcom C. Только... История конкуренции той же Borland и Microsoft имеет глубокие корни... Здесь однозначно трудно сделать предпочтение. Об этом мы еще поговорим ниже, когда речь дойдет собственно до процесса создания. Тогда почему скажем не Delphi, Inprise C++ Builder или VB спросите Вы? Эти реализации не подходят для создания СЛОЖНЫХ проектов по одной простой причине - они планировались как средства RAD(Rapid Application Development) средства или "Средства быстрой разработки приложений". Они скрывают от программиста множество процессов внутри приложения, создавая собственные надстройки над функциями ядра, облегчая жизнь программисту, но в то же время, существенно снижая скорость приложения. Следует так же оговориться, что по сути своей программа на Visual Basic не является полноценным приложением, а используется как файл данных для интерпретирующей этот файл библиотеки ран-тайма (Сказано слишком утрированно - но все же - дыма без огня не бывает). Кстати говоря - так же нецелесообразно при программировании игр использовать штатные библиотеки классов (по тем же самым причинам, что были указанны выше) для Visual C++ и Borland C++, такие как MFC или OWL соответственно. Данные средства разработки лучше использовать лишь как сервисные - например, создавая в них редакторы ресурсов и т.п. Да - замечу, что библиотеки импорта для DirectX SDK (о котором будет сказано ниже) разные для того же Borland C и Visual C. Иными словами, при линковке на Borland C Вам понадобятся соответствующие *.lib файлы для Borland"а. А для VB они появились только в седьмой версии DirectX.

Итак, мы получили ответ на оба вопроса и, казалось бы, готовы. Вот тут то и всплывает третий вопрос - пользоваться ли функциями ядра или использовать какое-либо API (Application Programming Interface)? Выражаясь более простым языком в данном контексте, это библиотеки функций облегчающих процесс создания программы. Под любой другой операционной системой ответ был бы очевиден - поскольку практически все операционные системы на Intel платформе с архитектурой IA-32 используют защищенный режим и не позволяют работать с аппаратурой на прямую (из пользовательских приложений), а только через сервисные функции предоставляемые ядром операционной системы, то использование библиотек третьих фирм, просто скрывающих от Вас функции ядра, а также выполняющие некоторое количество действий, ориентированных на универсальность данной библиотеки, только снижали бы производительность. Значит ядро? Не все так просто - тем, кто "живет" под Windows, хорошо известна жуткая неэффективность в плане скорости функций ядра Windows. Именно поэтому долгое время после выхода Windows 95 разработчики продолжали создавать игры под DOS. Именно поэтому Майкрософт предприняла попытки исправить ситуацию. Сначала появился WinG API, а затем и виновник торжества - DirectX API. Именно последний Вам придется использовать для создания игр или высокопроизводительных мультимедийных приложений. Конечно, существуют и другие API - среди которых внимание заслуживают лишь OpenGL и, наверное, GLIDE. Первый был разработан Silicon Graphics для своих рабочих станций, а впоследствии портирован под разные ОС на многие аппаратные архитектуры. Второй был разработан компанией 3DFX как API для работы с ее графическими картами ускорителями. Наиболее универсальным (распространенным) из них является OpenGL. Недостаток этих библиотек в том, что обе они ориентированны лишь на работу с 3D/2D графикой, в то время как DirectX состоит из нескольких классов компонент (это тема для отдельного разговора) позволяющих эффективно использовать все составляющие компьютера - от видеокарты до мыши. Одной из важных особенностей DirectX является то, что все графические функции поддерживают аппаратное ускорение - иными словами - если Ваша видеокарта поддерживает некоторые аппаратные действия, с помощью DirectX вы можете использовать их в приложении. И, пожалуй, самым главным плюсом (в большей степени), является то, что программисту не важно, под каким аппаратным обеспечением он работает - между драйвером и кодом программы стоит DirectX API.

Чуть не забыл критерий в пользу Visual C, который я хотел упомянуть - и DirectX, и Visual C, и ОС под которую мы будем создавать приложения созданы одной фирмой производителем;).

Подведем некоторый итог. Для того, чтобы писать игры под Windows нам необходимы следующие инструменты:

  • Microsoft Visual C++.
  • DirectX SDK.
  • SDK включает в себя набор документации, примеров с исходными текстами, заголовочных файлов, утилит и библиотек, необходимых для создания приложений под DirectX. В комплекте Visual C++ идут также библиотеки и заголовочные файлы OpenGL API (Который в большинстве своем также поддерживается аппаратно).

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

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

    После одного игрового проекта со стримом всего процесса разработки мне часто пишут начинающие разработчики, что-то спрашивают, что-то показывают и на что-то жалуются. Недавно мне пришлось влезть в спор двух ребят, где темой спора было: “Что круче знать 3д-моделирование или программирование, если собираешься разрабатывать игры?”. Влез к ним в спор с предложением сделать первый шаг из схемы, что родилась в процессе участия в игровых проектах и создания своих.

    Шаг 0. Станьте разработчиком игр

    Именно первый, а точнее даже “нулевой”, шаг сделает Вас сразу разработчиками игр. Это не проекты, которые, может, уже есть у Вас за плечами, не навыки, котороми Вы, может, владеете, а простой, но очень важный шаг: скажите себе, а заодно и всему миру, что вы разработчик игр. Как только у вас уляжется в голове ответ на вопрос, чем вы занимаетесь - разработкой игр, - вы сразу станете для себя и окружающих разработчиком игр.
    Как это сказать себе и другим?
    Уверен, что у вас уже есть какая-то профессия. Также я уверен, что Вы каждый день посещаете сайты/форумы, связанные с вашей профессией, читаете блоги и, может, даже книги.
    Первое, что надо сделать, чтобы стать разработчиком игр:
    • Начать посещать сайты, связанные с тематикой игр и разработкой игр.
    • Подписаться на блоги разработчиков, творчество которых вам нравится.
    • Купить пару книг в “киндл” на амазоне, например, о игровом дизайне.

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

    Шаг 1. Найдите себе применение как разработчику игр

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

    Слова “найти проект” для каждого разработчика игр значат разное, вот список популярных способов поиска проектов:

    • найти проект, близкий по духу, с интересной идеей, проинвестировать в него свои навыки и/или деньги, а, может, какие-то еще ресурсы;
    • взять пару игр и сделать из них микс;
    • сделать клон игры, что может принести хорошую прибыль;
    • придумать гениальную идею и попробовать найти энтузиастов;
    • сделать ремейк любимой игры;

      И множество других способов.

    Выйти из состояния “поиска проекта” нужно как можно быстрее , и желательно выйти в состояние “делаю проект” и делать проект с шансами на успех: релиз и популярность.

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

    Вот некоторые советы для прохождения этого шага:

    1. Начните что-то свое . Свое от идеи до реализации в одиночку. Даже если у вас есть навыки программирования или вы сносно рисуете, - не вступайте в существующие проекты. Сделайте что-то небольшое, не требующее серьезных навыков.
      Например, я сделал маме подарок на НГ - 3д-игру по психологической методике:
      У меня не было опыта разработки на C# и программировать я особо не умел (немного знал python) и никогда до этого не моделил.
    2. Скажите себе кодовую фразу: “Если кто-то смог, я тоже смогу ”. Как бы вы ни были готовы к игровому проекту, всегда будет задача, с которой вы никогда не сталкивались. Например, даже у опытных программистов программного обеспечения, часто нет опыта создания шейдеров. Скажите себе кодовую фразу и учитесь по ходу .
    3. Найдите себе единомышлеников . Мне в моем развитии очень сильно помогли: скайп-чатик разработчиков социальных игр (теперь уже создатели: Голос Припяти 3D, Tanks Heroes, Contract Wars, Батла и многие другие) , а также одногруппники из Scream School по курсу гейм-дизайна . Их успех будет вас подталкивать, а обмен опытом ускорит процесс развития.
    4. Выберите себе платформу для разработки . Определите платформу, которая вас устраивает. Это может быть, например, Unity - за ее возможности, огромное комьюнити и сравнительно низкий порог входа. Вне зависимости от платформы, станьте ее евангелистом . Это позволит вам наладить коммуникацию с другими разработчиками и быстрее развиваться.
    5. Не давайте эмоциям взять вверх . Ошибки и неудачи станут вашими спутниками на длительный период, а если вы будете делиться процессом развития с русскоговорящими разработчиками, будьте готовы к тоннам говна большому количеству негативных отзывов. Не позволяйте эмоциям брать вверх: слушайте любые отзывы и предложения, но относитесь ко всему с необходимой критикой. Сохраняйте критичность ума .

    Шаг 2. Помогите себе закончить хотя бы ОДИН проект!

    Если вы закончили свой первый проект как разработчик игр, скорее всего, вы что-то делали не так. Даже эпилептоид не сможет закончить свой первый проект, а к первому релизу у него в архиве будет пара-тройка (минимум) замороженных проектов. Это нормально . Мы учимся на своих ошибках, а не совершают их только идиоты или те, кто ничего не делают.
    Но в какой-то момент нужно будет собрать весь свой опыт, полученный из проб и ошибок, и, наконец, сделать свой первый релиз .
    У каждого разработчика своя история первого релиза, но у меня есть пару советов, которые обязательно вам помогут:
    1. Вгоните себя в экстремальные условия , а выходом из них сделайте релиз. Поставьте себе реальный, но очень сжатый срок на релиз, например, 48 часов или неделю, но спать будете по 4 часа в день. Это даст сильный толчок, заставит оптимально использовать время и сфокусироваться на результате.
      • Сжатые сроки
        Сжимая сроки, не оставляйте себе время на риск. Сжимайте до последнего, пример с 48 часами - хороший.
      • Отсутствие сна
        Полное или почти полное отсутствие сна хороший мотиватор, но не доходите до крайностей. Практика показывает, что даже молодому организму надо давать отдых.
      • Менеджмент времени
        Не стоит выделять много времени на тайм-менеджмент, но не забывайте ставить себе вехи (milestone). Например, скажите себе, что через 5 часов вам надо сделать играбельный прототип.
        Например, в своем первом 48 часовом марафоне (на нем я только рисовал) , я за первую треть времени нашел стиль игры, нарисовал основной, игровой экран и все спрайты врагов. И за оставшееся время сделал 170+ спрайтов анимации и дорисовал интерфейс.
      • Конкурсы , особенно мероприятия, типа, HackDays или Ludum Dare, где нет времени на раздумья и надо сразу бросаться в работу, - отличное подспорье для пунктов выше.
    2. Поставьте себе рамки . Для первого релиза, особено в сжатые сроки, критически необходимо знать рамки проекта. Выпишите себе минимум, что нужен для релиза, и не выходите из него. По необходимости:
      • Урежьте список возможностей
        Было бы здорово сделать возможность летать на самолетах, но если вы делаете шутер про пехоту, сфокусируйтесь на стрельбе.
      • Сократите время игры
        Вероятно, вы рассчитывали сделать синглплеер на 5 часов игры, но вы останетесь победителем с демкой на 20 минут.
      • Уберите часть контента
        Конечно, дополнительная карта не будет лишней для вашего тактического шутера, но релиз останется релизом даже с одной картой.
    3. Ищите простые пути . Напоминайте себе, что вам необходим релиз, а не шедевр . У вас остается право на ошибку, но вы потеряли право на заморозку проекта.
      • Используйте костыли и хардкод
        Не стоит фокусироваться на универсальности или производительности кода. Оптимизация тоже подождет. Просто идите к результату.
      • Копируйте, а не придумывайте
        Если с ответом на любой вставший перед вами вопрос возникают трудности, копируйте решение коллег.
      • Используйте опыт на 150%
        Учет сделаных ошибок - это, несомненно, хорошо, но пока вы их совершали, вы собрали багаж наработок. Постарайтесь использовать из него что-то.
      • Подключите все ресурсы
        Если у вас есть друзья, готовые помочь, не отказывайтесь, а если у вас есть денежный ресурс - вкладывайте (покупайте готовые решения, контент и рабочие руки). Ваши вложения окупятся в дальнейшем.

    Шаг 3. Сделать полноценный релиз

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

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

    1. Делайте проект каждый день . У всех начинающих инди есть занятия, с которыми приходится совмещать разработку. Но не забывайте добавлять хотя бы одну строчку кода или новый спрайт в игру каждый божий день. Это очень важно, это пункт номер 1.
    2. Ставьте себе небольшие задачи и старайтесь выполнять их каждый день. Долго открытая задача, например: “разработать систему инвентаря”, может быстро превратиться в “висяк” с очень низким приоритетом. Поставьте задачу “Интерфейс основного окна инвентаря” и закройте в этот же день, а затем радуйтесь прогрессу.
    3. Два шага вперед, один в сторону . Какой бы разнообразной вы ни планировали игру, не стоит делать сразу 50 типов врагов и тысячи уровней. Сфокусируйтесь на реализации возможностей игрока, а не способах их проявлений. Делаете слешэр? - Реализуйте возможность рубить врага, а врагов клонируйте.
    4. Прототипируйте . Когда вы сфокусированы на настоящем релизе, необходимо отдавать себе отчет, что игра должна быть хорошей . Проверить это можно, прототипируя.
    5. Вы делаете игру . Не стоит делать из своей игры движок или фреймворк. Нет, я не про чистоту кода или возможность его переиспользовать. Работайте хорошо, и результат будет хороший. Не стоит реализовывать возможности до того, как поймете, что они действительно необходимы вашей игре . Например, если вы не уверены, что будет возможность менять цвет одежды героя, не стоит рисовать маску для смены цвета в шейдере. Убедитесь, что ваш дизайн подразумевает наличие предметов перед тем, как создать класс Item.
    6. И главное… Не бойтесь вернуться на шаг 2 . Возможно, еще не время для настоящего релиза.

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

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

    После одного игрового проекта со стримом всего процесса разработки мне часто пишут начинающие разработчики, что-то спрашивают, что-то показывают и на что-то жалуются. Недавно мне пришлось влезть в спор двух ребят, где темой спора было: “Что круче знать 3д-моделирование или программирование, если собираешься разрабатывать игры?”. Влез к ним в спор с предложением сделать первый шаг из схемы, что родилась в процессе участия в игровых проектах и создания своих.

    Шаг 0. Станьте разработчиком игр

    Именно первый, а точнее даже “нулевой”, шаг сделает Вас сразу разработчиками игр. Это не проекты, которые, может, уже есть у Вас за плечами, не навыки, котороми Вы, может, владеете, а простой, но очень важный шаг: скажите себе, а заодно и всему миру, что вы разработчик игр. Как только у вас уляжется в голове ответ на вопрос, чем вы занимаетесь - разработкой игр, - вы сразу станете для себя и окружающих разработчиком игр.
    Как это сказать себе и другим?
    Уверен, что у вас уже есть какая-то профессия. Также я уверен, что Вы каждый день посещаете сайты/форумы, связанные с вашей профессией, читаете блоги и, может, даже книги.
    Первое, что надо сделать, чтобы стать разработчиком игр:
    • Начать посещать сайты, связанные с тематикой игр и разработкой игр.
    • Подписаться на блоги разработчиков, творчество которых вам нравится.
    • Купить пару книг в “киндл” на амазоне, например, о игровом дизайне.

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

    Шаг 1. Найдите себе применение как разработчику игр

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

    Слова “найти проект” для каждого разработчика игр значат разное, вот список популярных способов поиска проектов:

    • найти проект, близкий по духу, с интересной идеей, проинвестировать в него свои навыки и/или деньги, а, может, какие-то еще ресурсы;
    • взять пару игр и сделать из них микс;
    • сделать клон игры, что может принести хорошую прибыль;
    • придумать гениальную идею и попробовать найти энтузиастов;
    • сделать ремейк любимой игры;

      И множество других способов.

    Выйти из состояния “поиска проекта” нужно как можно быстрее , и желательно выйти в состояние “делаю проект” и делать проект с шансами на успех: релиз и популярность.

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

    Вот некоторые советы для прохождения этого шага:

    1. Начните что-то свое . Свое от идеи до реализации в одиночку. Даже если у вас есть навыки программирования или вы сносно рисуете, - не вступайте в существующие проекты. Сделайте что-то небольшое, не требующее серьезных навыков.
      Например, я сделал маме подарок на НГ - 3д-игру по психологической методике:
      У меня не было опыта разработки на C# и программировать я особо не умел (немного знал python) и никогда до этого не моделил.
    2. Скажите себе кодовую фразу: “Если кто-то смог, я тоже смогу ”. Как бы вы ни были готовы к игровому проекту, всегда будет задача, с которой вы никогда не сталкивались. Например, даже у опытных программистов программного обеспечения, часто нет опыта создания шейдеров. Скажите себе кодовую фразу и учитесь по ходу .
    3. Найдите себе единомышлеников . Мне в моем развитии очень сильно помогли: скайп-чатик разработчиков социальных игр (теперь уже создатели: Голос Припяти 3D, Tanks Heroes, Contract Wars, Батла и многие другие) , а также одногруппники из Scream School по курсу гейм-дизайна . Их успех будет вас подталкивать, а обмен опытом ускорит процесс развития.
    4. Выберите себе платформу для разработки . Определите платформу, которая вас устраивает. Это может быть, например, Unity - за ее возможности, огромное комьюнити и сравнительно низкий порог входа. Вне зависимости от платформы, станьте ее евангелистом . Это позволит вам наладить коммуникацию с другими разработчиками и быстрее развиваться.
    5. Не давайте эмоциям взять вверх . Ошибки и неудачи станут вашими спутниками на длительный период, а если вы будете делиться процессом развития с русскоговорящими разработчиками, будьте готовы к тоннам говна большому количеству негативных отзывов. Не позволяйте эмоциям брать вверх: слушайте любые отзывы и предложения, но относитесь ко всему с необходимой критикой. Сохраняйте критичность ума .

    Шаг 2. Помогите себе закончить хотя бы ОДИН проект!

    Если вы закончили свой первый проект как разработчик игр, скорее всего, вы что-то делали не так. Даже эпилептоид не сможет закончить свой первый проект, а к первому релизу у него в архиве будет пара-тройка (минимум) замороженных проектов. Это нормально . Мы учимся на своих ошибках, а не совершают их только идиоты или те, кто ничего не делают.
    Но в какой-то момент нужно будет собрать весь свой опыт, полученный из проб и ошибок, и, наконец, сделать свой первый релиз .
    У каждого разработчика своя история первого релиза, но у меня есть пару советов, которые обязательно вам помогут:
    1. Вгоните себя в экстремальные условия , а выходом из них сделайте релиз. Поставьте себе реальный, но очень сжатый срок на релиз, например, 48 часов или неделю, но спать будете по 4 часа в день. Это даст сильный толчок, заставит оптимально использовать время и сфокусироваться на результате.
      • Сжатые сроки
        Сжимая сроки, не оставляйте себе время на риск. Сжимайте до последнего, пример с 48 часами - хороший.
      • Отсутствие сна
        Полное или почти полное отсутствие сна хороший мотиватор, но не доходите до крайностей. Практика показывает, что даже молодому организму надо давать отдых.
      • Менеджмент времени
        Не стоит выделять много времени на тайм-менеджмент, но не забывайте ставить себе вехи (milestone). Например, скажите себе, что через 5 часов вам надо сделать играбельный прототип.
        Например, в своем первом 48 часовом марафоне (на нем я только рисовал) , я за первую треть времени нашел стиль игры, нарисовал основной, игровой экран и все спрайты врагов. И за оставшееся время сделал 170+ спрайтов анимации и дорисовал интерфейс.
      • Конкурсы , особенно мероприятия, типа, HackDays или Ludum Dare, где нет времени на раздумья и надо сразу бросаться в работу, - отличное подспорье для пунктов выше.
    2. Поставьте себе рамки . Для первого релиза, особено в сжатые сроки, критически необходимо знать рамки проекта. Выпишите себе минимум, что нужен для релиза, и не выходите из него. По необходимости:
      • Урежьте список возможностей
        Было бы здорово сделать возможность летать на самолетах, но если вы делаете шутер про пехоту, сфокусируйтесь на стрельбе.
      • Сократите время игры
        Вероятно, вы рассчитывали сделать синглплеер на 5 часов игры, но вы останетесь победителем с демкой на 20 минут.
      • Уберите часть контента
        Конечно, дополнительная карта не будет лишней для вашего тактического шутера, но релиз останется релизом даже с одной картой.
    3. Ищите простые пути . Напоминайте себе, что вам необходим релиз, а не шедевр . У вас остается право на ошибку, но вы потеряли право на заморозку проекта.
      • Используйте костыли и хардкод
        Не стоит фокусироваться на универсальности или производительности кода. Оптимизация тоже подождет. Просто идите к результату.
      • Копируйте, а не придумывайте
        Если с ответом на любой вставший перед вами вопрос возникают трудности, копируйте решение коллег.
      • Используйте опыт на 150%
        Учет сделаных ошибок - это, несомненно, хорошо, но пока вы их совершали, вы собрали багаж наработок. Постарайтесь использовать из него что-то.
      • Подключите все ресурсы
        Если у вас есть друзья, готовые помочь, не отказывайтесь, а если у вас есть денежный ресурс - вкладывайте (покупайте готовые решения, контент и рабочие руки). Ваши вложения окупятся в дальнейшем.

    Шаг 3. Сделать полноценный релиз

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

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

    1. Делайте проект каждый день . У всех начинающих инди есть занятия, с которыми приходится совмещать разработку. Но не забывайте добавлять хотя бы одну строчку кода или новый спрайт в игру каждый божий день. Это очень важно, это пункт номер 1.
    2. Ставьте себе небольшие задачи и старайтесь выполнять их каждый день. Долго открытая задача, например: “разработать систему инвентаря”, может быстро превратиться в “висяк” с очень низким приоритетом. Поставьте задачу “Интерфейс основного окна инвентаря” и закройте в этот же день, а затем радуйтесь прогрессу.
    3. Два шага вперед, один в сторону . Какой бы разнообразной вы ни планировали игру, не стоит делать сразу 50 типов врагов и тысячи уровней. Сфокусируйтесь на реализации возможностей игрока, а не способах их проявлений. Делаете слешэр? - Реализуйте возможность рубить врага, а врагов клонируйте.
    4. Прототипируйте . Когда вы сфокусированы на настоящем релизе, необходимо отдавать себе отчет, что игра должна быть хорошей . Проверить это можно, прототипируя.
    5. Вы делаете игру . Не стоит делать из своей игры движок или фреймворк. Нет, я не про чистоту кода или возможность его переиспользовать. Работайте хорошо, и результат будет хороший. Не стоит реализовывать возможности до того, как поймете, что они действительно необходимы вашей игре . Например, если вы не уверены, что будет возможность менять цвет одежды героя, не стоит рисовать маску для смены цвета в шейдере. Убедитесь, что ваш дизайн подразумевает наличие предметов перед тем, как создать класс Item.
    6. И главное… Не бойтесь вернуться на шаг 2 . Возможно, еще не время для настоящего релиза.
    Рассказать друзьям