С выходом unity 5 и бесплатным unreal engine 4, многие совсем забыли о таких удобных инструментах разработки как конструкторы. Возможно, вы только слышали о них, но никогда не использовали. А ведь зря, это очень удобная вещь для реализации многих задач. Бесспорно, тягаться с мамонтами современного игростроения они не способны, да и не стремятся. В данной статье мы расскажем как конструкторы могут вам пригодится и раскроем все плюсы и минусы работы в них.
Game Maker
Это один из самых старых игровых middleware движков. ГМ изначально разрабатывался голландским ученым Марком Овермассом для обучения детей начальной школы навыкам программирования и работал исключительно под «Виндоус». После 8-й версии Овермасс продал ГМ компании YoYo Games, а сам сосредоточился на проблемах обучения. YoYo Games сохранили концепцию и интерфейс, но переписали движок так, что он стал мультиплатформенным. Теперь игра, написанная на ГМ, может относительно легко быть проэкспортирована на множество платформ: iOS, Android, Mac, XBox, PS3, HTML5 и т.д. Каждый модуль можно покупать отдельно за сравнительно небольшие деньги (ежемесячные отчисления отсутствуют).
На деле такая мультиплатформенность, конечно, несет в себе проблемы — например, свою игру, работающую на iOS и Android сразу запустить на HTML5 у меня не получилось — многие функции работают под одной платформой и не работают под другой. Да и просто отладка и запуск, например, под iOS может быть довольно мучительна, так что помощь и консультации опытного разработчика вам все-таки иногда понадобятся. Впрочем, насколько мне известно, этим грешат много подобных движков.
Тем не менее, главная причина, по которой меня в свое время привлек ГМ — это очень низкий «порог входа», т.е. научиться делать игры под ГМ очень легко. Как я уже говорил, изначально ГМ разрабатывался именно как обучающая программа для детей, так что если вы не глупее 8-и летнего ребенка, то сможете разобраться в ГМ. Входящий в дистрибутив туториал игры типа Pacman демонстрирует, как игра создается простым перетаскиванием блоков-конструкций из текущего набора, то буквально из кубиков.
Базовая концепция ГМ очень проста. Есть комната — это экран, где все происходит. В редакторе комнаты мы размещаем игровые объекты — стены, монстров. Объекты имеют набор событий (например, событие столкновения с твердым объектом), а у каждого события есть список действий, которые происходят при активации этого события. Так же, к объекту нужно привязать картинку спрайта.
Но в отличие от большого количества других движков, примтивность ГМ лишь кажущаяся. Кубики-действия — это лишь заранее заданная вершина айсберга, который называется GML — GameMaker Language. Перетянув в объект кубик-действие «выполнить код», вы можете программировать код вручную, используя большое количество мощных функций и очень простой синтаксис.
Поддержка скриптов, любых звуковых форматов, редактор путей, шрифтов, редактор набора текстур и спрайтов, а также неплохой магазин ресурсов и возможность добавления своих расширений — возможности ГМ для создания 2D игр на самом деле очень неплохи. 3D и я не пробовал, но успешных продуктов в этом стиле сделанных на ГМ не припомню.
Добавьте сюда живой форум и неплохую техподдержку — и будет понятно, почему я считаю ГМ лучшим движком для не-программистов. Его также можно использовать для быстрого прототипирования отдельных идей.
Например, будучи довольно опытным пользователем ГМ (но не будучи программистом), я сделал первый эпизод Who Is The Killer, работая 2-3 часа по вечерам, за 4 месяца.
Резюмируя.
Минусы:
- Сложность отладки;
- Неодинаковая работа под разными платформами (потому что их слишком много!);
- Невозможность залезть на «низкий уровень» (например, памяти);
- Нестабильное поведение новых версий;
- Задержки обновлений, которые поддерживают новый функционал платформ (например, я месяц ждал, пока появится обновление ГМ, которое поддерживает создание версий под новую на тот момент iOS 8).
Плюсы:
- Низкий порог обучения. Начать делать игры может буквально каждый;
- Простой внутренний язык с мощными функциями;
- Поддержка множества платформ. И сравнительно небольшие разовые цены за соответствующие модули;
- Очень большая скорость создания базового игрового процесса и прототипов.
Интересные проекты можно посмотреть здесь: www.yoyogames.com/showcase
Construct 2
Первая версия движка Construct Classic была выпущена в 2007 году двумя братьями из Англии. До этого они принимали участие в разработке Multimedia Fusion, но в итоге полученные навыки решили применить для создания собственного движка. На данный момент Construct Classic официально не поддерживается, но многие продолжают его использовать и развивать.
Construct 2 был выпущен в 2011 году. Из среды для создания HTML5 игр он вырос в мультиплатформенный движок.
Но, к сожалению, не все так гладко и радужно. Экспорт на дополнительные платформы осуществляется при помощи сторонних программ и запаковщиков. От этого страдает производительность, особенно на мобильных устройствах. Хотя, при должном старании и знании программы можно достичь хорошего результата. Из примеров можно привести мобильную игру Mortar Melon:
Что же касается самой среды разработки, то она очень удобная. Я бы даже сказал, что это самый удобный и простой в изучение конструктор. Программирование игры осуществляется при помощи системы событий.
В конструкторе присутствует система партиклов, а так же OpenGL эффекты. Еще можно выделить аудио эффекты (фильтры, позиционирование звука), возможность создавать мультиплеер при момощи WebRTC, встроенный “поиск пути”, физику и полноценный дебаггер с профайлером. Еще радует тестирование через wi-fi. Нажимаем запустить игру и смотрим, как она уже работает на ваших мобильных устройствах. Присутствует поддержка программы для скелетной анимации Spriter.
Что же касается официальной поддержки, то она своевременная. Часто просят исходник, чтобы быстрее решить вашу проблему. Обновление программы происходить довольно часто, что очень радует. Как правило, это не только правка ошибок, но и внесение дополнительного функционала.
Сообщество у Construct 2 просто великолепное. Люди всегда готовы помочь. Практически всегда люди решают вашу задачу и прикладывают исходник. Сам же форум пестрит различными примерами и множеством полезной информации.
Конструктор подходит для всех и каждого. Как для полной разработки игр, так и для прототипирования. Он позволяет создать игру в любом 2D жанре. Я чаще всего использую Construct 2 для быстрой разработки во время различных игровых джемов.
Конструктор помог мне сосредоточится на других задачах и не тратить время на написание кода.
Несколько игр сделанные при помощи Construct 2:
Clickteam fusion 2.5
За спиной компании Clickteam стоят такие проекты как Klik and Play, The Games Factory and Multimedia Fusion. В начале 2014 они выпустили Clickteam fusion 2.5 (далее Cf) и экспортные модули для ios и android. В этот период произошло моё первое знакомство с движком. Cf сразу понравился своей простотой в освоении и многообещающими возможностями. Прошло уже больше года, за это время у меня накопилось много опыта которым хочется поделиться.
Данный конструктор был выбран по следующим причинам:
- Возможность быстро создавать прототипы;
- Нет необходимости в сложном программировании;
- Низкая цена, в steam со всеми модулями выйдет около 10000 рублей (в известных местах можно скачать бесплатно);
- Можно создать полноценный коммерческий продукт под ios, android.
По поводу последнего пункта у меня были сомнения, так как качественных игр выпущенных на Cf очень мало и многие знакомые разработчики весьма критически отзывались о создании полноценных игр в конструкторе. С опытом, сомнения развеялись. Итак, что же из себя представляет конструктор Cf.
Интерфейс
По сравнению с Unity или Cryengine выглядит устаревшим, но в плане удобства работы и скорости освоения заметно выигрывает. Всего 8 рабочих окон, а основная работа проходит в 4-х. Не смотря, на простоту структуры, некоторые продвинутые опции сложно найти.
Поддерживаемые платформы
На данный момент можно выпустить игру на ios, android, pc, html 5, Flash, Ouya.
Жанровые предпочтения
Разработчики Cf утверждают, что конструктор позволяет сделать любую игру в 2-d. Я бы сказал, что лучше всего он подойдёт для игр, действие которых происходит при статичной камере (матч-3, головоломки, флэппи бёрды, квесты, карточные игры и т. д.). Встроенный физический движок 2d-box даёт возможность поиграться с физикой. Например, всем известный cut the rope использовал 2d-box. Многие инди-разработчики делают платформеры на cf, но для такого жанра, я бы предпочёл Unity, ибо быстрее.
Возможности для разработки на мобильные платформы
При выпуске игры под ios, при помощи функций внутри конструктора вы сможете встроить в игру геолокацию, использовать акселерометр, встроенные покупки, банерную рекламу iad и Chartboost, zoom, multitouch, симуляцию джойстика. Встроенная настройка admob доступна только для андройда, а Unity ads придётся добавлять через xcode. Для ios так же поддерживается Game Center с лидербордами и ачивками, а так же мультиплеер с матчмэйкингом. По поводу последнего ничего сказать не могу. На Cf в основном сделаны сингловые игры.
Тестирование игры
Нажимаете f8 и игра запускается в отдельном окне. Для тестирования на девайсах нужно производить экспорт в xcode или apk. Тут скрывается неудобство работы с xcode. Cf работает только на Windows, движок нельзя запустить на Mac не имея виртуальной машины. Так как я работаю на винде, мне так же пришлось установить виртуальную машину, чтобы тестировать игры на реальных устройствах. Рекомендую VMware Player, в интернете имеется в свободном доступе. Так же, необходимо скачать актуальную версию эмулятора операционной систем под Mac. Для завершённых игр компиляция в apk и xcode файлы занимает не более минуты. Для прототипов это секунды.
Оптимизация под разные девайсы
При компиляции игры, нужно выбрать тип отображения на дисплее. Есть несколько вариантов хорошей оптимизации для портретной и альбомной ориентации. Я не буду сильно вдаваться в подробности, большую статью можно найти на форуме Cf, скажу только, что если вы в начале разработки не продумаете этот пункт, вас ждут проблемы. Несколько советов для понимания общей картины:
- Убирайте все элементы подальше от края экрана, дабы не потерять их из-за разных соотношений сторон на разных устройствах.
- Обычно при разработки интерфейса в Cf используют такие формулы: В начале кадра установить кнопке «старт» координату Y = «верхний край экрана+N пикселей», где N устанавливаем исходя из наших задач. Таким образом интерфейс всегда находиться на экране и не съедается на разных девайсах.
- Для разных устройств в Cf можно сделать одну версию игры, которая будет полноэкранной на всех ios устройствах. На android сложнее, но тоже реально.
Техподдержка
Я испытал самые тёплые эмоции обращаясь в Cf за помощью. Быстро, по делу, могут даже прислать готовый кусок кода, чтобы объяснить что-либо. В течении суток всегда приходил ответ. В выходные правда, не работают. Отдельно хочется выделить форум. Визуально он не очень ( напоминает www.gamedev.ru, простите за откровенность), но весьма информативный. Много готовых решений и полезных блогов. Поддержкой экстрактора для ios занимаются люди из Apple. Очень компетентные ребята.
Обновление движка и расширения
Внутри программы есть менеджер расширений который содержит множество бесплатных объектов облегчающих работу разработчика. Периодически там появляется что нибудь новое. В целом, движок развивается не так быстро как хотелось. Когда вышла ios 8, Cf не успела выпустить обновление экспортёра, из за чего разработчики обновившие свои девайсы лишились возможности тестировать на них игры. Около двух недель ушло на устранение данной проблемы. При чём оказалось, что не повезло только владельцам steam-версии движка. Ещё у Cf есть свой store который пока совсем мал. Мне нужно было купить в нём ассет «share для фейсбука», но всё оказалось не так просто. Оплата в store производиться через google wallet. Я покорно привязал свою карту к данному сервису, согласился со всеми условиями, но всё зависло. Многократное повторение процедуры не увенчалось успехом. Может у вас получиться.
Кто разрабатывает игры на Cf
Основная аудитория движка — любители, для которых создание игр хобби. Поэтому, качество большинства игр оставляет желать лучшего. Если сравнивать с прошлым годом, то количество разработчиков, желающих зарабатывать и делать хорошие игры в конструкторе выросло. Как правило, это инди-одиночки или небольшие команды. Надеюсь, что этот приток даст стимул команде Cf активней развиваться в направлении бизнеса. Так же, движок часто используют при создании прототипов механик для больших игр.
Популярные игры разработанные на Cf
Five nights at Freddy's — IOS, PC
Slayin – IOS
Fort Meow – PC
Pitiri 1977 — PC
OddPlanet Lite — IOS
Pocket Ninjas — IOS
Megacity — IOS
Atomic Santa: Christmas Omega — PC
Silence of the sleep — PC
Concrete jungle — PC
Six o'clock high – Android
Полный список тут — steamcommunity.com/app/248170/discussions/0/666828126951531546/
Итог
В настоящий момент я имею две игры собранные на Cf, последняя из них — дизайнерская головоломка My Maze для ios. Большим минусом оказалось то, что начав переговоры с издателем, возникла необходимость встроить некоторые sdk отвечающие за аналитику. И тут cf меня сильно подвёл, у издателя есть готовые решения для unity, а интеграция через мой конструктор либо очень сложная, либо вообще невозможна. Поэтому, придётся переделывать всю игру на unity или отказываться от издателя. Постарайтесь не допустить моей ошибки и заранее продумайте, какие sdk могут вам понадобиться и есть ли возможность встроить их в игру. Тем не менее, на мой взгляд, каждый геймдизайнер должен уметь работать в конструкторах. Это позволяет меньше зависеть от других членов команды, в первую очередь от программистов. К тому же, не всем играм нужно 3D, а инструментов для создания 2D игр Cf предоставляет достаточно. Важнейшим плюсом конструктора является скорость работы и легкость освоения.
Автор: TrueMefistofel