Scummvm что это
ScummVM — это программа, позволяющая запускать некоторые классические адвенчуры, квесты и ролевые игры (РПГ) при наличии у вас файлов данных от этих игр. Суть в том, что ScummVM заменяет исполняемые файлы игры, тем самым позволяя играть на тех системах, которые даже не существовали во время их создания! ScummVM содержит полностью переписанные движки этих игр и не является эмулятором.
ScummVM поддерживает более 250 квестов и адвенчур. Поддерживаются многие классические квесты, изданные такими легендарными студиями, как LucasArts, Sierra On-Line, Revolution Software, Cyan, Inc. и Westwood Studios. Вместе с такими знаменитыми играми, как Monkey Island, Broken Sword, Myst, Blade Runner и многими другими, вы сможете отыскать малоизвестные адвенчуры и по-настоящему скрытые шедевры.
Полный список всех поддерживаемых игр и их состоянием поддержки можно найти на странице совместимости. ScummVM активно развивается, так что заглядывайте почаще. Среди систем, на которых можно поиграть в эти игры, присутствуют Windows, Linux, macOS, iOS, Android, PS Vita, Switch, Dreamcast, AmigaOS, Atari/FreeMiNT, RISC OS, Haiku, PSP, PS3, Maemo, GCW Zero и многие другие…
Наши форум и сервер Discord открыты для ваших комментариев и пожеланий. Пожалуйста, прочтите ЧаВо перед тем, как задавать вопросы.
Вы можете поддержать проект, выразив свой восторг в виде пожертвования через PayPal, хотя гораздо больше мы ценим вклады в виде программного кода.
Последние новости 25 сент. 2023 г. : Come to the Dark Side, we have jetpacks!
Опубликовано gu3
Dark Side, the exciting sequel of the groundbreaking Driller, is ready for public testing!
Dark Side, like its predecessor, was released by Incentive Software Limited in 1988, shortly after Driller. The updated gameplay features a jetpack that allows you to leave the ground, providing a new and fresh perspective that emphasizes the excitement and challenges of exploring Tricuspid, the second alien moon of planet Evath.
This time, the vicious Ketars have scattered and hidden Energy Collection Devices (ECD) around their base to destroy your home planet. It’s up to you to destroy them first! The tricky part is many ECDs are connected to each other and can regenerate instantly, so you must figure out the right order to successfully complete your mission.
Our reimplementation of the Freescape engine features graphics using software (TinyGL) or hardware mode (OpenGL) at arbitrary resolution. The initial Dark Side support includes DOS (EGA/CGA modes), ZX Spectrum and Amstrad CPC. Additionally, there are two playable demos if you want to test the game. Support for Amiga and AtariST will be available later! Please contact us if you have some other release.
To play any of these supported releases, you will need a daily development build. As always, please submit your bug reports to our issue tracker.
Опубликовано sev, lman
The day has come. We are super happy to announce public beta testing for the iOS port of ScummVM in the store. Yes, you read it right! Since Lars Sundström, aka lman, joined our team as the iOS porter, we have made significant progress. Thus, you no longer need to compile ScummVM yourself in order to add it to your iOS or iPadOS device.
If you want to help by testing this version, just follow this Testflight link and enroll yourself in the test program. This may require installing Apple’s Testflight app. You can find instructions on how to install games and how to play them on our documentation portal.
We truly appreciate your feedback. You can share your thoughts with the Testflight feedback feature, where you can attach screenshots and post detailed descriptions. Alternatively, you can use our bugtracker, e-mail us at ios@scummvm.org, or post on our Discord Server. Your help will let us eventually add ScummVM to the App Store.
Опубликовано sev
Following our announcement about affiliation with ZOOM-Platform, we would like to give a note that they have just started to offer the Macintosh versions of Syberia 1 and Syberia 2 bundled with ScummVM.
This is important because ScummVM currently supports only the Macintosh versions of these games. These versions were produced by Tetraedge and are built on a completely different engine than the original Windows versions; basically, they are reimplementations, not ports. Now, thanks to the folks from ZOOM-Platform, you can easily obtain these game variants.
Опубликовано sev
We are pleased to announce an affiliate partnership with ZOOM-Platform, a supplier of DRM-free games. If you use a link from this website (or from our Wiki), the ScummVM project will receive a small amount of money to be used for web hosting and other expenses.
Any purchases from ZOOM-Platform qualify, but we especially encourage you to check out games supported by ScummVM, such as the Syberia 1, 2, Galador, Obsidian as well as 18 titles from the Living Books series. In total, we counted 25 games supported by ScummVM, and this list is growing.
We will keep an up-to-date list of the games available from this platform on our Wiki and have added an affiliate link on the sidebar here.
Опубликовано sev
A little while has passed since the release of 2.7.0, and we are now excited to present you with the bugfix release 2.7.1.
We have included a significant amount of fixes and small improvements, in particular:
- Added ScummVM Log file viewer, so you can easily report the problems on platforms with limited file access, e.g. Android, iOS or even modern Windows.
- Fixed the shader-based scaler loading on some platforms.
- Added multiple improvements to AGI, AGS, Cryomni3D and 12 more engines.
We also improved the detection of Broken Sword 1 & Broken Sword 2, so more original versions get properly detected. Thank you to those who submitted bug reports about this, and if you still locate a version that is not recognised, please report it to us (beware that the frankenstein versions that are floating around the internet will not be accepted, only those copied from the original media).
For the full and comprehensive list of notable changes, please refer to the Release Notes.
If you are as excited about the release as we are, you can share our joy by downloading it from our downloads page. If you are using Windows, macOS, or either of the Ubuntu Snap or Flatpack packages, the autoupdater will pick up the ScummVM 2.7.1 release automatically. For our Android app users, the update will be available on the Play Store.
Thank you very much for your continued support. Enjoy!
LucasArts, Monkey Island, Maniac Mansion, Full Throttle, The Dig, LOOM и ещё куча других вещей являются зарегистрированными торговыми марками LucasArts, Inc.. Все другие торговые марки и зарегистрированные торговые марки принадлежат соответствующим компаниям. ScummVM никак не связан с LucasArts, Inc.
ScummVM — Пожалуй, лучший среди эмуляторов!
Вы, наверняка, и без меня в курсе, что на рынке игр и приложений для мобильных устройств сейчас невиданный ажиотаж. Выбор настолько огромен, что, зачастую, с нужным функционалом приложения определиться просто невозможно. Особенно это касается Android и iOS, самых популярнейших мобильных ОС в мире. Другое дело, что большинство новых приложений повторяет другие, сменив лишь интерфейс, то есть графическую оболочку. С играми практически то же самое, если не хуже. Найти достаточно «адекватную игру» с нормальным сюжетом теперь не просто сложно. Это практически невыполнимо, если хотите. И я говорю не о портах с ПК и консолей, а об играх, разработанных именно для мобильных устройств. Разумеется, исключения есть, и их достаточно. Но часто эти исключения требуют топовое устройство, и, скажем, если у вашего смартфона лишь одноядерный процессор, не видать вам их как собственных ушей.
Но я снова отклонился от темы. Все вы наверняка знаете, кто такой Джордж Лукас. Но немногие теперь помнят, что одна из первых в мире игр, выполненных в жанре «квест», — Maniac Mansion — была выпущена именно под его руководством. Дело было аж в далеком 1987 году. А затем, на этом же движке, LucasArts выпустила серию квестов, равных которым нет и по сей день. Бесконечный юмор (часто весьма черный), забавная анимация персонажей и самые невероятные загадки ждали игроков во всех квестах от LucasArts. Беда лишь в том, что выпускались они исключительно под старыми версиями Windows, минуя остальные операционки. Независимая команда разработчиков, восхищенная первыми квестами от LucasArts, решила исправить вопиющую несправедливость и сделать возможным запуск этих игр на других платформах, отличных от Windows. Сегодня программа ScummVM поддерживается Windows, Linux, Android, iOS, Symbian, Sony Playstation 2/3, PSP, Mac OS, Sega Dreamcast, PocketPC, PalmOS, AmigaOS, BeOS, OS/2, WebOS, Maemo, Nintendo 64, Nintendo DS, и даже некоторыми телевизорами SamsungTV! Согласитесь, впечатляющий список?
Так что же это такое, ScummVM? Изначально это был интерпретатор команд игрового движка Scumm от LucasArts. Кстати, буквы «VM» в имени эмулятора значат «Виртуальная Машина». Позже к нему добавились и другие игровые движки, например, AGI от Sierra. Если коротко, ScummVM при запуске игр не эмулирует аппаратную составляющую и ОС, он лишь обрабатывает сам код игры, в отличие от всех остальных программ подобного рода. Это позволяет добиться стопроцентной производительности даже на очень слабых аппаратах, например, Motorola Z6 с её скудными 64 МБ оперативной памяти на борту. Другими словами, вам не нужно иметь супернавороченный гаджет, чтобы полноценно использовать ScummVM.
Чтобы вам было хоть немного более понятно, разберем запуск какой-нибудь популярной игрушки, поддерживаемой эмулятором. Я выбрал одну из моих любимых игр неповторимой серии о двух парнях из вольнонаемной полиции — Сэме и Максе — Sam & Max: Hit the Road. Не буду распинаться о её прелестях, если вы хоть однажды в это играли — без сомнений, вы её вспомните, если же нет — скачаете и посмотрите сами, если будет на то желание. Самая же любимая моя игра — The Curse of Monkey Island — третья часть серии квестов о Гайбраше Трипвуде, парнишке, который очень хотел стать пиратом. Для запуска будем использовать устройство, работающее на ОС Android. Это HTC Gratia. К сожалению, Грация имеет очень малое разрешение экрана, всего 320х480, поэтому качество скриншотов оставляет желать лучшего. Итак, собственно, сам процесс. Сначала качаем из интернета или копируем с диска (да-да, у некоторых еще завалялись болванки тех годов) саму игру. Затем устанавливаем ScummVM и интерпретатор игровых движков, будь то Scumm, AGI, Broken Sword, или любой другой из доступных.
Найти это все можно на Google Play, или задав мне вопрос здесь в комментариях. Далее — запускаем программу и настраиваем её на своё усмотрение. Для получения самой четкой и красивой (насколько это возможно) картинки, я рекомендую использовать плагин «Amiga» в настройках графики. Для качественного же воспроизведения звука, в том числе и речи, если таковая имеется, используйте настройки по умолчанию в параметрах аудио. Можно также указать частоту звука 44 кГц.
Самое же главное, не забудьте включить отображение субтитров, иначе придется разбираться в диалогах героев, читая по губам ☺ .
На этом все, можно приступать непосредственно к игре, нужно лишь указать путь к ней, после чего она и станет доступна для запуска из главного меню.
Ниже несколько скриншотов обеих игр. Как видите, различия в качестве отрисовки огромны, что, в принципе, приемлемо, учитывая разницу в «возрасте» игр примерно 5 лет.
The Curse of Monkey Island
Sam & Max: Hit the Road
Примечательно, что для каждой игры можно отдельно настраивать параметры эмуляции, что особенно полезно при запуске тяжелых игр на слабых устройствах.
Управление весьма простое: прикосновения к сенсорному экрану эмулируют передвижение курсора и нажатие левой кнопки мыши. Для совершения же правого клика нужно прикоснуться к экрану двумя пальцами (при поддержке технологии Multi-touch) или нажать доступную аппаратную клавишу, например, у меня это клавиша «поиск». А сохранять игровой процесс можно прямо из главного меню.
Как видите, все очень просто и доступно, тем более что ScummVM имеет поддержку русского языка в качестве преимуществ.
Опять же, некоторые воспротивятся отсутствию современной 3D-графики и спецэффектов, но остальные согласятся, что часто все это лишь отвлекает внимание и портит впечатление об игровом процессе. К примеру, взять серию игр Sam & Max. Первая часть — Hit the Road — просто шедевр, остальные же, обогащенные 3D-графикой, не способны привлечь внимание больше чем на полчаса. Но, как говорят, на вкус и цвет. поэтому решайте сами, что вам по душе, красивая картинка, или занятный сюжет, способный завоевать ваше признание за считанные минуты.
Программа ScummVM распространяется для всех ОС совершенно бесплатно и имеет приятный мультиязычный интерфейс. Список поддерживаемых игр огромен, поэтому я решил не размещать его в данном обзоре, дабы не перегружать его. Если же вы захотите что-то уточнить с запуском или настройкой, задавайте вопросы в комментариях. Программа постоянно совершенствуется и обновляется, исправляя ошибки и добавляя все новые игры в список поддерживаемых.
Вот список игровых движков, которые на данный момент поддерживает ScummVM: AGI, AGOS, CINE, COMPOSER, CRUISE, DRACI, DRASCULA, GOB, GROOVIE, HUGO, KYRA, LURE, MADE, MOHAWK, PARALLACTION, QUEEN, SAGA, SCI, SCUMM, SKY, SWORD1, SWORD2, TEENAGENT, TOUCHE, TSAGE, TUCKER. Другими словами, если вы увидите в аннотации к игре одно из этих обозначений, это значит, что игра прекрасно воспроизведется в данном эмуляторе.
Ниже я приведу парочку игр, которые стоит попробовать, если вы решите скачать ScummVM.
1. The Curse of Monkey Island — третья и самая лучшая, на мой взгляд, часть квеста о Гайбраше Трипвуде, парне, который очень хотел стать пиратом. Наверное, это самый интересный и сложный квест, в который мне довелось играть. В озвучке персонажей задействованы профессиональные актеры. Имеется русская версия.
2. Sam & Max: Hit the Road — первый квест из серии игр о Сэме и Максе, переполненный непонятными существами, хитроумными загадками и черным юмором. Имеет хороший русскоязычный перевод.
3. Broken Sword — серия квестов про молодого американца Джорджа Стоббарта, раз за разом попадающего в странные ситуации. Интересный сюжет, детективные загадки и профессиональные актеры не оставят вас равнодушным. Практически все части серии имеют русский перевод.
4. Full Throttle — байкерский квест, который помнят все. Обилие черного юмора и невероятных загадок затянут игроков на долгие часы. Официально издавалась на русском языке.
5. SPY Fox — серия интересных квестов о приключениях лиса — шпиона, своеобразной пародии на Джеймса Бонда. Особенно будет интересна детям. Имеются русские версии.
6. Space Quest — серия игр о космическом уборщике Роджере Вилко, который снова случайно спасает мир. Игра, по сути, выполнена в жанре пародии, поэтому скучать не придется. Имеется достойный русский перевод.
7. Goblins — серия квестов о приключениях гоблинов. Яркая нарисованная графика и забавный юморной сюжет. Вся серия есть на русском языке.
Существует и множество других игр, перечислять которые просто нет смысла, достаточно лишь попробовать некоторые из них, чтобы остаться с ними надолго.
Виталий Горшунов
Используемое автором устройство: HTC Gratia
ScummVM
ScummVM — это собрание созданных заново (независимо от разработчиков оригиналов) игровых движков, изначально разработанное для запуска игр фирмы LucasArts, использующие систему SCUMM (VM в названии обозначает виртуальная машина, англ. virtual machine ). Благодаря продуманной разработке ScummVM также поддерживает множество не-SCUMM игр таких компаний, как Revolution Software и Adventure Soft, для которых разработаны собственные интерфейсы взаимодействия с ресурсами (так называемые движки, англ. engines )
ScummVM — это независимо написанная альтернатива части кода игровых программ, занимающаяся интерпретацией используемых для описания игрового мира скриптовых языков в таких играх, вместо того, чтобы эмулировать аппаратуру машины, на которой запускались игры. В таком качестве ScummVM позволяет играм, которые поддерживаются, запускаться на платформах, отличающихся от тех, под которые они были изначально разработаны.
Поддерживаемые платформы и игры
Портируемость кода является одной из основных целей проекта. [1] Существует официальные порты около десятка операционных систем и платформ, также существуют неофициальные сборки, разрабатываемые добровольцами. В число поддерживаемых платформ входят ОС семейств Microsoft Windows, Mac OS X, Unix, включая GNU/Linux, BSD (FreeBSD, NetBSD, OpenBSD, DragonFly BSD) и Solaris. Также поддерживаются AmigaOS, MorphOS, AROS, Atari/FreeMiNT, BeOS/Haiku/ZETA и OS/2.
ScummVM поддерживается в общей сложности более ста игр, [3] среди которых классические квесты на базе SCUMM издателей LucasArts Entertainment и Humongous Entertainment, ранние квесты на базе AGI Sierra Entertainment, квесты различных разработчиков.
После слияния кодовой базы проекта FreeSCI в 2009 году ScummVM, начиная с версии 1.2.0, стала поддерживать игры на базе SCI. [4]
Примечание
- ↑ScummVM Portability guidelines
- ↑ScummVM для PlayBook
- ↑Список поддерживаемых игр
- ↑ScummVM 1.2.0 «FaSCInating release» is here!
Ссылки
- Программное обеспечение по алфавиту
- Эмуляторы
- Свободные игровые движки
- SCUMM-игры
- Программное обеспечение для Haiku
Истории вокруг движка SCUMM
SCUMM можно считать просто «одним из» видеоигровых движков, но этот движок вызывает почти столько же чувств, что и игры, сделанные на его основе.
Говоря о золотом веке адвенчур LucasArts, нельзя обойти вниманием движок SCUMM, «Script Creation Utility for Maniac Mansion» («утилиту создания скриптов для Maniac Mansion»), который использовался в самых запомнившихся играх всех времён, таких как Full Throttle, Day of the Tentacle, Sam & Max Hit the Road, и, разумеется, Maniac Mansion.
Написали SCUMM Арик Уилмундер (Aric Wilmunder) вместе со знаменитым гейм-дизайнером Роном Гилбертом (Ron Gilbert), обеспечив таким образом возможность создания этих игр. Недавно Уилмундер и журналист Майк Бевэн (Mike Bevan) связались друг с другом по электронной почте и обсудили SCUMM и истории, его окружавшие. В статье представлены избранные фрагменты этого разговора, записанные со слов Уилмундера.
Мы решили, что важно передать слова Уилмундера, потому что SCUMM — это не просто движок или технология. Для многих разработчиков это был способ передачи своего художественного видения тысячам людей в один из самых запомнившихся периодов истории видеоигр.
Эволюция движка
Одним из свойств, отличавших LucasArts от большинства других разработчиков, было то, что многие из нас пришли с мейнфреймов, поэтому мы разрабатывали инструменты и компиляторы на рабочих станциях Sun, а затем создавали оборудование, позволявшее загружать код и данные на нужные платформы. Всё началось с Atari 800, потом Рона [Гилберта] наняли работать с C64, поэтому похожую систему создали и для этой платформы.
Важнейшим преимуществом было то, что мы могли разрабатывать инструменты на C, или, как в случае SCUMM, использовать YACC для обработки и маркировки кода. Большинство разработчиков использовало для написания и выполнения кода одну и ту же машину, поэтому их инструменты использовали возможности только одной платформы.
После первых нескольких лет разработки продуктов для PC, сам PC стал таким же мощным, как и наши первые рабочие станции, поэтому один за другим мы начали выполнять миграцию наших инструментов и постепенно отказались от рабочих станций Sun.
Эволюция возможностей началась очень рано. Я был первым внутренним разработчиком, работавшим на PC, и в то время инструменты и компиляторы были очень грубыми. Например, компиляторы C в случае возникновения ошибок выдавали очень «подробные» описания. На PC можно было получить сообщение типа «File: walk.c Line:409 Error: 4004», после чего нужно было лезть в код и разбираться, в чём проблема, или достать руководство и превратить код ошибки в нечто более понятное. Иногда описания ошибок тоже были запутанными. Так как у нас не было хороших редакторов для написания кода на PC, я использовал редакторы на Sun, а потом переносил файлы. Когда на PC возникали ошибки, я перекомпилировал и отлаживал код на рабочей станции Sun. Это стимулировало меня писать более чистый код, который бы с самого начала работал на двух сильно отличающихся машинах.
На PC было ещё множество дополнительных сложностей, потому что управление, звуки и графика совершенно отличались. Например, мыши не всегда были стандартным оборудованием, поэтому управление было рассчитано на мышь, джойстики или клавиатуру. Это упрощало перенос игрового движка на другие платформы, потому что управление стало модульным. Для звука мы поддерживали внутренний динамик, ещё, кажется, звуковую карту CMS (предшественника Adlib), а также звуковую систему для компьютеров Tandy. Графика тоже была модульной, потому что мы поддерживали чёрно-белые дисплеи Hercules, четырёхцветную CGA-графику, 16-цветную EGA, VGA в 16-цветном режиме и Tandy Graphics в ещё одном графическом режиме. Чтобы реализовать это, вся графика рендерилась в буфер памяти, а затем очень специализированные процедуры копировали буфер в видеокарту. Мы использовали так называемую систему «грязных прямоугольников», отслеживающую те области, которые обновлялись, поэтому мы копировали только необходимые части экрана.
Арик Уилмундер
Общение на SCUMM
SCUMM был языком, компилируемым в размеченной форме. Например, команда «walk dr-fred to laboratory-door» преобразовывала команду Walk в однобайтовую команду. Следующий байт определял, для какого актора или персонажа была эта команда, а объект «laboratory-door» преобразовывался в двухбайтовое число, то есть вся команда уменьшалась до четырёх байт данных. Байт, если вы не знаете — это фрагмент компьютерной памяти, который может содержать численное значение от 0 до 255. Как мы видим, размеченный язык очень эффективен. Интерпретатор никогда не знал, каким актором был «dr-fred»; это было просто число актора, поэтому мы всегда старались избегать жёсткого задания любой специфической информации об игре непосредственно в интерпретаторе.
Единственным исключением из этого правила в Maniac был цвет, которым актор отображал текст…
При разработке Maniac у нас была пара исключений из правила, что интерпретатор никогда не должен иметь кодированных игровых значений. В нём пришлось указать цвета, используемые для акторов, и цвет отображения их фраз. Исходный код встраивал эти значения в интерпретатор. После переноса Maniac на PC и до выпуска Zak McKracken были добавлены две новые команды, чтобы этими значениями можно было управлять из скриптов. «set-actor-talk-color» и «set-actor-color» удаляли специфические команды игры из интерпретатора, чтобы всем управлял скрипт.
Я говорю об интерпретаторе, поэтому давайте рассмотрим его подробнее. Интерпретатор — это программа, запускаемая конечным пользователем. Она инициализирует графику и звуки, считывает файлы с диска и интерпретирует скрипты в этих файлах для выполнения игры. При выпуске игры мы переименовывали интерпретатор в «Monkey.exe» или «Dig.exe», но во время разработки этот инструмент назывался SPUTM, что расшифровывается как «SCUMM Presentation Utility ™». Название на самом деле не является торговым знаком (TM), но нам просто хотелось, назвать его как ещё одну жидкость тела.
SCUMM, или Script Creation Utility for Maniac Mansion был инструментом, размечающим скрипты и объединявшим все игровые ресурсы в файлы, которые мы выпускали на дисках. Версия SCUMM, использованная для Maniac, должно быть, содержала примерно 80% команд, использованных в последующих играх, таких как Full Throttle. После завершения разработки языка большинство важных команд никогда не менялось. «walk bernard to clock» и «walk ben to motorcycle» в сущности ничем не отличались.
Многозадачность SCUMM
Наверно, самой выдающейся частью SCUMM была многозадачность. Это означало, что одновременно можно было выполнять несколько скриптов. Можно было создать часы на стене в офисе Зака Маккракена и анимировать их. Был простой, очень простой скрипт специально для часов, который говорил движку анимации менять одно изображение часов на следующее, давал указание звуковому движку воспроизводить звук тиканья, затем приказывал скрипту «sleep-for 1 second», и повторял действия. Команды Sleep были обманчиво простыми командами, говорившими системе, что скрипт завершён и нужно вернуться назад через какое-то время и продолжить выполнение скрипта с точки, в которой был выполнен выход. «Sleep» ожидала указанное количество времени.
Была также возможность «Wait». Она часто использовалась, когда актору приказывали идти к объекту или повернуться в нужном направлении. Скрипт просто командовал актору идти, затем давал команду «wait-for actor», которая погружала скрипт в сон, пока актор не достигнет нужной точки или не повернётся в нужном направлении. Это позволяло писать скрипты в очень линейном стиле, отражающем последовательность действий, которые должен был выполнить актор.
Всевозможные полезные инструменты с отвратительными названиями
Наряду с SCUMM и SPUTM было ещё множество других инструментов, которые мы разработали для создания игр. SPIT был простым редактором шрифтов для создания разных форматов текстов для разных частей интерфейса. Диалог в верхней части экрана мог иметь один шрифт, другой мог использоваться для экрана сохранения игры, а третий применялся для команд-глаголов интерфейса в нижней части экрана (Walk-To, Pick-Up, Look At и т.д.). FLEM был графическим инструментом, используемым для управления комнатами. Можно было помечать объекты в комнате, их состояния (закрытые или открытые двери) и таким образом создавать области, определяющие доступные для перемещения акторов места. FLEM также позволял просматривать плоскости отсечения, которые были слоями, скрывавшими актора, заходившего за объекты или поверхности. В Maniac была всего одна поверхность, но в последующих играх могло быть до трёх плоскостей, за которыми мог скрываться актор.
Maniac Mansion
MMUCUS был помощников FLEM. MMUCUS получал изображение комнаты и данные объектов, данные плоскостей отсечения и областей, в которых можно ходить, и сжимал данные в файл «room», содержащий всю эту информацию. Это было важно, потому что соединение вместе сжатых данных позволял создателям скриптов вносить быстрые изменения в скрипт, после чего нужно было просто скомпилировать его, чтобы изменения вступили в силу. Файл room оставался неизменным, он менялся только при добавлении объектов или изменении областей, доступных для движения.
BYLE — это наш исходный инструмент анимации, использовавшийся для отрисовки и анимирования акторов. BYLE имел простой движок анимации, который можно было запрограммировать на циклическую смену анимации с одного кадра на другой. Кроме того, он понимал «направление», то есть можно было менять сторону, в которую повёрнут актор. Можно было различными способами сжимать акторов, и это позволяло делать так, что очень простые и быстрые анимации, например как в начале Day of the Tentacle, занимали мало места, а для многоцветных персонажей, например, для Бена Троттла (Ben Throttle), использовался другой способ сжатия, необходимый только при 16 или 32 цветах. Со временем у нас возникла потребность в более сложных анимациях, поэтому был разработан новый инструмент CYST, в котором использовался тот же самый формат данных, но управление большими изображениями значительно упростилось.
Очень недолгое время у нас был инструмент под названием SMEGMA. У одного из программистов был ребёнок, и он сказал нам, что первые кишечные выделения младенца состоят из этого вещества. Оказалось, что он ошибся, а вещество называется Meconium (меконий). Мы не стали выяснять, что такое Smegma, нам просто понравилось название. Но однажды проверили значение слова, и через пару дней сменили название. Вы наверно можете представить, что стоять рядом с нами в столовой было довольно неприятно, мы обсуждали SCUMM, BYLE, MMUCUS, FLEM и так далее. [Прим. пер.: одно из значений scum — семя, bile — желчь, mucus — слизь, FLEM созвучно с phlegm — мокрота.]
Обновление SCUMM
SCUMM критикуют за то, что в него не вносились революционные изменения, и вместо этого он постепенно усовершенствовался. Явным примером этого можно считать графику. Мы начали с поддержки 16-цветной графики в разрешении 320х200. С увеличением количества графических карт мы перешли к 256 цветам и разрешению 640×480. В звуковой системе мы начали с внутреннего динамика IBM и перешли к многоканальному потоковому стереозвуку. Персонажи, которые раньше были высотой всего в несколько пикселей, теперь могли вырастать почти на всю высоту экрана. Интерфейсы тоже эволюционировали: от начального интерфейса с командами-глаголами к сложным UI на основе значков, похожих на современный стиль Mac.
Одним из важных шагов стала интеграция движка INSANE, видеосистемы, разработанной для Rebel Assault. Изначально я нанял Винса Ли (Vince Lee) для работы над версией одной из игр SCUMM для Amiga, но он быстро доказал свои программистские навыки на различных платформах. При работе над SCUMM он увидел, как я занимаюсь тем, что изолирую первичные машиннозависимые части системы для упрощения портируемости на другие компьютеры. При разработке INSANE он попробовал вывести этот подход на новый уровень и добавил возможность потокового воспроизведения и ветвления видео, поэтому мы посчитали очень важным внедрить эту систему в SCUMM. Full Throttle стал первым шагом в этом процессе. Благодаря рок-н-ролльным саундтрекам Gone Jackals, когда кто-нибудь запускал игру в соседней комнате, это быстро замечали окружающие. Движок Throttle был явно неидеальным: когда запускался INSANE, систему SCUMM приходилось останавливать. Поэтому между Throttle и Monkey 3 я попытался полностью интегрировать эти две системы. Я выкинул оригинальную систему видео и курсоров, даже систему шрифтов, поэтому SPUTM на самом деле выполнялся поверх INSANE. Получалось, что мы клали всё больше яиц в одну корзину, но выгода была огромной. Например, если бы я добавил поддержку японского или корейского языков, то и продукты на движке Rebel Assault и продукты на SCUMM могли бы поддерживать японский и корейский.
Впечатляющая многоплатформенность
Благодаря простоте портирования игры SCUMM работали более чем на дюжине систем и примерно на дюжине языков. Мы начали с Commodore 64, потом был IBM PC, Atari ST, Amiga, восьмибитная консоль Nintendo, Fujitsu Towns, [Fujitsu] FM Marty, Sega CD, CDTV, Mac, а недавно добавились ещё и iPhone с iPad. Неплохо для системы, разработанной 25 лет назад.
При наличии таких проектов как ScummVM, написанного фанатами интерпретатора SCUMM, возможна поддержка новых платформ. Именно Monkey Island была выбрана как одна из пяти игр, демонстрирующихся в Смитсоновском музее американского искусства и доказывающих, что хороший сюжет часто более важен, чем новые технологии игр-однодневок.
Не всем было известно, что SCUMM также был основой для множества популярных обучающих игр, таких как Putt-Putt, Freddi Fish и Spy Fox, а также серий Backyard Baseball/Football/Soccer, разработанных Humongous Entertainment. Если взглянуть внутрь, то можно найти те же команды и почти тот же код, что и у их братьев из LucasArts.
Изучение SCUMM
В то время все дизайнеры были также и программистами, поэтому SCUMM, хоть он и был во многих аспектах уникальным, был довольно прост в изучении и кодировании. Во время Maniac или Zak у движка не было руководства, но перед Monkey была нанята группа из 6-8 новых создателей скриптов. Для них написали руководство и провели недельное обучение (Scumm University, «Университет Scumm»). Для курсов Рон взял самую последнюю игру, удалил из неё всё, кроме одной комнаты и поместил в неё объекты, показывающие возможности движка.
Новые создатели скриптов («скамлеты») начинали с этой комнаты и учились основам. За несколько дней их учили, как добавлять новые комнаты, создавать области движения. Некоторые обладали художественными навыками и создавали собственные анимации, другие занимались написанием диалогов. Обычно к концу недели у нас уже было довольно хорошее понимание навыков, которыми обладали «скамлеты», после чего лидеры различных проектов выбирали, кто из них будет работать в их проектах.
Мне кажется, что первый «Университет Scumm», или «Scumm U» начался со стандартного интерфейса с глаголами. Одним из первых проектов всегда был анализ работы интерфейса. Поэтому обычно один-два создателя скриптов начинали с того, что заставляли систему работать. Говоря про обучение «скамлетов», я вспоминаю, что однажды оно проводилось на Ранчо [ранчо Джорджа Лукаса]. Все собрались на третьем этаже главного здания. Офисы Джорджа были на втором этаже, поэтому им нужно было вести себя очень хорошо.
Secret of Monkey Island
Преимущество SCUMM
Одно из самых больших преимуществ SCUMM заключалось в высокой скорости создания прототипов. Дизайнер придумывал идеи для комнат и локаций, потом ведущий художник по фонам начинал делать эскизы. Когда достаточное количество эскизов было готово, их сканировали, очень быстро добавляли и соединяли с помощью SCUMM. Обычно уже через несколько недель после начала процесса дизайна уже было несколько десятков комнат, иногда это были просто карандашные эскизы. Мы брали акторов из другой игры и начинали соединять их вместе. Иногда оказывалось, что комнату нужно перевернуть или перерисовать, если она не очень хорошо подходила, но всё равно можно было прототипировать огромную часть игры.
Создатели скриптов теперь могли создавать предварительные области движения, чтобы актор мог передвигаться по комнате, художники по фонам могли начинать преобразовывать эскизы в окончательную графику, а аниматоры начинали работать над анимацией персонажей. Поскольку окончательные персонажи всё ещё находились в процессе создания, на этом этапе разработки можно было побродить в нарисованной карандашом комнате из Full Throttle, но место основного персонажа мог занимать Гайбраш из игр Monkey Island. Такие замены позволяли дизайнерам экспериментировать и вносить изменения и улучшения с очень низкими затратами труда.
Долгая жизнь SCUMM
Не думаю, что кто-то из нас полагал, что игры SCUMM будут с нами так долго. Я работал над системой примерно двенадцать лет, и постоянно стремился подготовить код к длительному использованию, тестируя его на как можно большем количестве платформ. При разработке под Windows я тестировал его в Windows NT, даже если она не была одной из наших целевых платформ. Но NT требовала более строгих стандартов кода. Поэтому если игра работала в NT, увеличивались шансы на то, что она будет работать на будущих операционных системах Windows.
Также я старался избегать слишком частых трюков в коде, которые могли бы вызывать сбои на компьютерах будущего. Например, можно написать самоизменяющийся код, но при определённых размерах и типах кэша процессора он будет приводить к сбою. Поэтому вместо этого я писал пять или шесть немного отличающихся вариаций одной процедуры, каждая из которых была специально оптимизирована под конкретную ситуацию. Например, было множество версий кода отрисовки акторов. Если актор находился в полноэкранном режиме и не скрывался за другими объектами, я использовал одну версию кода. Если актор выходил за левый или правый край экрана, я делал другую версию. Для масштабирования актора была ещё одна версия. Кажется, было восемь вариаций того, как мог выглядеть актор, и у меня было восемь версий кода, каждый из которых был оптимизирован для наиболее быстрого выполнения задачи. Также изначально я писал код на C, чтобы заставить его работать и оптимизировать. Потом я переписывал код на языке ассемблера, чтобы добиться максимальной скорости. Код на C был удобен, когда мы разрабатывали SCUMM для других компьютеров, потому что разработчики могли запустить этот код и он работал, после чего можно было заняться его оптимизацией.
Scumm 2.0 называлась система для Zak. В Maniac использовалась версия 1.0, в Zak — 2.0, в Monkey — 3.0, а в Indiana Jones and the Last Crusade — что-то вроде 3.0 или 3.1. Мне нужно немного покопаться, чтобы найти точные номера версий. Кроме того, были номера специальных выпусков. Первая 256-цветная версия Indiana Jones была рекламой производителя видеокарт. Я заставил код работать, но в то время на рынке было мало 256-цветных карт, поэтому мы заключили сделку и поставляли игру вместе с видеокартой.
Преимущества интерпретируемых языков
Рон какое-то время работал с интерпретаторами. Он разработал новые команды, которые можно было добавить к Commodore Basic, поэтому он выполнил реверс-инжиниринг этой системы. При создании Maniac он подумал, что это будет самым лучшим подходом, а Чип Монингстар (Chip Morningstar) имел опыт в работе с компиляторами языков, поэтому язык в основном развивался благодаря их сотрудничеству. Ирония в том, что в то время Чип работал над проектом Habitat, в котором вместо интерпретируемого кода поддерживались фрагменты ассемблерного кода 6502, которые менялись и перемещались в память. Сбой любого из этих фрагментов вызывал сбой всей системы. С другой стороны, в SCUMM использовалось всего около 80 команд, и команды были упакованы в байты со значениями от 0 до 255. Если значение команды было больше 80, то система сообщала об ошибке, поэтому SCUMM мог очень быстро дать понять, что выполняет неправильные команды. А Habitat просто «вываливался», и в нём было очень сложно отслеживать ошибки. Думаю, что в ретроспективе Чип решил бы использовать интерпретируемый язык.
Другим преимуществом интерпретируемых языков является лёгкая миграция между разными аппаратными платформами. Интерпретатор был написан удобно портируемым кодом на C, и очень просто анализируется через набор маркеров команд. Ещё одним огромным преимуществом было то, что вся игра была данными. При разработке под новые машины мы знали, что все данные правильны, поэтому работать и искать ошибки нужно было только в очень небольшом количестве кода.
Работа с неподражаемым Роном Гилбертом
Работать с Роном было невероятно забавно. Вот пара баек…
Бóльшая часть нашей ранней графики создавалась традиционными художественными технологиями. Карандаши, ручки, бумага, а случайные ошибки исправлялись ножом Exacto. Однажды Рон стащил одно из лезвий и несколько дней играл с ним на своём столе. Он привык при написании кода держать нож между зубами с высунутым изо рта лезвием. В один день я услышал громкий вздох, обернулся и увидел кровь, стекающую на пол с руки Рона. После того, как я помог забинтовать руку, мы забеспокоились о возможности столбняка, поэтому я позвонил своей жене и попросил сделать Рону укол. Рону на лицо упали волосы, а он забыл, что у него между зубов лезвие, сделал движение рукой, чтобы поправить волосы и воткнул лезвие прямо в ладонь. После этого ножи не покидали художественного отдела.
В другой раз мы с Роном работали вечером в здании на бульваре Кернер, рядом с Industrial Light & Magic, и у нас возникло серьёзное разногласие о том, как нужно реализовать фрагмент кода. Рон и я часто работали до десяти-одиннадцати часов вечера, поэтому мы хорошо знали уборщиков. Один из них даже потом стал киномонтажёром. Ну так вот, в тот вечер я был уверен, что моё решение проблемы было правильным, Рон был уверен, что лучше его подход, по какой-то причине спор постепенно нарастал и закончился соревнованием в крике. Наконец Рон встал, кажется, обругал меня, вышел и со всей силы хлопнул дверью. Наверно, я подумал, что избавился от него, и вернулся к написанию кода. Примерно через пять минут Рон вернулся и спокойно сказал: «Ладно, мы закончили с этим. Теперь давай выясним, как решить эту проблему». Уже через несколько минут мы уже вернулись к доске и работали над решением, более внимательно прислушиваясь друг к другу. В результате мы создали гибридное решение, позаимствовавшее лучшее из обеих наших идей. Рон был настоящим мастером совместной работы.
Тоже в начале разработки один из наших сотрудников должен был провести презентацию в компьютерном клубе в Беркли. У нас не было серьёзных дедлайнов, поэтому мы залезли в машину, чтобы пересечь мост Ричмонд-Сан-Рафаэль и посмотреть выступление. Примерно посередине поста Рон увидел стоящую на аварийной остановке машину, поэтому я остановился. Это был наш сотрудник, у него спустило шину. Запаски у него не было, а моя не подошла, но он не хотел оставлять машину, поэтому отдал нам две коробки флоппи-дисков и попросил провести презентацию вместо него.
У нас не было никакого плана выступления, только диски. Поэтому когда нас представили, я просто начал вытаскивать диски и загружать всё, что найду, на компьютер, в то время как Рон произносил совершенно импровизированную речь. Учась в колледже, Рон работал на радио, и был в «утренней команде», поэтому ощущал себя как рыба в воде. Я никогда не любил публичные выступления, но хорошо умел показывать программные «демки». Презентацию восприняли очень хорошо, и мы возвращались домой воодушевлёнными. У нас было хорошее настроение и на следующее утро, до десяти часов, пока не появился наш сотрудник. Он был в гневе, и мы не могли понять, почему. Мы прикрыли его задницу, да и публика осталась довольна. Оказалось, что в зале находился друг нашего сотрудника. Когда его спросили, показывали ли демо какой-то определённой части, то оказалось, что нет. Мы не знали, что было на дисках, и наверно пропустили её. Вместо того, чтобы поблагодарить нас, сотрудник подумал, что мы намеренно саботировали его демо.
Рон Гилберг, Арик Уилмундер, Ноа Фальштейн, примерно 1985 год (фото с Mobygames)
В ночь землетрясения Лома-Приета мы с Роном должны были поехать в Сан-Франциско, чтобы найти его подругу. Мосты были перекрыты, мы видели, что пожар поглотил квартал в районе Марина, и нам нужно было найти её. Моя жена была очень встревожена, но я не хотел оставлять Рона одного. Мы уже собирались выходить из дома, но зазвонил телефон. Это была подруга Рона, она села в автобус до Сан-Рафаэля и её нужно было подвезти.
В какой-то момент Рон ушёл из LucasArts, потому что его подруга должна была уехать преподавать в Китай. В это время я работал над Maniac Mansion для PC, поэтому когда я встречал написанные Роном части кода, которые не понимал, то буквально преобразовывал код ассемблера 6502 напрямую в C, чтобы система работала, даже если я не осознавал, что она делала. Этот код переписали после возвращения Рона, но даже спустя годы ходили слухи о затаившемся в системе коде 6502.
На время своего отъезда Рон одолжил свою новую Mazda RX7 другому коллеге. К сожалению, когда однажды вечером он возвращался домой, дорогу перебежал олень, машина слетела с дороги и перевернулась на забор с колючей проволокой. Поцарапался кузов и разбился люк на крыше. До приезда Рона коллега отремонтировал весь кузов и перекрасил машину. Рон не знал об аварии и удивился, потому что солнцезащитный люк на крыше казался ему другим. Потом коллега рассказал ему, что случилось, Рон успокоился и не стал сердиться.
Мой друг SCUMM
25 лет — это очень большой срок. Не думаю, что есть общий список всех игр, в которых использовался SCUMM, но между LucasArts и Humongous было, наверно, 30-40 разных игр. Я знаю — некоторые дизайнеры ощущали, что SCUMM ограничивает их возможности. Один из них сказал, что использовать SCUMM — это как пытаться сдвинуть слона стирательной резинкой.
Но я думаю, что самая популярная игра этого дизайнера была написана на SCUMM. Иногда ограничения в работе приводят к сосредоточению усилий. SCUMM был предназначен для выполнения одной задачи, и если вашей целью было создание отличных адверчур, то SCUMM был точно лучшим вариантом.
Я много раз играл во все игры SCUMM, от начала до конца, хотя в The Dig, кажется, я что-то пропустил и не играл в неё с самого начала. Меня разочаровало то, что я видел решение большинства лучших головоломок заранее, или в процессе разработки, или когда над ними работали художники с авторами скриптов. Некоторые головоломки я пропустил совершенно, потому что знал решение заранее и мне не нужно было искать подсказки. Кроме того, я играл в игры на многих языках и на разных машинах, потому что нёс ответственность за международные версии и кросс-платформенную разработку.
Мой ответ на вопрос о любимой игре на SCUMM остаётся тем же в течение многих лет. Мне всегда нравится и я больше всего горжусь самой последней игрой, над которой мы работаем. С каждой новой игрой мы старались раздвинуть границы и делать то, что до нас не делал никто. Я всегда считал: зачем вообще работать, если мы не делаем новый шаг в искусстве или технологиях? У меня есть любимые моменты, например, начальная анимация в Day of the Tentacle или юмор Sam and Max, музыка Full Throttle или возможность перемещения всеми тремя персонажами Maniac. Каждое достижение было особенным, но все они, как родные дети, занимают особое место в сердце.
- История IT
- Старое железо
- Игры и игровые консоли