Хотите делать компьютерные игры? Разработать игру для компьютеров и гаджетов под силу каждому. Для этого необязательно быть опытным программистом. Бесплатные конструкторы (движки) позволяют быстро «собрать» приложение, не затрудняя себя написанием скриптов. Однако если стремишься к успеху в этой области, предстоит много и упорно учиться.
С чего стартовать
Конкуренция в этой сфере огромная. Большинство разработчиков игр – люди, профессионально занимающиеся программированием с раннего возраста. «Какой смысл напрягаться, будучи заранее обреченным на поражение?» – спросите вы. В том-то и дело, что ещё ничего не известно. Производство игры – творчество, в котором каждый способен себя проявить.
Занятие не обязательно должно приносить доход. Чем плохо иметь интересное хобби? В общем, прежде чем приступать, определите цели. Собираетесь заниматься этим для развлечения или заработка денег? Каких высот планируете достигнуть, если речь идет о карьере? В каком направлении собираетесь развиваться?
Программирование
Если хотите стать серьезным разработчиком игр, нужно учить языки программирования. Выбор определяется сферой деятельности. Существуют варианты для разных платформ:
- HTML и Ruby-On-Rails. Это инструменты для браузерных приложений.
- Рекомендован для ориентированных на Андроид. Курсы по основам Java-программирования бесплатно доступны в интернете.
- Objective-C. Для тех, кто нацелен на аудиторию iPhone.
- C#. К этому языку прибегают, чтобы делать компактные консоли.
- Flash-формат в моде, поэтому стоит подумать об этом направлении.
- JavaScript, Lua. Рекомендуется программистам, решившим заняться написанием скриптов.
Крупномасштабные проекты делают преимущественно на C++. Он считается сложным даже среди профессионалов. Начинать с него не стоит. Развивать навыки следует постепенно, от простого к сложному. Знание основ необходимо в любом деле.
Чем больше языков выучишь, тем выше вероятность получить хорошую работу. В серьезных командах над разработкой игр трудятся универсалы, владеющие несколькими language. Для собственного произведения достаточно одного инструмента. Зачастую обходятся и без этого «костыля».
Выбор жанра и места действия
Хороший результат возможен только при наличии интересного замысла, способного хотя бы привлечь внимание. Итоговый успех зависит от качества реализации идеи, но это уже другой вопрос. Концепция определяет жанр будущего действа. Вариантов хватает:
- Action (шутеры, бои);
- симуляторы и менеджеры;
- приключения;
- стратегии;
- логические, головоломки;
- ролевые и т. д.
Чистый жанр сегодня почти не встречается. В популярных хитах используют элементы разных направлений, но какая-то база, безусловно, существует. Если начнете с приключения и по ходу действия захотите переключиться на симулятор гонок, «переделать» не удастся. Придется приступать к работе с чистого листа.
Не менее важно удачно сделать «декорации», в которых развивается действо. Это может быть арена первой мировой войны или средневековье, апокалиптическая пустыня или фэнтезийный лес, населенный сказочными персонажами. Сотворить собственный мир, разрушающий привычные шаблоны и при этом вызывающий интерес, – мечта разработчика.
Приступаем к работе
Писать программу с нуля – сложное, хоть и полезное занятие. Дебютанту лучше учиться на конструкторе. В интернете много подобных движков, распространяемых бесплатно. Например, Unity 3D. После выбора инструмента разработчика игры ожидают следующие этапы:
- Составление подробного плана. Уточните сюжет, место действия, персонажей, тщательно пропишите базовые положения, выберите платформу. У профессионалов это называется дизайн-документ или диздок. Для самоконтроля желательно установить конкретные сроки для каждой стадии.
- Производство. В ходе этого процесса предстоит осваивать новые знания и навыки. Если на какой-то стадии возникли затруднения, сразу обращайтесь за помощью на форумах. Не переживайте, если не укладываетесь в сроки. Освоить материал намного важнее.
- Тестирование. По окончании разработки игру должны оценить посторонние люди. Если результат понравился и появилась мысль о коммерческом распространении продукта, тщательно проверьте приложение на ошибки (баги). Чем сложнее программа, тем выше вероятность появления дефектов. Привлекайте к проверке родных и знакомых. Одному человеку трудно решить эту задачу, какой бы простенькой ни была программка.
Выпуск релизов, реклама, маркетинг – тема отдельной статьи. На первых порах до этого далеко. Думать о релизах стоит не раньше, чем увидишь реальный интерес со стороны. Важным шагом является выбор платформы. Запускать приложения можно на ПК, мобильном устройстве или приставке. В первых двух случаях оно включается напрямую или через браузер. У каждого варианта есть сложившаяся аудитория.
На компьютерах и приставках ставят «стрелялки», симуляторы, квесты, стратегии или многопользовательские миссии. В общем, всё, что интересует подлинного игрока. Пользователи смартфонов, айфонов и планшетов предпочитают аркады, головоломки и казуалы вроде тетриса. В браузерах строят фермы и собирают пазлы. Ничто не мешает сделать стратегию для приставки или «бродилку» для браузера, но это вряд ли найдет спрос.
Работа с конструктором
Выбор инструмента затрудняется количеством интересных вариантов. Для разработки простых 2D-приложений попробуйте Construct 2, Game Maker Studio или Clickteam Fusion. Профессионалы предпочитают мощные CryEngine или NeoAxis Engine. Конструктор Unity 3D считается золотой серединой, подходящей и молодым, и бывалым пользователям.
Все эти программы доступны бесплатно. Вопросы к автору возникнут, только если продукт окажется коммерчески успешным. Если не разобраться с этой ситуацией сразу, придется терпеть рекламу конструктора или отчислять процент с продаж. Подписчики платных версий с такими проблемами не сталкиваются.
Написание кода – утомительное и скучноватое занятие. Особенно для человека, только осваивающего ремесло. Приходится постоянно сверяться с учебником, искать ошибки вручную. Неудивительно, что многие бросают дело на полпути, не видя заметных результатов своего труда. С конструктором куда проще и увлекательнее.
Во время работы приходится решать следующие задачи:
- Графика. В классическом программировании пишут отдельные скрипты для каждого объекта и персонажа. Со временем разработчикам стало проще, так как появились готовые спрайты (растровые изображения) и текстуры. В 3D-редакторе пользователю доступны библиотеки моделей и текстур. Просто загрузите нужные файлы и добавляйте на экран по мере надобности.
- Физика. Персонажам приходится ходить, прыгать, бегать, драться, стрелять. Если действовать классически, для каждого элементарного действия потребовалась бы внушительная роспись последовательных операций.
- Геймплей. Это основа. Набор игровых механик определяет поведение персонажей в разных ситуациях. Представьте, насколько трудоемким станет эта процедура без автоматизации.
- Пользовательский интерфейс. Обеспечить нормальную обратную связь с игроком непросто. Он должен иметь возможность управлять персонажем, делать паузы, находить информацию в меню.
- Звуковое сопровождение. При наличии редактора легко интегрировать звуковые эффекты, музыку и речь в нужные сюжетные точки.
- Искусственный интеллект. Чтобы самостоятельно программировать поведение других персонажей, нужно быть специалистом. Современный софт «уравнивает» новичка с профессионалом, позволяя создавать многомерные миры с множеством персонажей.
- Баланс. Чтобы было интересно, каждый участник должен обладать индивидуальными характеристиками.
Рисовать анимацию вручную – задача не менее утомительная, чем написание кода. Даже когда речь идет о примитивной 2D-программе. Делают текстуру, разбивают ее на кадры, задают последовательность смены. После кропотливого многочасового труда посчастливится полюбоваться парой примитивных телодвижений графического человечка.
3D-модели представляют собой «скелет» – каркас с подвижными элементами. Обычно его создают, задавая точки координат. Чем сложнее поведение персонажа, тем больше ключевых элементов. Элитные студии записывают актеров, одетых в специальные костюмы. Каждое движение фиксируется отдельно.
Пользователю конструктора не придется задумываться о подобных вещах. Он просто берет анимацию из соответствующего раздела и перемещает ее в нужную точку методом Drag&Drop. То есть мышью или пальцем на сенсорном экране. Это касается и физики, и геймплея, и звукового сопровождения, и баланса.
Последовательность действий для квеста
Уяснив игровую механику, правила, сюжет и персонажей, приступают к разработке уровней (локаций). В «доисторические» времена герой переходил на следующий Level, только выполнив определенную миссию. Сегодня авторам предлагают творить миры, условно разделенные на разные локации. По сравнению с традиционной схемой, персонажу здесь доступна любая точка.
Для каждого уровня оформляют «декорации». Задают конфигурацию, фоны, объекты. В масштабных проектах за построение локаций и переходы между ними отвечают Level-дизайнеры. Рядовому разработчику игр в этом процессе поможет специальный редактор. При его наличии делать и корректировать уровни способен каждый, кому интересно подобное занятие.
От планировки локаций зависит многое. Скучный однообразный дизайн погубил много хороших идей. Уделите этому вопросу пристальное внимание. Дальнейшие этапы:
- Оформление. Это «отделка» уровней, детализация и анимация персонажей, внедрение спецэффектов. Недостающие элементы импортируют из сторонних баз данных.
- Интерфейс. Стартовое меню – «вывеска», которая обязана соответствующе выглядеть. Недопустимо, чтобы пользователь ломал голову над тем, как произвести элементарное действие. Обеспечьте быстрый доступ к справочной информации и важным элементам (текущему балансу, картам и пр.).
- Внедрение скриптовых сценок и видео. Суть в том, чтобы после выполнения героем какой-то задачи дальнейшие события некоторое время развивались бы самостоятельно. Например, персонаж вылез на крышу (условие), несколько секунд полюбовался окружающими красотами (событие) и лишь после этого отправился дальше. Такие скриптовые сценки и видео оживляют сюжет.
- Написание диалогов. Благодаря этому элементу игроку удается общаться с другими участниками или завоевывать какие-то привилегии, отвечая на вопросы. Рекомендуется, чтобы при диалогах герой не подвергался опасности. События на это время должны «замирать».
- Озвучивание. Сколь красивым и динамичным ни был бы результат, без качественного аудиосопровождения это будет не то. Звуковой эффект требуется для любого существенного действия. Скрежет автомобильного тормоза, победный марш, выстрел, дурацкий выкрик – вариантов оформления не счесть. Такое сопровождение не только оживит обстановку, но и дополнит ее.
Не менее важно подобрать саундтрек. Запоминающаяся оригинальная мелодия станет фирменным знаком игры. В интернете полно бесплатной музыки, но не забывайте об авторских правах. Если присутствуют диалоги, предстоит также озвучить персонажей. Крупные разработчики привлекают к этому делу звезд. Новичкам обычно помогают друзья или субтитры.
- Сборка и тестирование. Когда игру создают с помощью редактора, «состыковка» элементов идет постепенно. Проверка игровых механик незавершенной программы называется альфа-тестированием. Автор отлаживает отдельные скрипты, уровни и процедуры. На этой стадии делают промо-ролики и релизы для дальнейшего маркетинга продукта.
По окончании полной сборки (бета-версия) наступает пора проверить игру на наличие багов. Чем сложнее миссия, тем больше времени займет тестирование. Ошибки неизбежны в любом случае. Поиск и отладки часто занимают до 40% общего времени. Кстати, многие успешные разработчики игр начинали карьеру в качестве тестеров крупных компаний.
Каким именно образом будет формироваться модель или взаимосвязь, определяет интерфейс конструктора. К каждой из этих программ прилагается подробная инструкция с видеоуроками. Хватает материалов и в сети. Службы поддержки доступны круглосуточно, особенно для платных подписчиков. Если менеджеры долго не отвечают, задавайте вопросы на форумах.
Послесловие
Сделать игру, которая станет хитом – задача архисложная. Даже крупнейшие студии со штатом в сотни человек периодически терпят неудачи. Новичку трудно рассчитывать и на локальный успех, но это нормально. Не ожидайте от первого проекта многого, учитесь и получайте удовольствие от творчества. Однако противопоказано относиться к этому занятию, как к «баловству».
Достичь результата без труда и упорства невозможно. Ставьте перед собой выполнимые цели и последовательно их достигайте. Автор обязан верить, что его детище будет успешным, и прикладывать для этого максимум сил. Тщательно продумывайте сюжет. Важно, чтобы игрокам было интересно дальнейшее развитие событий. Если удастся этого достичь, то перспективы точно есть. Остальное – дело техники.
Постоянно учитесь и совершенствуйтесь. Писатели, музыканты, художники на заре карьеры изучили сотни произведений выдающихся коллег. Нереально стать хорошим разработчиком игр, имея о них смутное представление. Знакомясь с лучшими образцами жанра, можно «подглядеть» ключевые приемы. Старайтесь оценивать действие глазами автора. И, конечно, не забывайте упорно изучать само ремесло.