Перейдите по ссылке выше, чтобы попасть на официальный сайт проекта, где вы нажимаете большую зеленую кнопку с надписью «Начать делать».
«Ничего не умею, но хочу делать игры!» С чего начать?
Ваши родители наверняка убеждены, что разработка игр — это несерьезное дело, куда важнее пойти учиться на врача, строителя или юриста. На самом деле надо понимать — это всего лишь мышление старшего поколения, которое уже далеко от современной действительности, тем более западной разработки. Каждый геймер хотя бы раз задумывался, а почему бы мне не заняться разработкой игр? На первый взгляд кажется, что это самая простая вещь на свете.
Фильмы, видеоигры, музыка, сериалы, комиксы — плод непосильного труда и предельная реализация творчества. Но это не значит, что если у вас нет каких-то творческих или технических навыков в медиасреде, мечту о собственной игре можно оставить на полке «несбывшихся надежд». Наоборот, это отличный старт для изучения чего-то нового, повод найти свое направление в индустрии. Сегодня мы расскажем вам, что делать, с чего начать и как найти свое место в игровой индустрии.
Кради как художник
Первый и самый простой способ научиться разработке игр — моддинг. Да, сейчас разработка модификаций не так крута, как это было в конце девяностых. Все из-за изменения стандартов качества. Чем дороже выглядят игры от крупных студий, тем выше спрос со стороны потребителя. А моддеры обычно преследуют цель: превзойти оригинальную игру во всех аспектах, чтобы удивить игрока. На разработку качественного мода может уйти много лет, но выпустить его удается лишь единицам. Вам не нужно далеко ходить, чтобы найти пример, просто посмотрите на списки модов на сайте ModDb.
В наше время наблюдается растущая тенденция к разработке ремастеров или полных ремейков классических игр. От этого поля постепенно уходят не только крупные студии, но и авторы модификаций. Официальный ремастеринг Final Fantasy VII занял у Square Enix девять лет, представьте, сколько времени понадобится моддерам, чтобы совершить такой подвиг. Только глухой не слышал о пресловутом долгострое Чёрной Мезы. Потребовалось 16 лет работы, чтобы разработать переосмысление оригинальной Half-Life. Но впечатляющий результат модификации вдохновил моддеров всего мира. Через несколько дней в сети стала появляться реклама фанатских ремейков игр из прошлого: Fallout 4 New Vegas, Doom Reborn, Deus Ex HDTP, GoldenEye 007.
К сожалению, такие моды часто не доживают до релиза или закрываются по требованию владельцев франшизы.
Valve официально признала Black Mesa настоящим ремейком и разрешила авторам продавать свой проект в Steam
Моддинг — это в первую очередь хобби, дающее потрясающие результаты. Разработка собственных проектов на основе готового материала — идеальный способ познакомиться с дизайном игры, внутренней кухней проекта. Разберите любимую игру по кусочкам, поймите, как все это работает, а затем на основе полученных знаний создайте что-то уникальное. Это творческий процесс. Благодаря наличию современных игровых движков, редакторов уровней и огромного количества информации вы можете начать свою карьеру разработчика прямо сейчас.
В основе всего всегда лежит идея. Игровые студии ценят креативных моддеров, чаще всего заимствуя их идеи для своих крупнобюджетных проектов. Обмен ресурсами и знаниями — основа невербального общения между создателем мода и разработчиком. Последние предоставляют технологии и основу для идей, а первые используют их для своих экспериментов. У мододелов нет предела полету фантазии. Им не нужно ориентироваться на рынок, что означает полную свободу творчества.
Моддерские эксперименты часто меняют привычный игровой дизайн, вынуждая крупные студии переезжать и брать под свое крыло хорошие проекты. За примерами не нужно далеко ходить. Жанр MOBA вырос из пользовательской карты для Warcraft III. Выпущенная в 2003 году игра Defense of the Ancients изменила традиционный геймплей RTS, предоставив игрокам нечто уникальное. Успех модификации был впечатляющим, и авторов пригласили на престижную работу. Guinsoo получил работу геймдизайнера League of Legends, а IceFrog ушел разрабатывать Dota 2 для Valve.
Выбор мотора – основа вашей идеи. Чем проще и функциональнее будет редактор уровней, тем быстрее пойдет работа. Используя инструменты, доступные из первого Quake, Робин Уокер и Джон Кук создали мод Team Fortress, а Гейб Ньюэлл основал студию, полностью состоящую из бывших моддеров игр id Software. Сама Valve активно поддерживает сообщество моддеров. Студия выпустила редакторы карт GoldSrc и Source (а теперь еще и Source 2) для широкой публики, дав людям возможность делать свои самые безумные проекты.
Одна голова хорошо, а две лучше. Командная разработка игрового проекта значительно ускоряет процесс, позволяет одному разработчику не распыляться по разным направлениям. Сам Джонатан Блоу на последних этапах производства Braid нанял композитора и художника, чтобы они сосредоточились на игровом процессе и выполнении кода.
Программы для создания игр
Что такое игровой движок
Программное обеспечение, которое игровые студии используют для создания своих продуктов, широко известно как «игровой движок». Самые известные — Unreal Engine, Unity и CryEngine. Они содержат базовую поддержку механики, физики и графики, реализованную с помощью одного или нескольких языков программирования. Чем сложнее движок, тем разнообразнее и интереснее можно создать игру на его основе.
Теоретически вы можете создать игру только на основе примеров игровых движков, но для этого потребуются знания различных языков программирования и навыки графического дизайна. Гораздо рациональнее использовать готовые решения, о которых пойдет речь далее.
Kodu Game Lab
Kodu Game Lab — бесплатная программа для создания 3D-игр. Первоначально он был выпущен на платформе Xbox 360, чтобы научить детей основам игрового дизайна. Естественно, процесс работы на нем максимально упрощен.
Программа представляет собой редактор карт с набором готовых трехмерных моделей, все действия настраиваются через интерфейс. Он не поддерживает пользовательские сценарии или загрузку дополнительных моделей, поэтому лучше всего подходит для создания простой приключенческой игры с открытым миром или интерактивного игрового фильма на карте.
Интерфейс Kodu Game Lab русифицирован, но качество перевода некоторых элементов управления оставляет желать лучшего. Поэтому вам придется потратить пару часов, чтобы разобраться в возможностях программы.
Construct 2
Construct 2 — это приложение для создания 2D-игр на основе HTML5 с возможностью задавать команды через интерфейс без программирования. Управление здесь осуществляется простым перетаскиванием элементов и выделением хотспотов (мест, где активируются скрипты).
Программа содержит впечатляющую коллекцию графических элементов, а также поддерживает загрузку изображений и моделей от третьих лиц. При создании игры генерируется сценарий в виде текста, который при необходимости можно редактировать и дополнять вручную. Для новичков есть готовые игровые примеры.
Construct подходит для создания 2D-игр любого жанра, кроме стратегий, так как не поддерживает курсор. В бесплатной версии вы можете экспортировать только браузерные игры. Платная версия позволяет создавать кроссплатформенные приложения для ПК, iOS и Android. Лицензия стоит $50 (около 3600 рублей).
Интерфейс программы переведен на русский язык, но элементы управления, настраивающие скрипты, остались на английском языке.
Torque 3D
Torque 3D — это игровой движок, с помощью которого вы можете создавать полноценные 3D-видеоигры. Для работы с ним также не обязательно знать языки программирования, весь процесс разработки осуществляется через интерфейс. По функционалу он заметно уступает Unreal Engine и CryEngine, но создать свой «3D-экшен» с «бегущими эльфами» на уровне начала 2000-х вполне реально.
Онлайн сервисы для создания игр
Factile
Factile — это сервис для разработки многопользовательских игр, таких как Custom Game, Weak Link или Who Wants to Be a Millionaire. Это готовый к использованию конструктор шаблонов, вам просто нужно задавать вопросы и назначать вознаграждение. После создания анкеты становится доступной ссылка, по которой участники будут подключаться.
Для создания игры в Factil необходимо зарегистрироваться без необходимости подтверждения по электронной почте. Просто введите любой адрес электронной почты и придумайте пароль.
После регистрации сервис переведет вас на выбор тарифа. Если вы не планируете покупать подписку, воспользуйтесь бесплатным доступом.
При выборе тарифа система перенаправит вас в окно создания анкеты.
Подключиться к сервису можно с любого устройства, поддерживающего работу с браузером.
Для доступа к полному функционалу существуют различные платные тарифы от 350 рублей в месяц.
Русского перевода нет, но браузер Chrome переводит большинство элементов управления.
ProProfs
ProProfs предназначен для создания обучающих игр на основе готовых шаблонов. Для работы с ним потребуется регистрация с подтверждением номера телефона. Сервис полностью платный, но есть бесплатный тестовый период.
Сайт ProProfs тоже не на русском языке, но это легко исправить с помощью машинного перевода. Однако не все игровые модули поддерживают кириллицу.
Как пользоваться сервисом:
В программе доступны следующие модули:
Из представленных модулей и игр есть многопользовательские и они рассчитаны на одного участника. Для участия необходима регистрация.
Подписка на самый дешевый тарифный план ProProfs стоит 25 долларов в месяц (примерно 1700 рублей).
Gamefroot
Gamefroot — онлайн-сервис для создания 2D-мини-игр. Он основан на полноценном игровом движке на основе HTML5.
Этот ресурс предназначен для детей и начинающих создателей игр, поэтому имеет простой интерфейс и интуитивно понятное управление. Каждый элемент сопровождается всплывающим окном справки.
Также в Gamefroot есть специальный модуль для написания скрипта с объяснением алгоритмов и логики.
Игры здесь можно делать как с нуля, так и по заранее подготовленному шаблону. Функционала движка достаточно, чтобы сделать многоуровневый платформер или бродилку.
Сайт ProProfs тоже не на русском языке, но это легко исправить с помощью машинного перевода. Однако не все игровые модули поддерживают кириллицу.
Способ 1: Программы для создания игр
В первую очередь рассмотрим специальные программы, позволяющие создать проект без знаний программирования. Сегодня речь пойдет об известном варианте. Game Maker — одна из самых простых и популярных программ для создания 2D-игр. Здесь вы можете создавать игры с помощью интерфейса перетаскивания или с помощью встроенного языка GML (будем работать с ним). Game Maker — лучший вариант для тех, кто только начинает разрабатывать игры.
При создании объекта стены установите флажок рядом с элементом «Сплошной». Это сделает стену сплошной и танки не смогут ее пробить.
image_angle = point_direction(x, y, mouse_x, mouse_y);
если клавиатура_проверить (орд(‘W’)) ;
если клавиатура_проверить (орд(‘S’)) ;
если клавиатура_проверить (орд(‘А’)) ;
если клавиатура_проверить (орд(‘Д’)) ;
если клавиатура_check_released (орд(‘W’))
если keyboard_check_released (ord(‘S’))
если keyboard_check_released (ord(‘A’))
если клавиатура_check_released (орд (‘D’))
Способ 2: Онлайн-сервисы
В Интернете существует множество различных онлайн-сервисов, функционал которых ориентирован на выполнение какой-либо задачи. Среди таких веб-ресурсов есть и такие, которые помогут создать простую игру без знаний программирования. В большинстве случаев пользователю предлагается использовать встроенные скрипты и библиотеку дополнительных текстур, персонажей и предметов. Давайте посмотрим пример создания такого проекта на примере редактора Gamefroot:
Перейдите по ссылке выше, чтобы попасть на официальный сайт проекта, где вы нажимаете большую зеленую кнопку с надписью «Начать делать».
если клавиатура_check_released (орд(‘W’))
если keyboard_check_released (ord(‘S’))
если keyboard_check_released (ord(‘A’))
если клавиатура_check_released (орд (‘D’))
Программирование
Совет
Выберите игровой движок, среду разработки и начните погружаться в код.
Приведенных ниже знаний достаточно, чтобы начать. Все примеры написаны на C++, одном из языков программирования Unity3D. (Примечание переводчика: Unity на самом деле использует C#, который похож на C++).
Типы данных и переменные. Код основан на данных, хранящихся в переменных. Вы можете объявить переменную следующим образом:
int — тип данных, i — имя переменной, = 0 — значение переменной.
Используя оператор else, вы можете расширить условие и показать, что делать, если условие не выполняется:
Циклы for аналогичны циклам while. Пока пишем так:
Эквивалент цикла for:
Если в вашем коде что-то пойдет не так, на помощь приходят исключения. Они как бы говорят: «Подождите, вы сделали что-то нелогичное здесь. Проверьте еще раз».
- Язык. На каком языке вы будете программировать? Большинство игр написано на C++, JavaScript или C#. Языки отличаются синтаксисом и областью применения.
- API (интерфейс прикладного программирования). Ознакомившись с основами, приступайте к изучению интерфейса прикладного программирования для конкретного игрового движка. Это набор полезных инструментов, упакованных в простые классы и функции. API значительно упрощает жизнь программисту.
- Посмотреть примеры проектов на выбранном игровом движке. Вы можете найти множество бесплатных примеров игр на движках Unreal и Unity. Это позволит вам увидеть результат и весь рабочий процесс в целом, а также получить идеи для вашей будущей игры.
Программированию, как и любому другому навыку, нужно учиться. И это может быть весьма интересно.
Другие важные основы программирования:
- Объектно-ориентированное программирование. Это делает код более естественным.
- Соглашение об именовании. Называйте классы, методы и переменные так, чтобы вы и другие программисты понимали их назначение. Например, назовите функцию атаки ближнего боя,
- Сопрограммы. Они позволяют вам начать выполнение действия, продолжать его в течение желаемого времени, а затем остановиться. Я использую их для визуальных эффектов взрывов, резких движений.
- Класс ScriptableObject. Сохраняет данные с меньшими затратами, чем базовый класс MonoBehaviour.
Инструменты
- Собственный движок на C/C++. Низкий порог входа. (Примечание переводчика: на самом деле создание собственного движка требует больших усилий и глубокого понимания принципов программирования).
- Блок. Поддерживает 2D/3D. Требуется знание JavaScript/C#. Средний порог входа. Разработка для нескольких платформ.
- Нереальный. Поддерживает 2D/3D. Требуется знание С++. Средний порог входа. Разработка для нескольких платформ.
- пикси.js только 2D. Требуется знание JavaScript. Средний порог входа. Разработка для браузера.
- Студия создания игр. Поддерживает 2D/3D. Требуется знание специального языкового движка GML (Game Maker Language). Для новичков. Разработка для нескольких платформ.
- Корона только 2D. Требуется знание Lua (по аналогии с JavaScript). Для новичков. Разработка для нескольких платформ.
Подготовка к публикации
Совет
Есть небольшой шанс (99,99%), что игра глючит. А это значит, что пришло время провести баг-тест.
Как тестировать игру на баги?
- Пусть другие играют в игру. Желательно с вами, на случай, если они столкнутся с ошибкой и не смогут ее понять или объяснить.
- Проверьте игру на разных платформах. Редактор может и не проблема, но работает ли он там, где запустится? Будьте особенно осторожны с Linux и Android.
- Проверьте консоль на наличие исключений. Если вы столкнулись с исключением, найдите файл и строку, в которой возникло исключение. Если это звучит по-марсиански, поищите в Интернете решение и подумайте, почему в этой строке срабатывает исключение.
- Пишите в консоль. Попробуйте показать логи (системные файлы) в предполагаемых местах ошибки. Введите разные переменные и сравните полученные значения с ожидаемыми. Если не совпадает, исправьте.
- Проверьте журналы. Системные входы вашего проекта предоставят больше информации, чем консоль. Прочитайте строки, в которых было выбрано исключение. Гуглите все, что вы не знаете.
- Поспи немного. Утром все будет исправлено. Это просто плохой сон 🙂
Типичные ошибки
Что происходит: функция выполняется с несуществующей переменной (null.
Быстрое исправление: проверьте, является ли переменная нулевой.
Примечание. Проверьте, какие цитаты вы используете.
» // правильные кавычки;
«//лишние кавычки принесут вам много ошибок.
Советы по оптимизации
- Установите желаемую частоту кадров. Для визуальной новеллы достаточно 20 кадров в секунду, а для шутера нужно 60. Низкая частота кадров тратит меньше времени на рендеринг.
- Анимация/система частиц/выборочная обработка. Объекты, невидимые для камеры игрока, не визуализируются. Персонажи анимированы, частицы обновлены, 3D-модели рендерятся только в поле зрения игрока.
- Сжатие текстур и звуков. Используйте Crunch для сжатия текстур. Потоковая передача музыки и звуковые эффекты при распаковке дополняют игру. Попробуйте снизить качество звука. Сжатие может значительно снизить качество объектов.
- Не позволяйте Raycast касаться нежелательных объектов. Raycasts похожи на маленькие молнии, которые вылетают из ваших пальцев или мыши, когда вы нажимаете или нажимаете на экран. Найдите объекты, которые не должны реагировать на действия игрока, и удалите их из расчетов Raycast.
- Используйте группу объектов. Частое создание и удаление большого количества объектов снижает производительность. Вместо этого объедините их в список, очередь или другую структуру. Например, маркеры должны быть объединены в массив.
- Оптимизация шейдеров. Установите материал для каждого средства визуализации. В игре не придется создавать новые материалы в начале игры, что позволит сэкономить ресурсы. Пусть зритель включает только то, что функционально необходимо.
- Используйте AssetBundles (буквально «наборы ресурсов») вместо старой системы ресурсов в Unity. AssetBundles экспортирует ваши файлы из Unity и объединяет их в один файл, экономя оперативную память.
- Объектно-ориентированное программирование. Это делает код более естественным.
- Соглашение об именовании. Называйте классы, методы и переменные так, чтобы вы и другие программисты понимали их назначение. Например, назовите функцию атаки ближнего боя,
Как создать свою игру, если нет команды единомышленников
В конце концов, разработка игры — это командная работа. Что, если владелец идеи, программист, дизайнер, маркетолог и тестировщик — вы сами? Как создать свою игру в одиночку и не сойти с ума?
Нам кажется, что ответ лежит на поверхности. Во-первых, сделать все это самостоятельно будет достаточно сложно, поэтому постарайтесь найти того, кто просветит вашу идею. В идеале этот человек должен уметь делать игры, то есть иметь хоть какой-то опыт. Во-вторых, где мы ищем поддержку или ответы на вопросы в нашей жизни? Правильно, в кругу семьи и друзей, а также на специализированных форумах.
Сегодня существует множество сайтов, групп в социальных сетях и форумов, где люди готовы опробовать вашу игру или помочь с тем или иным аспектом ее создания. В Рунете популярен форум тестировщиков Software-Testing.ru, где вы найдете большое количество единомышленников. Помните, что если кто-то готов вам помочь, то он отвечает вам взаимностью.
Не забудьте про маркетинговый план
Если вы знакомы с принципом Парето, скорее всего, вы слышали, что 20% усилий дают 80% результата. Чтобы создать игру, в которую будут играть, нужно потратить много времени на маркетинговый план. Подумайте, как вы хотите вывести свою игру на рынок. На каких платформах и рынках будет представлена ваша игра? Ознакомьтесь с материалами о том, как создать игру на устройствах Android и Apple одновременно, чтобы сэкономить не только время, но и деньги.
Попросите известных блоггеров социальных сетей оценить вашу игру. Сделайте так, чтобы каждый мог бесплатно скачать игру на свой телефон хотя бы на стадии тестирования. Вы можете задокументировать и описать весь процесс создания игры самостоятельно в своем личном блоге, чтобы заинтересовать общественность и СМИ своим проектом. Тогда, возможно, вы даже сможете научить других, как сделать свою собственную игру. Помните, что 20% всех ваших финансов должно быть потрачено на рекламу, и, возможно, тогда вы увидите название своей игры в списке лучших браузерных онлайн-игр или, например, в лучших играх для Android. Без маркетингового плана об успехе можно забыть, да и какой смысл создавать игру, в которую будете играть только вы и ваши друзья?