GameMaker Studio: полное руководство для начинающих

Ошибка «Unable to find a runner» при запуске проекта в GameMaker Studio чаще всего означает, что IDE не видит установленный рантайм — проверьте раздел Preferences → Runtime Feeds → Master и нажмите кнопку загрузки актуальной версии. Именно с таких неочевидных моментов начинается знакомство большинства новичков с этим движком, хотя сам по себе он считается одним из самых дружелюбных инструментов для создания 2D-игр.

В этой статье разберём установку и настройку GameMaker Studio, структуру проекта, основы языка GML и типичные проблемы, с которыми сталкиваются начинающие разработчики. Материал подойдёт тем, кто открыл движок впервые, а также тем, кто уже успел столкнуться с первыми ошибками компиляции.

Что такое GameMaker Studio и кому он подходит

GameMaker (ранее GameMaker Studio 2, а ещё раньше — Game Maker от Mark Overmars) — это среда разработки, ориентированная преимущественно на 2D-игры. Движок использует собственный язык сценариев GML (GameMaker Language), а также визуальный редактор Drag and Drop для тех, кто не хочет писать код.

На движке созданы коммерчески успешные проекты вроде Undertale, Hotline Miami и Hyper Light Drifter, что показывает: инструмент подходит не только для прототипов. При этом порог входа невысокий — первую простую игру можно собрать за один вечер.

Движок поддерживает экспорт на Windows, macOS, Linux, мобильные платформы, браузеры (HTML5) и консоли. Однако экспорт на часть платформ требует платной лицензии — бесплатная версия ограничена по возможностям публикации, и актуальные условия лицензирования стоит проверять на официальном сайте разработчика, так как они периодически меняются.

Установка и первичная настройка

Установка начинается с загрузки установщика с официального сайта YoYo Games. После инсталляции потребуется создать учётную запись и войти в неё через лаунчер — без этого IDE не запустит проекты. Затем движок предложит скачать рантайм — компонент, отвечающий за компиляцию и запуск игр.

Именно на этапе рантайма возникает больше всего проблем. Если после установки при запуске проекта появляется ошибка о невозможности найти runner или runtime, выполните проверку вручную:

  • 🔧 Откройте File → Preferences → Runtime Feeds и убедитесь, что рантайм загружен и активен;
  • 🌐 Проверьте подключение к интернету — рантайм скачивается отдельно от IDE;
  • 🛡️ Убедитесь, что антивирус или брандмауэр не блокирует загрузку компонентов;
  • 🔄 Перезапустите IDE после завершения загрузки.

⚠️ Внимание: версии IDE и рантайма должны быть совместимы. Если вы обновили IDE, но не обновили рантайм (или наоборот), проект может не компилироваться. Проверяйте соответствие версий в разделе Runtime Feeds.

Интерфейс и структура проекта

Рабочее пространство GameMaker строится вокруг дерева ресурсов (Asset Browser) справа. Все элементы игры — это ресурсы: спрайты, звуки, объекты, комнаты, скрипты. Понимание этой иерархии — ключ к быстрой работе в движке.

Основные типы ресурсов, с которыми вы будете работать ежедневно:

  • 🖼️ Sprite — изображение или анимация персонажа, объекта, фона;
  • 🧩 Object — игровая сущность с логикой (событиями и кодом);
  • 🏠 Room — уровень или сцена, где размещаются объекты;
  • 📜 Script — функции на GML, доступные из любого места проекта;
  • 🔊 Sound — звуковые эффекты и музыка.

Логика объекта строится на событиях (Events): Create выполняется при создании экземпляра, Step — каждый кадр, Draw — при отрисовке. Такая событийная модель отличается от классического игрового цикла и поначалу может сбивать с толку тех, кто пришёл из других движков.

📊 Что вы планируете делать в GameMaker?
2D-платформер
Топ-даун шутер или RPG
Визуальную новеллу
Просто учусь, пока не решил

Основы языка GML

GML — динамически типизированный язык, синтаксически похожий на смесь C и JavaScript. Переменные не требуют объявления типа, а код пишется прямо внутри событий объекта. Например, простейшее движение персонажа в событии Step выглядит так:

if (keyboard_check(vk_right)) x += 4;

if (keyboard_check(vk_left)) x -= 4;

if (keyboard_check(vk_up)) y -= 4;

if (keyboard_check(vk_down)) y += 4;

Здесь x и y — встроенные переменные экземпляра, отвечающие за позицию на экране, а keyboard_check — функция проверки зажатой клавиши. Обратите внимание: координата y растёт вниз, что стандартно для 2D-графики, но непривычно после школьной математики.

Для тех, кто не готов к коду, есть режим Drag and Drop — визуальные блоки логики. Он подходит для обучения и простых прототипов, но серьёзные проекты практически всегда требуют GML: визуальный режим быстро упирается в ограничения при сложной логике.

Полезные встроенные переменные объекта

x и y — позиция; hspeed и vspeed — скорость по осям; image_angle — угол поворота спрайта; image_alpha — прозрачность; instance_id — уникальный идентификатор экземпляра.

Создание первого проекта: пошагово

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

☑️ Первая игра в GameMaker

Выполнено: 0 / 5

После создания объекта с кодом движения откройте комнату Room1 (она создаётся по умолчанию) и перетащите объект из дерева ресурсов на сцену. Запуск выполняется клавишей F5 (отладочный режим) или F6 — обычный запуск. Если всё сделано верно, персонаж будет двигаться при нажатии стрелок.

Когда объект не двигается, проверьте три вещи: добавлен ли код именно в событие Step, а не Create; размещён ли объект в комнате; не перекрывает ли его другой объект без спрайта. Это три самые частые причины «неработающего» первого проекта.

⚠️ Внимание: функция room_goto() и другие действия, меняющие комнату, не прерывают выполнение текущего кода мгновенно — смена произойдёт в конце шага. Это частый источник ошибок у новичков, ожидающих немедленного перехода.

Сравнение с другими движками

Выбор движка — частый вопрос новичков. Ниже — обобщённое сравнение по ключевым критериям без привязки к конкретным версиям, так как возможности движков регулярно обновляются.

Критерий GameMaker Unity Godot
Основной фокус 2D-игры 2D и 3D 2D и 3D
Язык GML, Drag and Drop C# GDScript, C#
Порог входа Низкий Средний Низкий-средний
Лицензия Бесплатная с ограничениями, платные тарифы Условно-бесплатная Полностью бесплатная (open source)

Вывод простой: если цель — именно 2D-проект и быстрый старт, GameMaker даёт минимум трения. Если в перспективе нужен 3D или максимальная гибкость, стоит присмотреться к альтернативам.

Типичные ошибки и их решение

Разберём проблемы, которые встречаются чаще всего на старте работы с движком.

Ошибка компиляции с непонятным текстом. В первую очередь смотрите окно вывода (Output) — GameMaker указывает объект, событие и строку с ошибкой. Чаще всего это опечатка в имени переменной или функции: GML не всегда подсвечивает такие ошибки заранее.

Переменные, созданные в событии Create, существуют только у конкретного экземпляра — обращение к ним из другого объекта без указания экземпляра вызовет ошибку или будет читать данные не того объекта.

Игра тормозит. Проверьте, не создаёте ли вы экземпляры объектов каждый кадр в событии Step — классическая причина падения производительности. Также влияют большие неоптимизированные спрайты и тяжёлые вычисления в циклах отрисовки.

Спрайт не отображается. Убедитесь, что у объекта назначен спрайт в свойствах, либо что отрисовка выполняется в событии Draw. Если вы добавили событие Draw с любым кодом, стандартная автоматическая отрисовка спрайта отключается — спрайт нужно рисовать вручную через draw_self(). Это одна из самых коварных особенностей движка для новичков.

Часто задаваемые вопросы

Можно ли использовать GameMaker бесплатно?

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

Нужно ли знать программирование для работы в GameMaker?

Нет, для старта достаточно визуального режима Drag and Drop. Однако для сколько-нибудь сложных проектов потребуется освоить GML — к счастью, он считается одним из самых простых языков для входа в программирование.

Подходит ли GameMaker для 3D-игр?

Технически в движке есть базовые 3D-функции, но они минимальны и не являются основным назначением инструмента. Для полноценного 3D лучше выбрать Unity, Unreal Engine или Godot.

Почему проект не запускается и выдаёт ошибку рантайма?

Наиболее вероятные причины: рантайм не загружен или его версия несовместима с версией IDE, загрузку блокирует антивирус, либо путь к проекту содержит кириллические символы. Проверьте раздел Preferences → Runtime Feeds и расположение папки проекта.

Можно ли портировать проект с GameMaker Studio 1.4 на новые версии?

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