Можно ли создавать игры в старых версиях Game Maker?

Популярный конструктор игр Game Maker много лет был, фактически, безальтернативным выбором для игроделов-любителей, которым нужен был универсальный, недорогой и легкий в использовании движок без жанровых ограничений. Он и сегодня остается на плаву, стараясь не отставать от современных стандартов. Но если вам не по душе то, что делается с GM после поглощения YoYo Games компанией Opera Software, вам могло прийти в голову тряхнуть стариной и откатиться к предыдущим версиям конструктора - в ламповое прошлое безо всяких ежемесячных платежей, онлайн-лицензий и неудобных докачиваемых рантаймов. Или, к примеру, вы хотите актуализировать свой проект 10-летней давности. Возможно ли это? Публикуем перевод хорошей статьи на эту тему.

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

GameMaker ≤ 8.1

GameMaker 8

GM8.1 - последняя версия, поддерживающая динамическое выполнение кода (execute_string), и в которой работают специфические DLL, использующие захардкоженные адреса памяти в приложении (это было возможно, когда GM обновлялся раз в год или около того). GM7, GM8 и GM8.1 (выпущенные в 2007, 2009 и 2011 годах, соответственно) пострадали от ряда изменений в Windows API, и очень немногие знают, как исправить эти проблемы. Существует патчер, исправляющий некоторые из них. Также вам могут пригодиться некоторые расширения и заменители, разработанные в рамках проекта GM8.2.

Примечание редактора: вы можете найти патчер gm8x_fix на GitHub. В частности, он устраняет зависимость от DirectPlay (при запуске не будет появляться системное окно с предложением установить DirectPlay), исправляет проблему с замедлением игр сразу после запуска, баг с неправильной поддержкой джойстиков и некоторые другие. Если вам нужно запустить на современном Windows старую игру, скомпилированную в Game Maker 6, вам также пригодится патчер GM Game Converter.

GameMaker: Studio 1.4.1804

GMS 1.4

Обычно считается наиболее стабильной версией GameMaker: Studio. 1.4.1804 вышла достаточно давно (март 2018), но она остается единственным выбором для тех, кто купил лицензию GMS через Humble Bundle и не захотел переходить на GMS2. Впрочем, можно также посмотреть в сторону GMEdit.

Windows

На некоторых машинах игры могут выполняться с неадекватной кадровой частотой (особенно при использовании мониторов с частотой обновления, отличной от 60 Гц) из-за изменений в Windows API. Это можно исправить при помощи утилиты GMSched.

buffer_set_surface загадочным образом не работает на некоторых видеокартах (изначально Intel, а теперь и NVIDIA). Я сделал расширение, которое это исправляет.

macOS

Вы все еще можете создавать приложения для Мака, но со следующими оговорками:

Linux

GMS создает 32-битные исполняемые файлы Linux, поэтому пользователю придется установить 32-битные зависимости. Это можно автоматизировать при помощи скрипта. Для Steam вы можете указать, что нужно сделать, при первичной установке игры.

iOS

Apple прекратил поддержку 32-битных приложений на iOS, и тут уже ничего не поделать.

Android

Google также прекратил поддержку загрузки 32-битных приложений в Play Store, но вы все еще можете прилагать их к 64-битным.

HTML5

В целом юзабелен, но вы остаетесь один на один с возможными багами и проблемами, которые могут быть в JavaScript-рантайме.

Консоли

Владельцы консолей обычно требуют, чтобы разработчики использовали SDK актуальных версий, поэтому издать игру, сделанную в GMS 1.4, будет проблематично. Впрочем, GMS все еще используется некоторыми энтузиастами для homebrew-разработки под PS Vita.

GameMaker Studio 2.2.5

GMS 2.2.5

2.2.5 - последняя версия перед значительным обновлением языка GML, ломающим обратную совместимость. Таким образом, у вас может быть проект, который затруднительно портировать на более свежие версии GMS.

Windows

Актуальна вышеупомянутая проблема с планировщиком (см. GMSched). В остальном никаких проблем не замечено.

macOS

То же самое, что и для GMS 1.4.

Linux

В GMS2 произошел переход на 64-битные исполняемые файлы, так что проблем под Linux должно быть меньше.

HTML5

Со времен 2.2.5 в HTML5-рантайм было внесено множесто исправлений и улучшений, но в целом он остается юзабельным.

iOS и Android

Я думаю, что игры, собранные в GMS 2.2.5, все еще можно публиковать в магазинах приложений, но могут возникнуть проблемы с некоторыми устаревшими библиотеками.

Консоли

По состоянию на 2023 год все еще можно убедить владельцев платформ принять ваши сборки для немного устаревшего SDK. Некоторые игры, сделанные на старом GMS, продолжают обновляться.

GameMaker Studio 2.3.x

Последняя версия, к которой можно подключать 32-битные DLL-библиотеки (строго говоря, эта возможность была удалена в версии 2022.800.0.161). Это означает, что отваливаются очень многие (если не все) старые расширения. Если вы не используете расширения, то нет никаких причин не перейти на GameMaker LTS.

По состоянию на 2023 год, у этой версии нет никаких существенных проблем. Баг планировщика был официально исправлен, добавлена поддержка Apple Silicon, версии консольных SDK актуальные.

GameMaker LTS

LTS-версия была создана для пользователей, которым важна стабильность. Она не обновляется так часто, как обычная, и все обновления будут сохранять обратную совместимость.

Итог

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

Оригинал: Вадим Дьяченко aka YellowAfterlife, GameMaker: Can you make a game in an old GM version?

Перевод: Тимур Гафаров

Статья доступна по лицензии CC BY-NC-SA.


Copyright © 2008-2023 Тимур Гафаров и соавторы. Доступно по СС BY-NC-SA 3.0.