Выбор игрового конструктора

Доброго времени суток. С вами XsiOn

Сегодня, я постараюсь поведать о том, какой же игровой конструктор для создания своей игры лучше — Game Maker, Construct или же Unity. Какие минусы и плюсы конструкторов конкретно, и в общем целом.

Предисловие

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

GameMaker: Studio

Немного истории

2012
22 мая вышел Game Maker Studio, позволяющий разрабатывать приложения для Windows, Mac OS X и HTML 5. В августе YoYo Games объявили о введении сервисов монетизации с поддержкой AdColony, AdMob, Google Analytics, Google Play Licensing, iAds, MoPub, SupersonicAds. 2 октября программа стала доступна в продаже на платформе Steam. В ноябре был добавлен новый модуль для экспорта: Windows Phone 8.

2013
В марте вышел модуль экспорта в Ubuntu Software Center для Game Maker Studio. 17 мая разработчики объявили о том, что нативный модуль Windows 8 выходит из стадии тестирования и будет доступен во всех версиях Game Maker: Studio. До этого приложения под Windows 8 создавались трансляцией в JavaScript. 25 июля появилась версия 1.1.1076, включающая в себя модуль компиляции под Android. 13 августа вышла версия 1.1.1086, добавляющая модуль компиляции iOS и поддержку шейдеров, Tizen v2.2. SDK. 17 числа состоялся релиз версии 1.2.1113 с новым модулем YoYoCompiler.[3]

2014
6 июня Game Maker Studio: Standard стал совершенно бесплатен. При этом для новых пользователей Standard версии был изъят экспорт на Mac OS и при запуске игр будет появляться водяной знак YoYo Games. Для оплаченной Standard версии такие ограничения не действуют.

2015
YoYo Games была приобретена компанией Playtech. Причиной этому, по комментариям представителей самой YoYo Games, послужило то, что Game Maker: Studio не принес достаточно прибыли, дабы у компании были средства на его дальнейшее развитие. Однако не стоит думать, что YoYo Games просто пытается обзавестись легкими деньгами: опять же, по словам представителей компании, их первостепенной целью всегда было предоставить как начинающим, так и продвинутым девелоперам удобный и простой конструктор для разработки игр. Подкрепляют свои слова YoYo Games тем, что решение о выпуске бесплатной версии Game Maker: Studio Standard было принято далеко не только в маркетинговых целях.

На данный момент YoYo Games получила достаточное количество денег от инвестора (Playtech) и планирует выпустить Game Maker: Studio 2.0 в рекордно короткий срок. Предположительно релиз новой версии популярного конструктора состоится ближе к концу года.

Ключевые возможности и фичи

GameMaker: Studio позволяет писать расширения под множество платформ на соответствующих им языках. Поддерживаются следующие типы файлов расширений: gml везде, dll-библиотеки на Windows, Windows Phone, Xbox One, js-скрипты для HTML5, so-библиотеки на Linux и Tizen, dylib-библиотеки на Mac, prx на PS4, suprs на PSVita, а также специальные placeholder для iOS и Android. Есть возможность создать прокси-расширения для проектов на многих платформах, что позволяет использовать одинаковые названия функций в коде, но обращаться в библиотекам соответствующей платформы.

Имеются функции для работы с кодировками Base64, JSON, MD5, SHA-1, возможности распаковки ZIP-архивов, чтения и записи .ini, текстовых и двоичных файлов, управления директориями. Есть возможность взаимодействовать с сетью: коллективная игра по UDP, TCP, Bluetooth, отправка http-запросов, загрузка любых файлов, взаимодействие со Steam API и Facebook.

С версии 1.1.1086 добавлена поддержка шейдеров — эффективного инструмента управления отрисовкой, добавления графических эффектов и преобразований. GameMaker: Studio поддерживает вершинные и фрагменты шейдеры на языках GLSL ES, HLSL9, HLSL11 и GLSL.

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

GameMaker: Studio содержит множество математических функций для работы со скалярными и векторными величинами, включая тригонометрические вычисления, нахождение степеней, логарифмов, интерполяций, нормалей векторов, скалярных произведений. Имеется встроенный физически движок Box2D, набор функций для работы с ним, демонстрационные проекты Angry Cats и Angry Cats Space.

В отличие от GameMaker, Studio использует компилятор, а не интерпретатор кода, что убрало возможность выполнения чистого кода «на лету», но существенно увеличило производительность игр. Также есть дополнительный модуль YoYoCompiler, транслирующий GML-код в C++ и оптимизирующий его. Проекты, собранные с использованием этого компонента, показывают хорошую производительность с сотнями игровых элементов на уровне. Однако этот модуль доступен не для всех платформ.

Присутствует поддержка многих сервисов монетизации (таких как AdMob, Google Analytics, Google Play Licensing) из кода. Также имеется поддержка систем управления версиями — есть примеры интеграции с SVN, GIT, Mercurial.

В последних версиях появились множество опций отладки программ в новом окне The Debug Module, позволяющие ставить точки остановки, следить за выполнением кода, значениями любых переменных, конкретных объектов, содержимым буферов, количеством и временем выполнения разных скриптов.[2]

Плюсы и минусы GameMaker

+Скорость освоения начального функционала
+Интуитивно понятный процесс разработки
+Бесплатная версия с большими возможностями
+Кроссплатформенность
+Отличная расширяемость
+Сформировавшиеся огромное сообщество
+Отличная структурированная документация
+Интеграция со Steam

-Довольно много багов для среды разработки подобного уровня и цены
-Поддержка и интерфейс только на английском языке
-В крупных проектах может быть громоздким и неудобным
-Тяжеловесность и долгая отладка больших проектов
-3D возможности никак не развиваются и канули в лету
-Сменил уже третью компанию-владельца (т.е. возможная смена направления развития и ценовой политики)
-IDE доступна только под Windows

Личное мнение

С «Гамаком» я знаком ещё с 6-й его версии, в далеком прошлом обнаружив его на диске журнала «Лучшие компьютерные игры». Не буду скрывать, симпатия и тягость в плане игровых конструкторов у меня только к нему. И в плане выбора конструктора я довольно предвзят и консервативен – однозначно GameMaker. Это не то чтобы минус, а даже плюс, т.к. за то время пользования гамаком, и на настоящий момент, я от него не отвернулся. А это уже о чем-то говорит.

Если говорить о проблемах, с которыми столкнулся лично я, то можно перечислить следующие:
— как-то были проблемы с запуском IDE на Windows 7, грешил я тогда на что угодно, но не на GM, но через пару патчей проблему исправили, проблема была от меня не зависящая;
— при разработке объемного проекта с кучей ресурсов отладка превращается в беспрерывное чаепитие – подправил переменную и ждешь опять с несколько минут компиляции. Говорю, конечно, утрированно, но порой такое не редкость;
— местами не удачно организована структура – чтобы найти и исправить код, немого позабыв принцип его работы, нужно проштудировать все события в объекте. Так же разбивается общая картина кода в объекте;
— в Studio версиях убрана возможность работы с видео файлами, что наталкивает на борьбу через костыли.

Construct 2

Немного истории

Предыдущая версия Construct после релиза Construct 2 сменила название на Construct Classic[11]. К настоящему моменту она уже лишилась официальной поддержки разработчиков[12], однако продолжает поддерживаться энтузиастами. Впрочем, популярность её все еще высока, особенно в сфере разработки 2D и 3D-игр для операционной системы Windows. В отличие от Construct 2, версия Classic имеет открытый исходный код и является отличной бесплатной альтернативой таким платным аналогам, как Game Maker. Опыт разработки версии Classic был активно использован при создании Construct 2[13], хотя фактически последний представляет собой абсолютно новый конструктор, переписанный с нуля. В отличие от предыдущей версии Construct 2 использует OpenGL вместо DirectX, а игры используют WebGL (OpenGL в браузере) для быстрого рендеринга с аппаратным ускорением.

Ключевые возможности и фичи

Редактор Construct 2 написан на языке C++, а игры кодируются в Javascript. При экспорте проекта JavaScript минифицируется, однако есть возможность подключить Javascript Plugin SDK и модифицировать код вручную. Также плюсом является то, что Construct 2 имеет модульный дизайн, поэтому любые плагины или поведения, которые не используется в проекте, не включаются в скрипт, что помогает оптимизировать проект и сократить его вес.

На данный момент программа имеет более 20 встроенных поведений, включая Platformer, 8 Direction, Bullet, Car, Pathfinding, Turret, Drag’n’drop и т.д., которые облегчают процесс создания игры.

Construct 2 — это первый игровой движок, который официально поддерживает эффекты частиц (particle effects) на HTML5[7].

Встроенный игровой движок Box 2D Physics[8] дает возможность качественно моделировать законы физики и легко воспроизводить интересные физические эффекты. Кроме того, доступно множество плагинов[9], расширяющих базовые возможности программы. Тестирование кода на мобильных ОС можно производить сразу же, не прибегая к компиляции проекта — при помощи LAN и WiFi[10].

Плюсы и минусы Construct

+Крайне низкий порог вхождения
+Приятный, отзывчивый интерфейс
+В редакторе комнат имеется возможность работы со слоями
+Возможность создать что-то сложное, не программируя вообще
+Доброжелательное сообщество

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

Личное мнение

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

Unity 5

Немного истории

Июнь 2005, Unity 1.0.1. Первый выпуск.
Август 2005, Unity 1.1. Добавлена сборка игр под Windows и поддержка плагинов C/C++.
Декабрь 2005, Unity 1.2. Добавлены эффекты постобработки, рэгдолл, тени, встроенный скрипт управления персонажем, расширены возможности редактора скриптов.
Октябрь 2008, Unity iPhone 1.0. Unity приходит на iPhone.
Октябрь 2008, Unity iPhone 1.0. Начало официальных продаж Unity iPhone.
Март 2009, Unity 2.5.0. Добавлена поддержка Windows средой разработки, переработан редактор скриптов.
Апрель 2009, Unity приходит на рынок игр для Wii
Октябрь 2009, Unity получает инвестиции от Sequoia Capital в размере 5 500 000 долларов США.
Октябрь 2009, Unity 2.6.0. Indie-версия стала бесплатной.
Декабрь 2009, журнал Gamasutra назвал движок Unity одним из самых значительных участников на рынке игровых компаний[6].
Март 2010, Unity iPhone 1.6 Добавлена поддержка .NET 2.1, встроенная поддержка сети и прочие множественные улучшения.
Апрель 2010, Unity iPhone 1.7 Добавлена поддержка iPad.
Сентябрь 2010, Unity Technologies и Electronic Arts (EA) заключили контракт о многолетнем сотрудничестве[7].
Ноябрь 2012, Unity 4.0.0. Улучшена система анимации (добавлен скиннинг на GPU), освещения. Добавлены визуальные эффекты. Добавлена сборка игр под Linux и Adobe Flash. DirectX 11
Ноябрь 2013, Unity 4.3. Поддержка 2D-спрайтов, интеграция физического движка Box2D, возможность собирать игры для iOS в версии движка для Windows.
Март 2014, Unity 5. Новые шейдеры и интеграция с технологией глобального освещения в режиме реального времени Geomerics Enlighten. Это принесёт в игры появление реалистичного освещения и визуальных эффектов консольного уровня, а также математически точное отображение теней. Новые инструменты WebGL позволяют создавать в браузерах более продвинутые проекты с более высокой производительностью.
Март 2015, Полноценная Unity 5. (Выше перечисленное) + Добавление всех возможностей из Pro. версии в Free. а в Unity Pro. остались : Unity Analytics, Team License, Prioritized bug handling, Beta access, Dark Skin и другое. Скриптовый язык Boo был убран из пятой версии движка, как и примеры кода на официальном сайте документации.
По состоянию на лето 2013 года количество зарегистрированных пользователей Unity 3D выросло до 2 миллионов пользователей[8]. В основном это связано с тем, что indie-версия движка стала бесплатной.

Ключевые возможности и фичи

Редактор Unity имеет простой Drag&Drop интерфейс, который легко настраивать, состоящий из различных окон, благодаря чему можно производить отладку игры прямо в редакторе. Движок поддерживает три сценарных языка: C#, JavaScript (модификация), Boo (диалект Python). Boo убран в 5ой версии. Расчёты физики производит физический движок PhysX от NVIDIA.

Проект в Unity делится на сцены (уровни) — отдельные файлы, содержащие свои игровые миры со своим набором объектов, сценариев, и настроек. Сцены могут содержать в себе как, собственно, объекты (модели), так и пустые игровые объекты — объекты, которые не имеют модели («пустышки»). Объекты, в свою очередь содержат наборы компонентов, с которыми и взаимодействуют скрипты. Также у объектов есть название (в Unity допускается наличие двух и более объектов с одинаковыми названиями), может быть тег (метка) и слой, на котором он должен отображаться. Так, у любого объекта на сцене обязательно присутствует компонент Transform — он хранит в себе координаты местоположения, поворота и размеров объекта по всем трём осям. У объектов с видимой геометрией также по умолчанию присутствует компонент Mesh Renderer, делающий модель объекта видимой.

К объектам можно применять коллизии (в Unity т. н. коллайдеры — collider). Существует несколько типов коллайдеров:

Character controller — вид физической модели, созданный специально под использование его для игровых персонажей;
Box collider (физическая модель образует куб, в который попадает вся модель объекта);
Sphere collider (физическая модель образует сферу, в которую попадает вся модель объекта);
Capsule collider (физическая модель образует капсулу, в которую попадает модель объекта. В отличие от предыдущего типа размеры можно менять и по одной, и по трём осям сразу);
Mesh collider (физическая модель полностью повторяет реальную геометрию объекта);
Wheel collider (физическая модель колеса);
Terrain collider — тип физической модели, созданный специально для использования на объекте типа Terrain — земля, генерируемая редактором Unity с возможностями скульптинга и окрашивания местности.
Также Unity поддерживает физику твёрдых тел и ткани, а также физику типа Ragdoll (тряпичная кукла). В редакторе имеется система наследования объектов; дочерние объекты будут повторять все изменения позиции, поворота и масштаба родительского объекта. Скрипты в редакторе прикрепляются к объектам в виде отдельных компонентов.

При импорте текстуры в Unity можно сгенерировать alpha-канал, mip-уровни, normal-map, light-map, карту отражений, однако непосредственно на модель текстуру прикрепить нельзя — будет создан материал, которому будет назначен шейдер, и затем материал прикрепится к модели. Редактор Unity поддерживает написание и редактирование шейдеров. Редактор Unity имеет компонент для создания анимации, но также анимацию можно создать предварительно в 3D-редакторе и импортировать вместе с моделью, а затем разбить на файлы.

Помимо пустого игрового объекта и моделей, на сцену можно добавлять ещё такие объекты типа GameObject:

Система частиц;
Камера;
GUI текст;
GUI текстура;
3D текст;
Точечный свет;
Направленный свет;
Освещение территории;
Источник света, имитирующий солнце;
Стандартные примитивы;
Деревья;
Terrain (земля).
Unity 3D поддерживает систему Level Of Detail (сокр. LOD), суть которой заключается в том, что на дальнем расстоянии от игрока высокодетализированные модели заменяются на менее детализированные, и наоборот, а также систему Occlusion culling, суть которой в том, что у объектов, не попадающих в поле зрения камеры не визуализируется геометрия и коллизия, что снижает нагрузку на центральный процессор и позволяет оптимизировать проект. При компиляции проекта создается исполняемый (.exe) файл игры (для Windows), а в отдельной папке — данные игры (включая все игровые уровни и динамически подключаемые библиотеки).

Движок поддерживает множество популярных форматов, таких как:

.3ds, .max, .obj, .fbx, .dae, .ma, .mb, .blend для трёхмерных моделей;
.mp3, .ogg, .aiff, .wav, .mod, .it, .sm3 для звуковых файлов;
.psd, .jpg, .png, .gif, .bmp, .tga, .tiff, .iff, .pict, .dds для изображений;
.mov, .avi, .asf, .mpg, .mpeg, .mp4 для видеофайлов.
.txt, .htm, .html, .xml, .bytes для текста
Модели, звуки, текстуры, материалы, скрипты можно запаковывать в формат .unityassets и передавать другим разработчикам, или выкладывать в свободный доступ. Этот же формат используется во внутреннем магазине Unity Asset Store, в котором разработчики могут бесплатно и за деньги выкладывать в общий доступ различные элементы, нужные при создании игр. Чтобы использовать Unity Asset Store, необходимо иметь аккаунт разработчика Unity. Unity имеет все нужные компоненты для создания мультиплеера. Также можно использовать подходящий пользователю способ контроля версий. К примеру, Tortoise SVN или Source Gear.

Плюсы и минусы Unity

+Отзывчивый интерфейс
+Компания-держатель внушает доверие
+Хорош в работе как для разработки 2D, так и 3D игр
+Мощный движок, позволяет создавать грандиозные проекты
+Огромное сообщество, так же и русскоязычное
+Куча готовых вспомогательных библиотек и SDK

-Порог вхождения требует определенной выдержки
-Довольно специфичное устройство среды разработки, пользователи Blender не удивятся, а вот для остальных это будет испытанием
-Хай среди недалеких игроков в сторону игр на Unity, т.е. какой бы игра не была, к ней могут отнестись крайне скептический только из-за выбора Unity
-Требуется приложить усилия для приемлемой оптимизации
-Высокая цена

Личное мнение

О Unity говорить не приходится, он и так на слуху. На данный момент это топовый движок (или конструктор) для создания игр. Популярность он сыскал по некоторым причинам, например он бесплатен, удобен, имеет огромные возможности и кучу расширений. Да и конкурентов у него небыло вообще, а сейчас так же не особо много. Даже такие гиганты как UE и Crytek сделали свои движки бесплатными именно из-за успеха Unity.
Относительно недавно этот движок был исключительно для разработки 3D игр, но сейчас на нем довольно удобно можно делать и 2D игры! Правда след “3D only” все же остался, и разработку 2D игры вы будете вести в 3D пространстве. Удобно это или нет, нужно это или нет, не мешает ли это вообще? – Дело каждого. Но факт есть факт — Unity держит лидирующие позиции в сфере игровых движков/конструкторов, и это точно не просто так.

Конструктор или движок?

Игровые конструкторы. Не позор ли делать игру на игровом конструкторе? Конечно лучше же выбрать «Игровой движек» он дает больше возможностей и контроля над проектом, но так же он и забирает намного больше времени в том же освоении и уже в процессе разработки чем любой конструктор.
Если бы конструкторы были не охчень, они бы не взыскали такую популярность и быстро бы загнулись. Дело в том что в конструкторах пытаются соблюсти баланс между творчеством и работой, в то же время разработа игры на движке – это скорее только работа.
Ещё одной мыслью закончу данный абзац: торчит гвоздь, его можно забить молотком, а можно гаечным ключем. Это я к чему? Будь то конструктор или движок, в первую очередь это инструмент. И выбор того или иного конструктора должен основываться на требуемых возможностях. Если вы ходите создать средненькую 2D игру то ничего позорного в этом нет, если вы выберите конструктор, а может даже толку будет больше, ведь помимо концентрации на коде останется больше времени для полировки граф. стиля игры, звукового сопровождения и прочего.

Выводы

И так, у нас есть GameMaker, Construct и Unity.

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

Совсем уж новичкам и дизайнерам можно посоветовать — Construct.
Людям желающим программировать, но и не углубляться в дебри — GameMaker.
Людям которым нужен колоссальный простор и возможности, а так же которые хотят освоить разработку как 2D так и 3D — Unity.

Лично я, пока, остановился на гамаке. ИМХО, для создания игр в 2D это лучший игровой конструктор!

Статья еще в разработке

Раздел: Авторские статьи.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *