Gamemaker studio 2 какой язык программирования используется

Обновлено: 04.07.2024

Изначально склонялся к Unity 3D, но заинтересовался gamemaker studio 2.
Почему:

Во первых говорят, что gamemaker studio 2 легче для начинающих. Говорят - сам не проверял.
Во вторых лицензия студии с разработкой под винду стоит около тысячи рублей. Плати тысячу и получай 0 ограничений.
Когда в юнити есть ограничения стартовой версии - экран загрузки и т.д. Да Unity 3D, бесплатен в стартовой версии вплоть до дохода 100 тыс баксов в месяц, но ограничения есть.
В третьих - в gamemaker studio 2 меньше возможностей, чем в Unity 3D. Но это, в моем случае, к лучшему т.к. мне не нужны все возможности - куча ОС и платформ и т.д.
Да и gamemaker studio 2 выглядит более простым и производительным инструментом, для разработки небольших игр.
Тот же Unity 3D, как редактор кода предлагает VS или монодевелоп. И два языка программирования - JS и CSharp.
А хочется один язык и один редактор. Причина - уроки, информация. Тут на CSharp, там на JS.

Ну а минусом вижу , что gamemaker studio 2 использует свой язык программирования gml.
Свой язык программирования, который сделала студия - плохо. Видели, проходили, знаем.
Видели "прекрасный" язык 1С. А вот CSharp уже другое дело.
Также интересует возможность сетевой игры. Как у этих движков обстоят дела с сетью? Как это вообще реализовано?

Какой движок лучше для начинающих Unity 3D или gamemaker studio 2?

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

Знаю-разбираюсь в html,css,php,немного JS-ajax-jquery,linux. Из языков, сред, фреймворков. /до кучи/ - Delphi,Qt,CSharp,VS,чуточку кросплатформенной разработки. Также имею представление и начальные навыки в фотошопе и 3д максе. Так что в принципе "в теме". Объяснять азы - что есть сокет, переменная, массив. или уровни модели оси не нужно.
Да и большинство графики стимовской индюшатины вполне могу нарисовать.

GameMaker: Studio - это полноценный инструмент для разработки игр, в котором представлены редактор уровней, менеджер ресурсов, редактор кода и собственный скриптовый язык, известный как GameMaker Language (GML). Ранние версии GameMaker были очень простыми и многие люди помнят их, как в основном для начинающих - сделать с ними коммерческую игру было бы похоже на шутку. Теперь все изменилось, с несколькими коммерческими успехами, включая некоторые очень нашумевшие игры.

Для кого предназначен движок GameMaker: Studio?

В Master коллекции движка GM:S реализована кроссплатформенная совместимость для настольных компьютеров, HTML5 и мобильных устройств (как для Android, так и для iOS). Кроме того, имеется возможность интеграции системы управления версиями и монетизации (например, реклама и покупки в приложении). Общая стоимость master коллекции составляет около $800 долларов на момент написания этой статьи. Поэтому этот движок идеален для:

  • Любого желающего кто интересуется кроссплатформенной разработкой
  • Инди-команд разработчиков с небольшим бюджетом

Низкий порог вхождения в GM:S возможен благодаря интеграции drag-and-drop интерфейса. Таким образом, это фантастический инструмент для людей с небольшими знаниями программирования в качестве первого опыта; этот интерфейс является отличным способом изучить процесс выполнения программы и некоторую базовую логику.

Благодаря своим возможностям управления, GM:S позволяет разработчикам быстро создавать и запускать очень простые игры, что отлично подходит для игровых джемов и создания игровых прототипов.

Что в нем хорошего

GM:S очень хорош в управлении ресурсами, включением ресурсов в код, обеспечивает легкий способ изменения логики игровых объектов и событийное программирование.

Управление ресурсами

Как только разработчик создал спрайт, добавить его в GM:S можно за несколько кликов. После импорта спрайта, модификации могут быть сделаны уже в GM:S.

Creating a sprite

Создание спрайта.

Интеграция ресурсов в код

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

Изменение логики игровых объектов и событийное программирование.

Редактор игровых объектов — это отличное средство обучения, для новичков в разработке игр, и предоставляет удобный способ изменения логики игрового объекта. Как вы можете видеть на этом скриншоте, GM:S позволяет вам писать код для конкретных событий:

Modifiying game object events
Modifiying game object events
Modifiying game object events

Модификация событий игрового объекта.

Для кого это не подойдет?

  • Людям, которые хотят создать полнофункциональную игру, нажатием нескольких кнопок. Для великих игр потребуется время.
  • Для тех, кто хочет разработать следующую грандиозную MMO. Создание сетевых игр является относительно новым направлением для GM:S, и для создания многопользовательских игр есть инструменты получше.
  • Элитные программисты которые требуют, чтобы их язык не мог управлять собственной памятью. GM:S - это не C/C++, и не является конечным языком, ориентированным на производительность. (Нельзя сказать, что производительность здесь плохая, просто C/C++ по-прежнему остается королем этой категории.)

Что в нем плохого

GML не является объектно-ориентированным языком в прямом смысле этого слова. Существуют игровые объекты, у них есть свойства, и можно даже создавать отношения типа родитель-потомок. Однако объекты не имеют методов. Для выполнения операции над объектом, вам нужно будет использовать его идентификатор экземпляра внутри скрипта. Вначале это может вызвать путаницу для тех кто пришел из объектно-ориентированных языков.

GM:S поддерживает 3D, но это не главное. Нет 3D-редактора, отсутствует программа импорта 3D моделей, а код для работы с трехмерной графикой довольно запутан. Если вас интересуют 3D-игры, я рекомендую вам использовать другой инструмент. В будущем 3D может стать более приоритетным для YoYo Games (компании, владеющей GM:S), но на данный момент это явно последнее в списке.

Где я могу получить GameMaker: Studio?

Ниже приведено сравнение различных версий GameMaker, взятых с веб-сайта YoYo Games:

feature compare
feature compare
feature compare

Как вы видите, бесплатная версия (Studio) довольно ограничена, но это отличный способ увидеть рабочий процесс и расположение инструментов, а также потратить некоторое время на изучение языка.

Обновление: Бесплатная версия GameMaker: Studio теперь та же, что и стандартная версия! Для получения дополнительной информации см. GameMaker: Studio будет бесплатной.

Стандартная версия отлично подходит для разработчиков одиночек, которые только планируют разработку компьютерных игр; Профессиональная версия идеально подходит для небольшой команды разработчиков планирующих переходить в конечном итоге на кроссплатформенную разработку, поскольку они могут добавлять различные модули с течением времени после получения некоторого дохода; и Master Collection отлично подойдет для небольших команд, которые являются частью созданных студий, и хотели бы использовать кроссплатформенную разработку с самого начала.

GM:S также доступен в Steam, но я бы рекомендовал не покупать его там, так как YoYo Games не знает, что вы его приобрели, и, следовательно обладателям их продукта будет больше хлопот в отделе обслуживания клиентов. Кроме того, они иногда предлагают дешевые апгрейды для тех, у кого уже есть определенная версия GM:S, и они не могут дать то же обновление пользователям купившим в Steam. Кроме того, если вы покупаете у Steam, то необходимо войти в Steam, чтобы запустить GM:S, а это может раздражать.

Обучение GameMaker: Studio

GM:S предлагает два различных способа создавать игры. Первый это так называемый интерфейс Drag and Drop (сокращённо DnD). Он довольно мощный и позволяет создавать сложную логику. Однако, он не такой мощный, как второй вариант: использование языка программирования GameMaker Language (сокращённо GML). GML - это прекрасный язык сценариев, который может делать все, что может делать DND, и многое другое.

Начало работы

После того, как вы загрузили версию движка GM:S которая соответствует вашим потребностям, вам следует ознакомиться с учебными материалами, которые поставляются вместе с GM:S. Их можно найти во вкладке Tutorials после того, как вы откроете GM:S.

В начале уроков будет показано, как использовать drag and drop интерфейс, а более поздние руководства начинают охватывать язык программирования GML. Самое приятное в предложенных уроках - это то, что они фактически добавляют окно к интерфейсу, в котором вы узнаете, как создавать каждую игру, поэтому вам не нужно обращаться к веб-странице - все доступно изложено для вас в GM:S!

Для самого продвинутого обучения можно посмотреть демки на вкладке Demos после запуска GM:S. Они не откроют окно обучения, но они предоставляют доступ ко всему используемому исходному коду, чтобы можно было просматривать его, запускать отладчик и наблюдать за тем, что происходит, так что вы получите хорошее представление как использовать их методы в своих играх.

Руководство


Руководство в программе GM:S

Если вы выполняете поиск как в прилагаемом руководстве, так и в онлайн-руководстве и не можете найти ответы, не бойтесь! На reddit существует большое сообщество /r/gamemaker и есть официальные форумы. Кроме того, имеется отличный сайт полон инди-разработчиков, некоторые из них часто используют GM:S на форумах TIG. Эти сообщества полны полезных людей, поэтому не бойтесь задавать свои вопросы!

Расширения

Если вам не хватает встроенных функций движка GameMaker, не волнуйтесь; он расширяемый! Бесплатная версия не позволяет использовать расширения, но в платной версии это возможно.

Что могут делать расширения?

Расширения добавляют новую функциональность, изначально не предусмотренную YoYo games. Вот некоторые примеры:

GiiMote - позволяет разработчику интегрировать WiiMote элементы управления в свою игру, добавляя функции, которые опрашивают состояние WiiMote (положение и нажатие кнопок).

FX Creator Extension - упрощает создание таких эффектов, как погода, лучи и брызги воды.

Взаимодействие с базами данных с помощью SQL - позволяет вашей игре подключиться к базе данных SQL, получить данные в виде строки, а затем использовать их в игре. Расширение добавляет такие функции, как TestDatabaseConnection и ExecuteSQL так, что вы можете получить данные обратно в виде двух строк кода.

Одно серьезное ограничение - некоторые расширения несовместимы с мобильными платформами.

Где найти расширения

Самые лучшие места, которые я нашел, это официальный сайт ресурсов и неофициальный сайт под названием GMToolbox.

Как их установить

  1. Необходимо загрузить расширение - это должен быть файл .gex .
  2. Щелкните правой кнопкой мыши папку Extensions в GM:S и выберите Add Existing Extension.
  3. Это должно вызвать диалоговое окно, и в правом нижнем углу вы увидите кнопку с надписью Install. Нажмите ее.
  4. Откроется другое диалоговое окно со списком установленных пакетов (возможно, пустым). Справа от этого окна есть кнопка, которая снова с надписью Install. Нажмите ее.
  5. Это открывает еще одно диалоговое окно; перейдите в папку, в которой сохранен файл .gex , щелкните его и нажмите кнопку Open.

Учебные ресурсы

Уроки инди-разработчиков

Список уроков Chevy Ray - Chevy Ray является разработчиком Flash-игрового движка FlashPunk, частый соперник на Ludum Dare и разработчик нескольких классных игр. Он написал несколько уроков по GameMaker, и это подборка тех его материалов, которые он считает лучшими. Уроки охватывают такие темы, как масштабирование вида, оптимизация скорости, параллакс-скроллинг.

Серия уроков Derek Yu's - Derek Yu является членом TIGSource и разработчиком Spelunky. Эта серия уроков для более старой версии GameMaker, но вы по-прежнему можете легко пройти ее. Это полное пошаговое руководство по созданию космической сайд-скроллер стрелялки; по мере создания вы узнаете, как работают игровые объекты, как создавать прокручивающиеся фоны, как создавать спрайт шрифты и множество других замечательных тем. Обязательно к прочтению.

Другие уроки и руководства

Официальные уроки - официальные уроки посвящены созданию нескольких игр разных стилей (некоторые из них 3D-игры, поэтому эти уроки могут быть особенно глубокими, если вы будете использовать GM:S). Кроме того, имеется урок по созданию многопользовательских игр, который, по моему мнению, является одним из лучших в Интернете по изучению создания многопользовательской игры в GM:S.

Я рекомендую их для людей, которые хотят разработать определенный тип игры и желают узнать как разрабатывать игры подобного типа, но если вы ищете урок для начинающих, я рекомендую уроки Derek Yu's.

Также ознакомьтесь с официальными и неофициальными руководствами, поскольку они дают большой справочный материал.

Становимся профессионалом

Несколько GameMaker игр стали коммерчески успешными, и есть много других великолепных GameMaker игр, которые являются прекрасными примерами того, что возможно создать используя GM:S.

Отточеные игры

Spelunky - оригинальная версия Spelunky была создана в GameMaker; более новая XBLA версия и новая ПК-версия игры, нет. Это коммерческий успех, версия, созданная в GameMaker, бесплатная.


A Nation of Wind - эта игра скрытый драгоценный камень и в нее стоит определенно поиграть.


Dustforce - вышла в Steam, это не был огромный коммерческий успех, но тем не менее, это отличная игра!


Коммерческие хиты





Заключение

GameMaker: Studio отлично подходит для новичков и профессионалов. Его великолепный код и функции управления ресурсами, в сочетании с относительно низкой ценой, делают его великолепным игровым движком для небольших команд и независимых разработчиков, обладающих приличным опытом программирования, и его доступность, и событийность, и также система drag-and-drop на основе действий, делает его отличным движком для тех, кто практически не имеет опыта программирования.

Надеюсь, вам понравилось читать этот обзор, и теперь у вас есть хорошая идея, как начать работу с GM:S. Если вы считаете, что я, что-то упустил или вам нужна дополнительная информация, не стесняйтесь, напишите мне в комментариях. Удачи вам на вашем пути разработчика игр!

Важное замечание: в этой статье я говорю о том GML, который был в Game Maker 8.1, потому что к GML в Game Maker Studio не относится добрая половина этого текста (причём та половина, которая описывает его уникальные возможности — уже, как понимаете, бывшие). Также я говорю об IDE той же версии 8.1, которая с 2011 года изменилась по большей части в сторону кросс-платформенных настроек, поддержки костной анимации и чего-то совсем уже отстранённого от её настоящих проблем. Таковые я в этом тексте упомяну в деталях, дабы попытаться развеять несуразное распространённое мнение о том, что в GM уже "всё за вас сделано".

Прежде всего, хочу заявить, что GML — весьма недооценённый язык программирования для создания игр, использования всей мощности которого я не видел ещё ни в чьём исполнении. Я не имею в виду, что он позволяет сделать любую игру за три строки кода, и также я не имею в виду, что его синтаксис позволяет программировать игру как-то особо быстро. Однако посмотрите, что есть в GML:

1. Интерпретатор кода на лету

Почему этого не было? Так естественно, для этого необходимо, чтобы каждый автор игры сделал такую лазейку, в виде всего лишь одного execute_code при запросе либо просто при старте игры. Таких игр мне не известно ровно ни одной.

Единственный случай, когда я увидел использование внешних файлов с целью описания игровой логики, принадлежит перу того, кто ныне известен как SaintHeiser. Этот проект должен был переиграть механику Megaman Battle Network на новый лад, но так и не взлетел после прототипирования, а сама идея расшаривать код во внешние папки была отброшена навсегда.

2. Механизм добавления событий

С помощью встроенной функции object_event_add вы можете добавить любое событие в любой объект игры. На деле это значит, что ваши объекты по ходу игры могут получать такие возможности взаимодействия, которых изначально в них запрограммировано не было, а в теории — даже и не предсказанные вами изначально, например — полученные в результате симулированного генетического отбора. Кроме "обычного" поведения объекты GM могут иметь мета-поведение, регулирующее правила видоизменения их текущего поведения.
Естественно, этот концепт настолько экспериментален, что его так никто и не использовал, хотя это первое, что приходит в голову, когда узнаёшь про такую возможность GML. Соединяя это с упомянутыми выше возможностями интерпретации кода на лету, получаешь вообще немыслимый комбинационный взрыв вариантов взаимодействия не только внутри одной игры, но внутри серии игр, объединённых неким языком или стандартом взаимодействия. Можно запрограммировать игру, которая является неким хабом игр, и каким-то образом соединяется с другими играми, запущенными в этот момент, которые осуществляют конструктивные либо деструктивные действия по отношению друг к другу. Почему бы не заставить сами игры сражаться друг с другом? Слишком абстрактно? Эх, какие вы зануды.

Используя event_perform_object можно также заставить объект выполнять события совсем другого объекта как свои собственные, а функции variable_*_exists позволяют проверять, существуют ли указанные переменные в текущем контексте выполнения. То есть, если переменной нет, мы её можем всё равно объявить прямо на месте, и она появится.

Кроме того, разбор (парсинг) строк кода для выполнения на лету это громоздкая операция, но можно легко ускорить выполнение кода, расположенного во внешних файлах. Достаточно создать объект и задать ему нужный код, который будет разобран только однократно — при создании соответствующего объекта, и будет выполняться на скорости, равной скорости обычного "родного" объекта проекта. И это кэширование даёт серьёзную разницу.

Однако, на этом все аж два пункта неиспользованных возможностей заканчиваются, и начинается длинный ряд недостатков GML и его родной IDE, которые рано или поздно были с распростёртыми объятиями встречены всеми серьёзными разработчиками на GML, и которые ложатся серьёзным грузом на чашу весов, на другую чашу которых народной молвой поставлен, приклеен, прикручен и приварен аргумент "всё сделано за вас".

Почему GML уродлив?

Нет пользовательских структур данных

Уточняю — "пользовательских", потому что встроенные структуры данных есть, и включают в себя: стек, очередь, список, карту (словарь), очередь с приоритетами и некую сетку, смысла применения которой я так и не понял, и уверен, что никому она в GML не нужна.
Символ точки в коде GML используется (помимо очевидного разделения целой и дробной части вещественных констант) только для адресации переменных объекта. Методов у объекта GM нет, и к событиям объекта обращаться тоже нельзя через точку, но "вызывать" их можно через event_perform_object.
Можно имитировать структуры данных, создавая свои объекты, которые будут хранить ту или иную структуру, и действительно адресовать их составляющие через точку, однако всякий объект GM автоматически содержит в себе все встроенные переменные, касающиеся его отображения на экране, двухмерной физики перемещений и столкновений, использования путей и временных линий событий, и вроде чего-то ещё. Как следствие, такая имитация будет неслыханно тормозить, если этих объектов понадобится много.
Вообще-то огромное количество встроенных переменных и функций выглядит так, словно там вместо прочерков должны быть точки. Возьмём, например, переменные фонов:

background_color Background color for the room. background_showcolor Whether to clear the window in the background color.

background_visible[0..7] Whether the particular background image is visible.

background_foreground[0..7] Whether the background is actually a foreground.

background_index[0..7] Background image index for the background.

background_x[0..7] X position of the background image.

background_y[0. 7] Y position of the background image.

background_htiled[0..7] Whether horizontally tiled.

background_vtiled[0..7] Whether vertically tiled.

background_xscale[0..7] Horizontal scaling factor for the background. (This must be positive; you cannot use a negative value to mirror the background.)

background_yscale[0..7] Vertical scaling factor for the background. (This must be positive; you cannot use a negative value to flip the background.)

background_hspeed[0..7] Horizontal scrolling speed of the background (pixels per step).

background_vspeed[0..7] Vertical scrolling speed of the background (pixels per step).

background_blend[0..7] Blending color to use when drawing the background. A value of c_white is the default. Only available in the Standard Edition!

background_alpha[0..7] Transparency (alpha) value to use when drawing the background. A value of 1 is the normal setting; a value of 0 is completely transparent.

То есть то, что в широко принятой практике было бы адресовано как Background[i].Visible, здесь выглядит несколько мутировавшим — у нас не массив заданных структур, а массив переменных структур без описания самих структур. И все аналогичные "структуры данных" тоже должны использоваться именно так, в виде слабо связанных наборов переменных. Впрочем, даже если бы в GM было иначе, следующая проблема (про точки) никуда бы не делась.
Встроенных типов данных в GML всего два: числа и строки. В связи с этим никогда не возникнет проблем с приведениями целого числа к вещественному, либо наоборот.
null отсутствует как таковой, но есть ключевое слово noone, обозначающее "никакой объект", а instance_exists позволит удостовериться в существовании объекта.
И нет, нельзя передавать в функцию вычисления расстояния объект точки в пространстве, нужно передавать отдельно каждую их координату. Впрочем, это невозможно ещё и потому что в GM нет указателей. При том что можно обращаться к любому объекту через его имя (строку) либо идентификатор экземпляра, указателей никаких не существует.

Нет подсказок после точки

Во всякой современной IDE это есть, а здесь можно писать код в Блокноте — разницы особой не будет, если родные функции GM давно известны. Справедливости ради стоит заметить, что в IDE есть автодополнение для названий встроенных переменных и функций, однако все переменные, которые созданы внутри проекта игры (а ведь это именно то, что меня интересует в первую очередь), ей неизвестны, и это можно понять — в GM их можно объявить в любом месте, и со стороны IDE невозможно предугадать, по какому маршруту выполнения кода пойдёт игра, и особенно — какие локальные переменные делать доступными в скриптах, если неизвестно из каких объектов они будут вызваны.

Ограниченные массивы

Нельзя использовать индексы более 32000, индексов может быть не более двух, и весь массив не может содержать более 1000000 элементов. Вложенных или ступенчатых массивов — не существует здесь (впрочем, это — проблема отсутствия пользовательских структур данных, описанная выше). Это искусственное ограничение обычно не портит никому жизнь, но только до тех пор, пока не понадобится использовать третье измерение (причём опять же, если вам достаточно 30x30x30, это легко, но дальше вас ждёт алхимия), или хранить поток управления игрока без сжатия, длиной более чем на 10:40==640 секунд (32000/50FPS для примера). Отсюда вырастают странные костыли, начиная с практики использования массива длиной в 1000 в качестве трёхмерного, индексируя его через три десятичные цифры от 000 до 999, и до специфической DLL, позволяющей работать с массивами любых размерностей и объёмов. DLL для поддержки массивов, никаких шуток.

Нет механизма исключений

Всё, что вы можете сделать — это программировать всю игру так, чтобы она работала без ошибок. Вы можете отключить уведомления об ошибках, но если вы относитесь к геймдеву серьёзно, одно другого не лучше. Кстати, я был удивлён, когда коммерческий проект, Hotline Miami, швырнул на экран ошибку, выдающую его GM'овское происхождение.
Однако, и обнаружение ошибок в GM имеет свои недостатки. Если перед наступлением ошибки был изменён контекст вызова, отладчику до этого нет никакого дела, он помнит только начальную точку вызова, а дальше — разбирайтесь сами. Для чайников: если вы сделали execute_string, внутри которого ошибка, то отладчик вам укажет только на сам execute_string, начисто забыв про его аргументы, где-то в глубине которых (а возможно и в глубине функции, которая вызвана ещё и дальше оттуда) и находится причина ошибки.

Нет статических объектов

Нет именованных параметров у функций (в случае GML — скриптов)

Все параметры именуются через argument0, argument1, . argument15 (в ранних версиях GM их было меньше). Конечно, можно переприсваивать значения переменным со своими названиями, делая что-то в духе x=argument0; y=argument1;, но это чревато снижением производительности при каждом вызове. Почему-то так часто в программировании: либо что-то работает быстро, либо что-то имеет понятный исходный код. И это логично в ассемблере, но не в GML — хватило бы одного стандарта, предписывающего, что скрипт GM должен начинаться со строки вида //name1 name2 name3 . и IDE распознавала бы эти имена, а перед компиляцией просто-напросто заменяла все их на те самые argumentNN, и этой проблемы бы не было.

Нет множественного наследования

Обычное наследование с переопределением событий есть, но — никаких интерфейсов или утиной типизации; каждый объект выполняет только то, что сам содержит, либо наследует от одного конкретного объекта. Если вы хотите максимально разграничить способности в игре, то объект в GM не может просто так бегать, стрелять и плавать: он может унаследовать одно из этих действий, лично имплементировать второе, и всё. Но это только если программист пытается действовать по законам Настоящих Языков Программирования. А с другой стороны, как я уже говорил, объект GM может выполнить событие любого другого объекта того же проекта. Это даже не утиная типизация, это полная анархия, которую может грамотно использовать хорошо программирующий человек. Попытки использовать это кривыми руками, в отличие от традиционных механизмов множественных наследования в традиционных языках программирования (потому что для апофеоза в последних нужно иметь ещё и кривые мозги), заканчиваются довольно печально. Помножьте это на следующую проблему, и будет совсем жутко:

Нет пространств имён

Если вы хотите писать на GML вдвоём (Втроём? Вы в здравом уме. ), вам придётся либо называть объекты и их переменные по заранее оговоренным правилам, например дописывать к их названиям приставки, определяющие автора, или какие-нибудь мнемоники их применения; либо просто надеяться, что ваш объект под именем obj_bonus будет единственным во всём исходнике. Более того, из-за глобальной видимости имён совпадать не должно ни одно имя ресурса ни с одной переменной внутри объектов (включая встроенные), и наоборот, иначе всё придётся переименовывать. Разумеется, вручную. К счастью, совпадения имён ресурсов можно проверить автоматически в IDE, однако с переменными такого нет (напомню: "со стороны IDE невозможно предугадать, по какому маршруту выполнения кода пойдёт игра"). Отсюда возникло правило хорошей практики на GML: добавлять к незваниям ресурсов приставки, которые дублируют название их категории. Поэтому спрайт будет называться spr_bonus, объект — obj_bonus, а звук — snd_bonus. Это, кстати, не недостаток языка, а именно недоработка IDE, в которой давно пора бы это автоматизировать.

— Почему профи C++ не любят GML?
— У них не получается написать заголовок цикла.

В GML нет конструкции for (i=0; i<length; i++), так как нет оператора ++.

Game maker studio является хорошим кроссплатформенным движком-конструктором для создания 2D игр. Движок имеет очень простой и понимаемый интерфейс, но, если у вас возникнут сложности с его освоением, тогда вам поможет большое количество документации на русском языке, видео уроков и форумов по работе и созданию игр на данном движке.

Редактор Game maker Studio дает возможность создавать игры не только 2D игры, но и применять 3D графику. Стоит заметить, что возможность создания 3D игр не будет вас радовать крутой современной графикой или высокой степенью оптимизации, поэтому всё-таки данный движок стоит использовать как платформу для создания качественных 2D игр.

Движок позволяет создавать 2D игры с применением собственных спрайтов (графические объекты в компьютерной графике), звуков и анимации, которые так же можно создать и редактировать в Game maker studio.

Неотъемлемым плюсом редактора Game maker studio является кроссплатформенность – это способность создавать собственные игры для разных платформ для ПК (Windows, Mac OS, Ubuntu), мобильных (Android, Amazon Fire, iOS, Windows 10 Mobile), Web (HTML5) и Игровых консолей (Xbox One, PlayStation 4).

Нельзя не заметить встроенный магазин спрайтов, звуков, карт, анимации и т.д. Это дает возможность быстро и просто создавать игры, не отвлекаясь на создания отдельных частей, таких как вид персонажа или его анимация.

Для начинающих

Game maker studio подойдет для амбициозных людей с интересными идеями по созданию прототипа игры. Сейчас большая проблема хорошей идеи для создания игры является в её реализации, так как для этого необходимо знания языков программирования. Этот движок даёт возможность создания игры без прибегания к программированию, написанию скриптов.

Очень хорошо подойдет для первого тестового создания механики задуманной игры, так как главное для начала понять интересен ли будет сам gameplay, и только после тестирования можно будет приступать к подробному созданию и улучшению графической части игры. Вот для таких целей и подойдет Game maker studio, она даёт возможность быстро и легко реализовать такого рода задачу.

Drag and Drop (DnD ™) это графическая среда разработки, которая идеально подходит для начинающих или тех, кто более визуально или художественно ориентированы. С помощью DnD возможно создать игры без написания скриптов, используя только интерфейс программы.

Так же для начинающих в работе Game maker studio поможет русифицированный интерфейс, который можно найти на форумах этого движка. На официальном так же присутствует большое количество документации и инструкций по работе с движком.

Для профессионалов

Но не стоит говорить, что движок Game maker studio не будет интересен для профессиональных Game разработчиков. В Game maker studio есть свой собственный язык программирования GML, который написан на Delphi и имеет синтаксис он Java Script и Pascal. При создании игры с помощью GML языка программирования открывается на много больше возможностей нежели через графический редактор программы.

Обзор интерфейса

Последней версией Game maker studio №1 была 8.1.140, на сегодняшний день она перестала поддерживаться, так была выпущена новая версия Game maker studio 2.

Так же на официальном форуме можно скачать русификатор для движка.

Ссылка на русификатор: Google drive


После того как вы скачали и установили Game maker studio запускаем его и в окне вводим данные, которые зарегистрировали на официальном сайте при скачивании. После ввода данных нам открывается интерфейс движка.

Так как мы используем бесплатную версию программы, категория «Изучение» нам не будет доступна.

Для того, чтобы начать разработку игры, нажимаем на кнопку «Создать» и в следующем окне «Drag and Drop» после чего откроется окно, в котором нужно придумать название проекта и сохранить в удобное для вас место.


После того как откроется рабочее пространство, можно увидеть вкладки с правой стороны окна, где и будут сортироваться наши части игры.


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


При создании спрайта нам откроется меню создания, анимированные персонажа нашей игры. Тут можно полностью с нуля, попиксельно, нарисовать персонажа или же импортировать уже готового. Так же анимировать его, создать по кадровую анимацию действий персонажа.


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


Создание событий можно произвести без обращения к программированию и созданию скриптов, все делается с помощью довольно интуитивно понятных меню и окон. Можно продумать и создать довольно сложные сценарии действий для объекта с помощью визуального редактора Game maker studio.


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

Стоит заметить часть программы, в которой нам дается возможность работать с кодом на языке GML. Очень радует та легкость, с которой простые командные функции могут быть сделаны. Поэтому если вы начинающий Game creator и готовы посвятить этому большую часть времени, тогда вам просто необходимо заняться изучением языка GML.

Установка русификатора

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

После того как скачали файл русского языка, копируем его и вставляем в директорию с Платформой в папку «Languages» которая лежит по следующему пути C:\Program Files\GameMaker Studio 2\Languages Открываем вставленный файл в блокноте, для этого нажимаем на него правой кнопкой и выбираем пункт «Изменить».

Откроется блокнот с конфигурацией этого файла. Нам необходимо 7-й строкой вставить следующую конфигурацию.


_LanguageCode,ru,ru,,standard windows os language code this pack represents (can be primary code only ie. en or primary-secondary ie. ru-RU)

Сохраняем файл и делаем бэкап стандартного файла «english», для этого просто скопируйте его в другую папку. Это необходимо для того, если что-то пойдет не так, просто скопировать его обратно и вернуть исходный язык движка. После сохранения русскоязычного файла удаляем старый англоязычный (предварительно сохраненный в другую папку) и запускаем Game maker studio.

Итоги обзора Game maker studio

Плюсы:

  • Поддержка работы и создания проектов в графическом интерфейсе.
  • Кроссплатформенность.
  • Гибкая ценовая категория.
  • Собственный язык программирования.
  • Интеграция со Steam.
  • Поддержка множества интернет-площадок.
  • Поддержка шейдеров.
  • Поддержка работы с сетью.
  • Интеграция с Facebook.
  • Возможность установки русификатора.
  • Большое количество документации.
  • Поддержка и официальный форум.
  • Собственный магазин инструментов.
  • Совместимость с проектами, сделанными на более поздних версиях Game maker studio.

Минусы:

  • Плохо оптимизирован для некоторых платформ.
  • Плохо реализован инструмент создания 3D игр.
  • Нет встроенного русскоязычного интерфейса.
  • Большие ограничения при использовании бесплатной версии (на то она и бесплатная).

Заключение

Game Maker Studio — кроссплатформенный движок игр с легким освоением и подробной документацией. Программа предлагает интуитивно понятный и простой в использовании Drag-и-Drop (называется «DnD» теперь) Интерфейс «значки действий», которые позволят вам начать создавать свои собственные игры очень быстро. Вы можете импортировать и создавать образы и звуки для использования их в игре, а затем мгновенно увидеть результаты ваших действий при нажатии на кнопку. Следует отметить, что GameMaker: Studio заточен на двумерные игры, (но имеется так же базовая поддержка работы с 3d). С помощью D&D любой человек без знаний программирования может создать простенькую игру, на подобии Марио или Тетриса.

Читайте также: