GameMaker
GameMaker (ранее — GameMaker: Studio, GameMaker Studio 2) — это кроссплатформенная среда разработки компьютерных игр, ориентированная на создание двухмерной (2D) графики. Разрабатывается и поддерживается компанией YoYo Games (подразделение Playtech). Среда позволяет создавать игры как с использованием визуального программирования (система событий и действий, Drag and Drop), так и с помощью встроенного скриптового языка GameMaker Language (GML). GameMaker известен своей доступностью для начинающих разработчиков и одновременно достаточной гибкостью для создания коммерчески успешных проектов.
История
Ранние версии
Первая версия программы, изначально называвшаяся Game Maker (без приставки «GameMaker»), была создана нидерландским программистом Марком Овермарсом (Mark Overmars) в 1999 году. Изначально это был инструмент для обучения школьников основам программирования, позволяющий создавать простые 2D-игры без написания кода. В 2000 году вышла версия 3.0, которая уже поддерживала спрайты, звуки и комнаты (уровни). Программа быстро приобрела популярность в сообществе любителей, особенно среди пользователей Windows.
В 2007 году права на Game Maker были проданы компании YoYo Games, основанной предпринимателем Сэнди Дунканом (Sandy Duncan). YoYo Games сосредоточилась на развитии продукта как коммерческого инструмента. В 2012 году вышла версия GameMaker: Studio, которая стала первой версией, поддерживающей экспорт на мобильные платформы (iOS, Android) и HTML5. Это был значительный шаг вперёд, так как предыдущие версии ограничивались только Windows.
GameMaker Studio 2
В 2017 году вышла GameMaker Studio 2 (GMS2). Эта версия получила полностью переработанный интерфейс, новый редактор спрайтов и анимаций, встроенный отладчик и улучшенную поддержку многопоточности. Система визуального программирования (Drag and Drop) была заменена на более мощную, основанную на GML. В 2020 году YoYo Games была приобретена компанией Playtech, что, по заявлениям разработчиков, должно было обеспечить долгосрочную поддержку продукта.
В 2024 году компания объявила о ребрендинге: продукт снова стал называться просто GameMaker, а версия 2024 года получила индекс 2024.1.0. Основные изменения коснулись лицензирования: была введена бесплатная версия с ограничениями (водяной знак, ограничение на коммерческое распространение) и платные подписки для коммерческого использования.
Архитектура и ключевые особенности
Основные концепции
GameMaker использует объектно-ориентированную модель, адаптированную для 2D-игр. Основные сущности:
- Спрайты — графические изображения (растровые, в формате PNG, BMP, GIF и др.), которые могут быть статическими или анимированными (последовательность кадров). Каждый спрайт может иметь до 8 направлений (для 8-направленной анимации).
- Объекты — логические сущности, которые содержат события (события создания, столкновения, нажатия клавиш, таймеры и т.д.) и действия (или код на GML). Объекты не имеют графического представления сами по себе — они ссылаются на спрайт.
- Экземпляры — конкретные копии объектов, размещённые в комнате (уровне). Каждый экземпляр имеет собственные координаты, скорость, направление и другие переменные.
- Комнаты — уровни или сцены, в которых размещаются экземпляры. Комнаты имеют размеры, фоновые слои, тайловые слои (для построения уровней из плиток) и слои экземпляров. Поддерживается несколько комнат в одном проекте.
- Тайлы — наборы плиток (тайлсеты), используемые для построения уровней. Позволяют быстро создавать большие игровые миры из повторяющихся элементов.
Система событий и действий
Визуальное программирование (Drag and Drop, DnD) реализовано через блоки действий, которые перетаскиваются в список событий объекта. Примеры действий: «Переместить объект», «Воспроизвести звук», «Создать экземпляр», «Проверить столкновение». Для более сложной логики используется встроенный скриптовый язык.
GameMaker Language (GML)
GML — это скриптовый язык, синтаксически напоминающий C и JavaScript. Он включает в себя:
- Типы данных: числа (целые и с плавающей точкой), строки, булевы значения, массивы (одномерные и многомерные), структуры (structs), списки, карты, стеки, очереди.
- Управляющие конструкции: if-else, switch, for, while, repeat, do-until.
- Функции: встроенные функции для работы с графикой, звуком, вводом, файлами, сетью, физикой (Box2D). Пользователь может создавать собственные функции (скрипты).
- Объектно-ориентированность: объекты имеют переменные и методы. Поддерживается наследование (родительские объекты) и полиморфизм.
Пример кода на GML:
``gml // Создание экземпляра пули в направлении игрока var bullet = instance_create_layer(x, y, "bullets", obj_bullet); bullet.direction = point_direction(x, y, mouse_x, mouse_y); bullet.speed = 10; ``
Физический движок
GameMaker включает встроенную интеграцию с физическим движком Box2D, что позволяет реализовывать реалистичную физику твёрдых тел (столкновения, гравитация, трение, пружины, шарниры). Физика включается для отдельных объектов через флаги в редакторе.
Графический движок
Среда использует собственный 2D-рендерер, основанный на OpenGL (на Windows) и DirectX (на Xbox). Поддерживаются:
- Аппаратное ускорение (GPU).
- Шейдеры (GLSL ES для Web/мобильных, HLSL для Windows/Xbox).
- Смешивание цветов (blending modes).
- Слои и глубины (z-буфер).
- Анимация спрайтов (по кадрам или скелетная анимация через Spine).
Экспорт и платформы
GameMaker позволяет экспортировать готовую игру на множество платформ:
- Windows (exe-файл).
- macOS (приложение .app).
- Linux (исполняемый файл).
- HTML5 (веб-версия, работающая в браузере).
- Android (APK/AAB).
- iOS (IPA).
- tvOS (Apple TV).
- PlayStation 4, PlayStation 5 (требуется лицензионное соглашение с Sony).
- Xbox One, Xbox Series X/S (требуется лицензионное соглашение с Microsoft).
- Nintendo Switch (требуется лицензионное соглашение с Nintendo).
- Opera GX (специальная версия для браузера Opera GX).
Для экспорта на консоли требуется отдельная лицензия и подписанный контракт с производителем консоли.
Лицензирование и стоимость
С 2024 года GameMaker распространяется по модели подписки:
- Free — бесплатная версия с водяным знаком на экране загрузки, ограничением на коммерческое распространение (доход до $100 000 в год) и отсутствием экспорта на консоли.
- Creator — платная подписка (около $5–10 в месяц), снимает водяной знак, позволяет коммерческое распространение без ограничения по доходу, но без экспорта на консоли.
- Enterprise — корпоративная подписка (около $50–100 в месяц), включает экспорт на все платформы, включая консоли, и приоритетную поддержку.
Ранее (до 2024 года) существовали разовые лицензии (Desktop, Mobile, Web, Console), но они были заменены подписками.
Известные игры, созданные на GameMaker
GameMaker использовался для создания многих коммерчески успешных и культовых игр. Наиболее известные примеры:
- Undertale (2015) — ролевая игра, получившая признание критиков и собравшая более 1 миллиона копий. Создана Тоби Фоксом.
- Hyper Light Drifter (2016) — пиксельная action-RPG, отмеченная наградами за визуальный стиль.
- Hotline Miami (2012) — жестокий экшен с видом сверху, ставший культовым. Разработан студией Dennaton Games.
- Spelunky (2008) — платформер-рогалик, оказавший огромное влияние на жанр.
- Nuclear Throne (2015) — рогалик с видом сверху, известный своей сложностью.
- Katana Zero (2019) — нео-нуарный платформер с механикой замедления времени.
- Downwell (2015) — вертикальный шутер-рогалик, созданный одним разработчиком.
- Cook, Serve, Delicious! (2013) — симулятор управления рестораном.
- Risk of Rain (2013) — рогалик с видом сбоку, позже получивший сиквел на Unity.
- Chasm (2018) — метроидвания с процедурной генерацией.
Сообщество и обучение
Вокруг GameMaker сложилось активное сообщество разработчиков. Существуют:
- Официальные форумы и документация (YoYo Games).
- Множество видеоуроков на YouTube (например, каналы Shaun Spalding, FriendlyCosmonaut, GameMaker Manual).
- Книги и онлайн-курсы (например, «GameMaker: Studio 2: The Complete Guide»).
- Хакатоны и джемы (например, ежегодный GameMaker Jam).
Среда часто рекомендуется для обучения основам геймдизайна и программирования, так как позволяет быстро получить видимый результат.
Критика и ограничения
Несмотря на популярность, GameMaker подвергается критике по ряду причин:
- Производительность: встроенный 2D-рендерер не оптимизирован для большого количества объектов (например, для тысяч частиц или сложных физических симуляций). Для сложных проектов разработчики часто вынуждены использовать собственные оптимизации (например, объединение спрайтов в атласы, использование шейдеров).
- Ограниченность 3D: хотя в GML есть функции для работы с 3D-графикой (например,
d3d_*), они не поддерживаются официально и не рекомендуются для серьёзных проектов. GameMaker остаётся преимущественно 2D-инструментом. - Зависимость от платформы: среда привязана к Windows (для разработки), хотя есть версия для macOS. Экспорт на Linux и мобильные платформы иногда вызывает проблемы с совместимостью.
- Лицензирование: переход на подписку в 2024 году вызвал недовольство части сообщества, так как ранее можно было приобрести бессрочную лицензию.
- Отсутствие поддержки некоторых современных технологий: например, нет встроенной поддержки Vulkan или Metal (используется OpenGL, который на некоторых платформах считается устаревшим).
Сравнение с другими средами
GameMaker часто сравнивают с другими инструментами для создания 2D-игр:
- Construct (Scirra) — также ориентирован на 2D, но использует визуальное программирование (Event Sheets) и не имеет собственного скриптового языка (хотя есть JavaScript). Construct более прост в освоении, но менее гибок.
- RPG Maker (Gotcha Gotcha Games) — специализируется на создании RPG, имеет встроенные редакторы карт и диалогов. Менее универсален, чем GameMaker.
- Unity (Unity Technologies) — мощный 3D/2D-движок, но требует большего времени на освоение и написания кода на C#. GameMaker выигрывает в скорости прототипирования.
- Godot (Godot Engine) — открытый движок, поддерживающий 2D и 3D. Имеет собственный язык GDScript, похожий на Python. Godot более гибок, но сообщество у него меньше, чем у GameMaker.
Будущее
Разработчики GameMaker (YoYo Games) продолжают выпускать обновления, добавляя поддержку новых платформ, улучшая производительность и исправляя ошибки. В 2024 году был анонсирован переход на новую версию (2024.1), которая, по заявлениям, станет основой для дальнейшего развития. Ожидается улучшение поддержки шейдеров, интеграция с облачными сервисами и улучшение инструментов для работы с анимацией.
Источники
- Официальная документация GameMaker (YoYo Games).
- История версий GameMaker на сайте YoYo Games.
- Статья «GameMaker: Studio» в англоязычной Википедии.
- Интервью с Марком Овермарсом (2007).
- Обзоры и статьи на сайтах Gamasutra, Game Developer, IndieDB.
- Книга «GameMaker: Studio 2: The Complete Guide» (2020).
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →