7 августа 2014 7.08.14 98 35K

Unity VS GameMaker: Studio

+144
Лучший блог недели
1000 ₽

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

Вашему вниманию предлагаются два игровых движка, с помощью которых вы можете попробовать свои силы в этом нелёгком деле. Помогут нам в этом Unity и GameMaker: Studio.

Unity позволяет полноценно работать как с 2D, так и с 3D элементами. Поэтому, чтобы сравнивать движки в одной «весовой категории», на 3D возможностях Unity не будет заостряться сильное внимание.

Удобство работы в среде
Работать удобно в любом из представленных движков, но при первом взгляде на интерфейс GMS вопросов почти не возникает. Он доступный и не имеет каких-либо сложных наименований или непонятных окон. Unity сложнее. Вкладок и окон в нём не слишком много, но всё же при первом знакомстве советую почитать вспомогательный материал.

Сравните сами:

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

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

Скриптинг
Игра – программа, так? Да, это так. Следовательно, чтобы написать игру, нужно знать язык программирования и уметь им пользоваться.

Интерпретатор — программа, построчно или покомандно обрабатывающая код и тут же выполняющая его. Компилятор сперва обрабатывает весь код, а после выполняет его.

GameMaker: Studio имеет свой собственный язык программирования, который называется GML. GameMakerLanguage — это скриптовый язык программирования, который использует интерпретатор, как и Java. Он медленнее, чем компилируемые C++ и Delphi. Изначально использовался совместно с drag-and-drop интерфейсом, но позже перенял все его функции. Синтаксис GML заимствует черты у C, C++, JavaScript, предоставляя аспекты объектно-ориентированного программирования, но использование структур и классов в полной мере невозможно. Когда происходит экспорт в стандартный Windows файл, тогда GMS совмещает все скрипты (в том числе и драг-энд-дроп логику) в один файл. Каждый раз при генерации запуска программы интерпретатор осуществляет запуск команд, содержащихся в GML-коде. В версию 1.2 был включён GameMaker Language Compiler, который переводит GML в C++ код. Это повышает производительность для игр со сложной логикой, но мало влияет на графическую составляющую игры.

GML — это опять же язык программирования, пусть даже и простой. Но если человек не хочет заморачиваться с изучением языка программирования, то GMS даёт ему хорошую альтернативу.

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

Unity имеет поддержку трех языков программирования: JavaScript, C#, Boo. Каждый из них был переделан компанией Unity под свои нужды (например, привязка кодов к unity-объектам), но в целом языки узнаваемы, хотя местами и имеют важные отличия. В UnityScript, например, тип Объект не может использоваться как массив.

Физические возможности
Оба движка для обработки физических 2D процессов используют один и тот же физический движок Box2D. В целом физические возможности их совпадают (трение, плотность, упругость, связи объектов, силы, столкновения и т.п.), но в Unity всё же присутствует больше возможностей для работы с физикой (большее количество связей объектов, возможность зафиксировать угол объекта и т.д).

В Unity имеется 3 вида физических 2D компонентов.
1) Collider2D
Коллайдер – компонент, проверяющий столкновения 2D объектов.

2) Rigidbody2D
Rigidbody – компонент, позволяющий физическому движку Unity обрабатывать объект. Он показывает, что на объект действуют силы, вращающий момент и гравитация, которые задают объекту направление и скорость движения. Он также позволяет объектам взаимодействовать друг с другом.

3) Joint
Joint – компонент, который связывает два объекта, имеющих физику Rigidbody.

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

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

 
 
 

Следует отметить, что Unity позволяет своим пользователям работать и в 3D среде. Для обработки 3D физики используется физический движок NvidiaPhysX. Но в одной сцене физические объекты 3D и 2D миров взаимодействовать не будут.

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

Графика и работа с анимацией
GMS имеет поддержку шейдеров, которые позволяют создавать эффекты воды, преобразовывать цвета, использовать фильм-фильтры и рельефное текстурирование. Вся графика в GMS объединяется в одно большое изображение – атлас (TexturePage). Атласы целиком загружаются в видеопамять. Ввиду уменьшения загрузки-выгрузки из видеопамяти повышается производительность. Кроме того, атласы полностью настраиваются: их можно отгружать и подгружать по мере необходимости, и даже автоматически создавать копии разного качества для разных платформ. Имеет простой встроенный графический редактор.

 

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

 

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

 

Цена
Оба движка имеют разные комплекты, отличающиеся ценой и содержанием. Но и бесплатные версии Unity и GMS позволяют делать весьма качественные проекты.

GameMaker: Studio имеет три комплекта: Standard (free), Professional ($99.99), Master Collection ($799.99). Следует отметить, что бесплатная версия является достаточно урезанной по сравнению с Professional и имеет ограниченную возможность портировки игр (Windows). Standard можно улучшить до Professional, а Professional до Master Collection путём покупки нужных модулей.

Unity имеет три основных комплекта: бесплатный, платный-разовый, платный-ежемесячный. Следует отметить, что на free-комплекте вы сможете портировать свои творения на все поддерживаемые платформы (Windows, Mac, iOS, Adnroid, Linux, BlackBerry), но возможности при разработке каждой отдельной платформы будут урезаны. Но даже при покупке профессионального комплекта вам всё равно нужно будет покупать дополнительные комплекты для Android и iOS, чтобы увеличить возможности при разработке проекта под эти платформы (Windows Phone 8 Pro, Windows Store Apps Pro, BlackBerry 10 Pro идут в комплекте с Unity Pro). Каждый из комплектов Unity Pro, Android Pro, iOS Pro будет стоить вам $1500, $75/month, а комплект Team License, облегчающий командную работу над проектом, обойдётся ещё в $500, $20/month.

Наглядные примеры

Итог
В результате можно сказать, что любой из этих движков отлично подойдёт для создания своей игры — мечты. Unity имеет более мощный функционал, но требует большей подготовки. Game Maker: Studio местами слабее, но имеет меньший порог вхождения. Каждый из движков имеет хорошую базу для создания на нём качественных игр, которые в будущем могут украсить собой полки онлайн-магазинов, таких как Apple Store, Google Play, PlayStation Store, Steam.

Хочу выразить благодарность пользователю Anu8is за оказанную помощь.

 

Лучшие комментарии

Если есть советы, пожелания или замечания, то прощу выражать их в виде аргументированных комментариев. Такие отношение к чужой работе приятно автору.
Косарь этому господину! =)
Не смотря на внушительные способности Unity в области 2D, движок всё-таки изначально разрабатывался для 3D проектов и эта сторона всё ещё очень сильно выделяется во время разработки игр. Game Maker же — заточенная для 2D среда, которая прекрасно обходится без объёмных элементов (если всё-таки надо — поработай ручками). Статья хороша, не спорю, но для сравнения выбрано немного не то, что в принципе можно было сравнить. Да, интерфейс в принципе похожий, да, физическая модель Box2D, да, поддержка эффектов «из коробки», но когда дело доходит до кода/тестирования/направления (между 2 и 3D), то Unity ну слишком сильно отличается от Game Maker, что их и сравнивать-то не получится.
Ну это больше ознакомительный материал. Если хочется что-то сделать — поищи гайды, учись по чуть-чуть, будет понятнее становится что да как.
С одной стороны, написать гайд — это хорошая практика для автора. Когда учишь, учишься сам. Но, с другой стороны, как объяснили люди выше — SG это не то место, где нужно публиковать гайды по Unity и GMS. Когда-нибудь, когда я в полной мере овладею GMS или Unity, я могу написать по нему гайд, но, не думаю, что буду публиковать его здесь.
После прочтения у меня возникла мысль, что вы сравниваете тёплое с мягким. :|
Начни с варкрафтовского редактора, пойдёт для начинания C:
Сам уже много лет пользуюсь Game Maker'ом, начиная с пятой версии. До Unity полноценно никак добраться не могу, освоил только простейшие вещи, а вот про GM мне есть что сказать.

Вот что я выделил бы в плюсы Game Maker'a:
1. Большое сообщество, куча уроков и просто изумительная справка. Серьезно. Даже во времена, когда GM еще был бесплатным, он обладал прекрасной документацией по каждой функции. Я начинал изучение движка во времена крякающего dial-up соединения, не имел доступа к ныне популярным видео урокам и туториалам, но справки и форумов оказалось достаточно для быстрого старта.
2. ГМ просто идеально подходит для быстрого прототипирования. Пришла в голову интересная идея/механика — пару минут и уже можно посмотреть как оно будет работать «в движении». Ввиду скорости создания проектов подходит для разработчика одиночки.
3. Функционала движка достаточно для создания любой 2D игры.
4. Язык GML прост и доступен. А если у человека есть база в виде книги «Программирование для чайников», то разобраться с функционалом будет вообще как два байта обосрать.
5. GM Studio обзавелся компилятором и мультиплатформенностью — игры можно экспортировать на iOS, Android, Windows Phone, Linux, Mac, Windows.

Из недостатков выделю:
1. Старомодный интерфейс (спорный пункт, т.к. вкусовщина)
2. Интерпретатор (компилятор для GM все еще является платным удовольствием, насколько я помню). Впрочем, не каждый день люди пишут на GM такую логику, что прям без компилятора никуда.
3. Кочующие туда сюда мелкие баги. В очередном релизе разработчики могут поправить старый баг и создать кучу новых, чтобы потом пол года игнорировать их, потом исправить, добавить новых и снова забить на их исправление и т.д.
4. Тяжело делать крупные проекты. Интерфейс никак не помогает в работе с большим количеством объектов, скриптов и прочих игровых внутренностей.

Сейчас как раз делаю на ГМ небольшой подарок девушке — сюжетную игрушку с мистикой и прочими бонусами, которые она любит.
https://yadi.sk/d/RbWG5OtoZiuqy — наглядный пример того, что можно сделать в Game Maker'e за месяц.
Был? Я и щас в нём работаю :D (Это вообще довольно актуально в данный момент :3)
если цель — в том, чтобы разобраться, то, опять же:
в одну харю даже самый минимально современный двиг ты не потянешь. Застрянешь на реализации того, что уже давным-давно само собой разумеется.
Так что лучше — хорошенько поковыряться в современных движках.
В 4-ом Анрыле, например, с лицензией за 19 баксов/месяц ты получаешь доступ к сорцам.

Но даже если ты принципиально не хочешь ориентироваться на имеющиеся движки в надежде «ща я стану новым Кармаком и напишу двиг, который всех поразит», то всё равно гораздо эффективнее будет просто прочитать эти книжки. Просто потому, что в наши дни даже сам Кармак не смог стать новым Кармаком.
Как бывалый юзер GMS хочу упомянуть, что без программирования-таки сложновато. Те же шейдеры пишутся ручками, да и задач, решаемых чистым drap and drop на самом деле довольно мало. Тем не менее, среда довольно удобная и, думаю, очень понравится начинающим художникам и дизайнерам. И да, еще Standard версию уже давно сделали бесплатной :3
Ну или между GMS и Construct 2.
Как сказали выше, было бы хорошо, если в продолжение к этому вышли небольшие туторы для начинаюших. Если не по юнити, дак хотя бы по GMS, ибо как не просто было бы там всё, а неподготовленные могут потеряться.
А надо ли? Зачем дополнительно увеличивать хаос в Интернете? Пускай лежат себе на хабре, GameDev'е и прочем gcup'е.
Туториалы и гайды это хорошая и полезная вещь, но на просторах интернета их достаточно много. По крайней мере азы работы в них рассматриваются достаточно подробно.
В варе был самый лучший редактор всех времен!
Подобные посты все больше и больше теплят во мне надежду на то что и я смогу заниматься геймдевом. Большое спасибо, и плюс тебе, друг =)
Лично я считаю, что гайдам и урокам по Game Maker на SG не место. Обзорные материалы, вроде этого, довольно полезны, но что-то более… Не поймите, конечно, меня неправильно, но это будет выстрел в пустоту. GM — это такая программа, которую надо просто качать и разбираться самому. Возникли затруднения? Есть подробная справка прямо в комплекте с программой. Совсем ничего не понятно? Будьте добры, хотя бы «Программирование для чайников» прочтите. Ну а для продвинутого использования на том же Хеллруме материала более чем.
Как бывалый юзер GMS хочу упомянуть, что без программирования-таки сложновато


Согласен. Но, например, сделать платформер с простенькой графикой таки можно). Для себя хотя бы. Сам такое делал, но широкой публике показывать стыдно Х)
Что? Куда? Зачем? Как? Почему?

Не объясняется в одном посте, какой бы объемный он не был.
Читай также