Введение

Игровой движок, разработанный LucasArts. Script Creation Utility for Maniac Mansion (SCUMM) — это игровой движок, разработанный в Lucasfilm Games, позднее переименованной в LucasArts, для упрощения разработки их графической адвенчуры Maniac Mansion (1987). Впоследствии он использовался в качестве движка для последующих адвенчур LucasArts и игр Humongous Entertainment. SCUMM занимает промежуточное положение между игровым движком и языком программирования, позволяя дизайнерам создавать локации, предметы и диалоговые последовательности без написания кода на языке, на котором написан исходный код игры. Это также обеспечивало кроссплатформенность сценариев и файлов данных игры, то есть возможность их повторного использования на различных платформах. SCUMM также служит платформой для встроенных игровых движков, таких как Interactive MUsic Streaming Engine (iMUSE), INteractive Streaming ANimation Engine (INSANE), CYST (движок внутриигровой анимации), FLEM (объекты мест и названий внутри комнаты) и MMUCAS. SCUMM был выпущен на следующих платформах: 3DO, Amiga, Apple II, Atari ST, CDTV, Commodore 64, Fujitsu FM Towns & Marty, Apple Macintosh, Nintendo Entertainment System, DOS, Microsoft Windows, Sega CD (Mega CD) и TurboGrafx 16/PC Engine. Многие игры SCUMM были официально и неофициально портированы на другие системы с использованием программного обеспечения с открытым исходным кодом ScummVM.

История

Оригинальная версия была написана Роном Гилбертом (с начальной помощью Чипа Морнингстара, также известного как UnXman) в 1987 году, а последующие версии были улучшены Ариком Уилмундером (также известным как SCUMM Lord) и Брэдом П. Тейлором. Это язык токенов, который предложил новаторские методы кодирования. Первыми были использованы токены, такие как P.R.I.N.E. Сущность SCUMM сформировалась на основе опыта большинства ранних программистов LucasArts, включая Уилмундера, который ранее работал программистом для миникомпьютеров и Unix-станций. В то время персональные компьютеры (ПК) не обладали достаточной мощностью или скоростью для редактирования и компиляции программ, поэтому программисты LucasArts часто писали код максимально чисто на Sun-станции, чтобы устранить все ошибки, и хотя компиляция на ПК была медленной, она была менее подвержена ошибкам. Эта концепция легла в основу идеи кроссплатформенного языка сценариев. SCUMM был разработан как инструмент, преобразующий удобочитаемые команды в токены размером с байт, которые затем считывались исполняемым интерпретатором, представляющим игру игроку. Например, команда SCUMM "walk dr fred to laboratory door" токенизировалась в 4-байтовую команду. Они не хотели жестко кодировать специфические детали игры в сценарий, поэтому токенизатор мог распознавать персонажей по имени из сценария, а не по внутренним номерам. Исключением было отображение диалогов персонажей в Maniac Mansion другим цветом текста, для чего требовалось включение номера, но это было исправлено к моменту выхода Zak McKracken. Для игры Full Throttle команда работала над интеграцией SCUMM с движком INSANE, ранее разработанным для Star Wars: Rebel Assault. Хотя Уилмундеру удалось заставить обе системы работать к моменту выпуска Full Throttle, их взаимодействие не всегда было стабильным, и он потратил время до The Curse of Monkey Island на то, чтобы SCUMM работал поверх движка INSANE, заменив некоторые компоненты SCUMM на нативные для INSANE. Последующие игры, включая Putt Putt: Pep's Birthday Surprise и Pajama Sam: Life Is Rough When You Lose Your Stuff!, были разработаны на движке YAGA, основанном на Python – это единственные приключенческие игры Humongous, которые не использовали движок SCUMM. В марте 2016 года Уилмундер объявил о намерении поделиться проектной документацией для многих приключенческих игр LucasArts и исходным кодом движка SCUMM, который он планирует предоставить в цифровом формате через GitHub.

Дизайн

Большинство игр SCUMM используют парадигму "глагол-объект". У персонажа, управляемого игроком, есть инвентарь, а игровой мир полон объектов, с которыми игрок может взаимодействовать, используя различные глаголы. В ранних играх большой набор этих глаголов часто отображался в нижней части экрана, но к Full Throttle (1995) и The Curse of Monkey Island (1997) они были сведены к "колесу глаголов", появляющемуся на курсоре мыши с возможностью использовать глаза персонажа (осмотреть), руки (использовать, подобрать, толкнуть, потянуть и т.д.) или рот (говорить, съесть, вдохнуть). Игры Humongous Entertainment упростили этот интерфейс, используя прозрачный курсор мыши, который заполнялся, когда игрок мог взаимодействовать с объектом, или превращался в стрелку, указывающую на точку клика, ведущую на новый экран. Головоломки обычно заключаются в использовании правильного глагольного действия с подходящим объектом, например, "использовать формочку для печенья с резиновым деревом". Команда "поговорить с" обычно запускает диалоговые последовательности, в которых игрок выбирает из списка заранее определенных вопросов или комментариев, а собеседник отвечает заранее заготовленным ответом. Примечательным исключением из этой общей парадигмы является Loom (1990), которая не использует стандартный интерфейс "глагол-объект", а заменяет большинство действий выбором заклинаний, исполняемых на инструменте.

Компилятор

ScummC – это набор инструментов (включающий скрипт и компилятор обликов, редактор ходовых ящиков, редактор шрифтов, инструменты для работы с графикой, аудио и MIDI), способный компилировать собственный язык, подобный JavaScript, в байт-код SCUMM v6, который можно запускать непосредственно в ScummVM. Он позволяет любому, обладающему необходимыми навыками, создавать новые и оригинальные игры SCUMM с возможностями, сопоставимыми с Day of the Tentacle и Sam & Max Hit the Road. Аналогичный проект под названием ScummGEN преследует ту же цель, предлагая более удобные инструменты. Scummbler – это компилятор байт-кода SCUMM для 3-й – 5-й версий движка SCUMM. Он использует скрипты, декомпилированные из оригинальных файлов игр, полученные с помощью комбинации инструмента распаковки, такого как ScummPacker (также разработанного автором Scummbler), и инструмента descumm из ScummVM. Эти скрипты можно повторно вставлять в оригинальные файлы игр, что делает его полезным для модификации существующих игр, например, для перевода. Также доступны кодировщик/декодировщик изображений и инструмент, помогающий сопоставлять речевые файлы с текстом.

Переводчики

ScummVM — это бесплатный проект с открытым исходным кодом, предназначенный для создания переносимого клиента SCUMM на основе библиотеки Simple DirectMedia Layer (SDL), позволяющий запускать многие игры, использующие движок SCUMM, на системах, где оригинальные версии не работают или работают некорректно, включая современные Windows и Macintosh, Linux (в том числе портативные устройства, такие как Android, GP2X, GP2X Wiz, Maemo и другие), BeOS Haiku, AmigaOS (3.x, 4.0 и его клоны MorphOS и AROS), Palm OS, Windows Mobile (Pocket PC), Dreamcast, PlayStation 2, PlayStation Portable, Nintendo DS, Wii, Symbian (SeriesXX и UIQ), iOS (iPad, iPhone, iPod Touch), webOS и QNX Playbook. Ненадежный источник: date=February 2023 — это интерпретатор SCUMM, разработанный автором ScummC.

Ссылки и шутки

В приключенческих играх LucasArts было обычной практикой использовать шуточные отсылки. Разработчики в нескольких играх использовали название своего движка для создания комического эффекта. Панк-группа Razor and the Scummettes, упомянутая в Maniac Mansion, и бар SCUMM в серии Monkey Island получили свои названия в честь языка скриптов. В Escape from Monkey Island, ставшей жертвой враждебного поглощения, бар SCUMM превращается в бар Lua – отсылка к языку программирования, который заменил движок, использовавшийся в предыдущих играх. SCUMM также указан в составе грога в игре "Тайная Обезьяна".