Ошибка «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 — при отрисовке. Такая событийная модель отличается от классического игрового цикла и поначалу может сбивать с толку тех, кто пришёл из других движков.
Основы языка 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
После создания объекта с кодом движения откройте комнату 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 на новые версии?
Импорт старых проектов поддерживается, но часть функций и поведение кода могут отличаться — после импорта проект почти всегда требует ручной доработки. Рекомендуется сделать резервную копию перед конвертацией.