Введение

Script Creation Utility for Maniac Mansion Virtual Machine (ScummVM) – это набор эмуляторов игровых движков. Изначально созданный для запуска приключенческих игр LucasArts, использующих систему SCUMM, он также поддерживает множество игр, разработанных другими компаниями, такими как Revolution Software и Adventure Soft. Первоначально написан Людвигом Стригеусом.

Порты

Переносимость является одной из целей проекта. Порты ScummVM доступны для Microsoft Windows, macOS и различных Unix-подобных систем, включая Linux (на основе RPM, Debian или исходного кода), семейства BSD (FreeBSD, NetBSD, OpenBSD, DragonFly BSD) и Solaris. Также ScummVM портирована на консольные системы. К менее распространенным портам для персональных компьютеров относятся версии для Amiga, Atari FreeMiNT, Haiku BeOS ZETA, RISC OS и OS/2 (включая производные, такие как ArcaOS). Для различных игровых консолей существуют официальные порты. ScummVM портирована на игровые машины, такие как PlayStation 2, PlayStation 3, Dreamcast, Nintendo 64, GameCube и Wii, а также на портативные консоли, включая GCW Zero, GP2X, Nintendo DS, Pandora, PlayStation Portable и PS Vita. Поддерживаемые платформы портативных компьютеров включают Palm OS Tapwave Zodiac, Symbian (платформа UIQ, серии телефонов Nokia 60, 80 и Nokia 7710 90), Интернет-планшетную ОС Nokia (используемую в Nokia 770, N800 и N810), iPhone от Apple, телефоны MotoMAGX, MotoEZX и Windows Mobile. Платформы, поддерживаемые неофициальными портами ScummVM, включают игровую консоль Xbox от Microsoft, BlackBerry PlayBook, Zaurus, Gizmondo и портативные платформы GP32. Также поддерживаются мобильные телефоны с Android, webOS или неофициальной bada OS от Samsung.

История

Работа над ScummVM началась в сентябре 2001 года (первый публичный релиз состоялся в октябре) студентом-компьютерщиком Людвигом Стригеусом. Стремясь создать собственную приключенческую игру, он изучал, как устроен механизм существующего игрового движка, в частности, разрабатывая способ запустить Monkey Island 2 на своей машине Linux. Примерно в то же время Винсент Хамм также пытался реализовать SCUMM-плеер, и хотя он провел более глубокое исследование устройства движка SCUMM, обнаружил, что Стригеус продвинулся гораздо дальше, и они объединили усилия для разработки проекта. Игровые движки включаются в ScummVM, если для них предоставлен исходный код, облегчающий портирование в архитектуру программы, или если один или несколько членов команды полны энтузиазма по поводу добавления движка в программу и готовы к сложной задаче восстановления кода игры из скомпилированных версий. Попытка Эрика Шахи добавить игру Another World в 2004 году вызвала внутреннее напряжение в проекте. Another World не была классической приключенческой игрой «point-and-click» и использовала полигональную графику вместо пиксельной, привычной для большинства приключенческих игр, что считалось серьезным отходом от основной направленности ScummVM. Хотя проект был закрыт через несколько дней после просьбы Шахи удалить его, поскольку он готовился к выпуску ремастированной версии к 15-летию игры, текущим лидерам проекта пришлось переориентировать команду и определить основные принципы, которым должен соответствовать ScummVM. Это продолжалось до тех пор, пока все игры AGS v2.5+ не были официально добавлены в программу, что совпало с 20-летием ScummVM в октябре 2021 года. К концу 2020 года ResidualVM официально вошла в состав ScummVM.

Поддержка разработчиков

По словам Сандуленко, "нет типичного процесса" в сотрудничестве с разработчиками: "Все происходит спонтанно. Мы стараемся найти контактную информацию людей, работавших над играми, которые интересуют разработчиков, и запрашиваем доступ к их исходному коду, если он где-то сохранился. Затем мы начинаем работать над этим в своем темпе". С ростом популярности, ScummVM заключила выгодные соглашения с разработчиками приключенческих игр, чтобы помочь им портировать свои игры в движок, или, в некоторых случаях, получила исходный код и другие ресурсы для работы. Revolution Software помогла разработчикам с исходным кодом и техническими консультациями для своих игр, а после того, как ScummVM поддержала движок Virtual Theatre компании, Revolution выпустила Lure of the Temptress и Beneath a Steel Sky как бесплатное программное обеспечение и предоставила ресурсы из своих первых двух игр Broken Sword в открытом медиаформате. Возросший интерес к этим играм со стороны молодых игроков позволил Revolution разработать еще две игры Broken Sword, доступные для загрузки на сайте ScummVM. Laboratorium Komputerowe Avalon: Януш Вишневский и Мирослав Лиминович выпустили оригинальный исходный код своей приключенческой игры Sołtys как бесплатное программное обеспечение, доступное для загрузки на сайте ScummVM. Perfect Entertainment: Джон Янг, Колин Смайт и Терри Пратчетт предоставили оригинальный исходный код своих приключенческих игр Discworld и Discworld II: Missing Presumed ! ?. Wyrmkeep Entertainment: Джо Пирс предоставил оригинальный исходный код своей приключенческой игры Inherit the Earth: Quest for the Orb. Цифровой магазин GOG.com, специализирующийся на продаже цифровых копий старых игр, оказывает поддержку ScummVM и продает игры, в состав дистрибутива которых входит движок ScummVM. TrollVM также была интегрирована в ScummVM, добавив поддержку трех игр, предшествовавших AGI: Mickey's Space Adventure, Troll's Tale и Winnie the Pooh in the Hundred Acre Wood.

Нарушения GPL Мистиком

ScummVM распространяется как свободное программное обеспечение под лицензией GPL 2.0 или более поздней, что позволяет любому использовать проект в качестве движка для игры. Например, Revolution Software переупаковала свои игры Broken Sword для выпуска на DVD, используя ScummVM с включенными движками sword1 и sword2 для поддержки современных компьютеров. ResidualVM первоначально была разработана для запуска приключенческих игр LucasArts, использующих игровой движок GrimE, а позже была адаптирована для поддержки других движков. Как и в ScummVM, аббревиатура VM в ResidualVM расшифровывается как виртуальная машина. ResidualVM – это переосмысление части программного обеспечения, используемого для интерпретации скриптовых языков, реализованное путем обратной инженерии оригинальной игры, а не эмуляции аппаратного обеспечения, на котором работали игры. Таким образом, ResidualVM позволяет запускать поддерживаемые игры на платформах, отличных от тех, для которых они были изначально выпущены. Название проекта происходит от того, что он был изначально создан для поддержки «оставшихся» приключенческих игр LucasArts, не поддерживаемых ScummVM. Оригинальный движок на основе Lua, использовавшийся LucasArts в их 3D-играх, назывался GrimE (в отличие от SCUMM), поэтому название ResidualVM также является игрой слов, поскольку grime – это вид осадка. Проект был начат бывшим руководителем команды ScummVM Джеймсом Брауном и впервые стал общедоступным 15 августа 2003 года. Прогресс в разработке проекта был изначально медленным, и в результате основная цель проекта – поддержка Grim Fandango – была достигнута только 25 апреля 2011 года, когда совместимость Grim Fandango была повышена до уровня «можно пройти, с некоторыми незначительными ошибками». В декабре 2011 года проект получил отдельный домен от ScummVM. В результате смены доменного имени название проекта было изменено с Residual на ResidualVM. Логотип был изменен, чтобы отразить новое название, 25 января 2012 года. Первый стабильный релиз ResidualVM был выпущен через 9 лет после начала проекта, 21 декабря того же года. В октябре 2021 года проект был объединен со ScummVM. Кроме того, порт для Android доступен в исходном коде, и на его основе были созданы неофициальные сборки. Существует также порт для консоли Pandora и FreeBSD, но они не являются официальными, поскольку не были добавлены в основную ветку разработки. Благодаря возросшему вниманию ResidualVM заключила выгодные соглашения с разработчиками приключенческих игр, чтобы помочь им портировать свои игры в движок. Cyan Worlds сотрудничает с ResidualVM для выпуска Myst III: Exile на цифровых платформах. Цифровой магазин GOG.com, специализирующийся на продаже цифровых копий старых игр, продает Myst III: Exile с движком ResidualVM в составе своей библиотеки, а также Myst III: Exile, которые можно пройти с некоторыми незначительными ошибками. В ветке разработки также поддерживаются Escape from Monkey Island, которую можно пройти с некоторыми ошибками, и The Longest Journey, которую можно пройти с отсутствующими функциями. Как и ScummVM, ResidualVM содержит исправления ошибок, присутствующих в оригинальном исполняемом файле. Команда ResidualVM обнаружила обходной путь для ошибки, из-за которой в Grim Fandango не воспроизводится важный диалог. Кроме того, движок Grim Fandango в ResidualVM содержит исправления для более чем десятка других ошибок, присутствующих в оригинальной версии. Существует также ветка ResidualVM под названием Grim Mouse, которая позволяет играть в Grim Fandango полностью с помощью мыши, как в традиционной point-and-click приключенческой игре.

Поддерживаемые игры

Следующие игры поддерживаются в текущей версии ScummVM.