Кіріспе
LucasArts Script Creation Utility for Maniac Mansion (SCUMM) – Lucasfilm Games-те әзірленген, кейіннен LucasArts деп аталған, олардың графикалық оқиғалық ойыны Maniac Mansion (1987) жасауды жеңілдету үшін жасалған ойын қозғалтқышы. Одан кейін ол LucasArts ойындары мен Humongous Entertainment ойындары үшін қозғалтқыш ретінде пайдаланылды. Бұл ойын қозғалтқышы мен бағдарламалау тілінің арасындағы жатады, дизайнерлерге ойынның бастапқы коды жазылған тілде код жазбай-ақ, локацияларды, заттарды және диалогтар тізбегін жасауға мүмкіндік береді. Сондай-ақ, бұл ойынның сценарийі мен дерек файлдарын платформааралық етуге, яғни әртүрлі платформаларда қайта пайдалануға мүмкіндік берді. 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. ScummVM ашық кодты бағдарламалық қамтамасын пайдалану арқылы бірнеше SCUMM ойындары ресми және бейресми түрде басқа жүйелерге көшірілді.
Script Creation Utility for Maniac Mansion (SCUMM) is a video game engine developed at Lucasfilm Games, later renamed LucasArts, to ease development on their graphic adventure game Maniac Mansion (1987). It was subsequently used as the engine for later LucasArts adventure games and Humongous Entertainment games. It falls somewhere between a game engine and a programming language, allowing designers to create locations, items and dialogue sequences without writing code in the language in which the game source code ends up. This also allowed the game's script and data files to be cross platform, i. e., re used across various platforms. SCUMM is also a host for embedded game engines such as the Interactive MUsic Streaming Engine (iMUSE), the INteractive Streaming ANimation Engine (INSANE), CYST (in game animation engine), FLEM (places and names object inside a room), and MMUCAS. SCUMM has been released on these platforms: 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), and TurboGrafx 16/PC Engine. Several SCUMM games have been officially and unofficially ported to other systems through use of the open source ScummVM software.
Тарих
Бастапқы нұсқаны 1987 жылы Рон Гилберт (Chip Morningstar, сондай-ақ UnXman деп танылған, көмегімен) кодтаған, ал кейінірек нұсқаларын Арик Уилмундер (a.k.a., SCUMM Lord) және Брэд П. Тейлор жетілдірген. Бұл – жаңа кодтау техникаларын ұсынған белгілік тіл. P.R.I.N.E. сияқты белгілер алғаш рет қолданылды. SCUMM-нің мәні LucasArts-тағы алғашқы бағдарламалаушылардың көпшілігінің, оның ішінде Вилмундердің, миникомпьютерлер мен Unix жұмыс станцияларында бағдарламалау тәжірибесінен туындады. Сол кезде жеке компьютерлердің (PC) бағдарламаларды өңдеу және компиляциялау үшін жеткілікті мүмкіндіктері мен жылдамдығы болмағандықтан, LucasArts бағдарламашылары Sun жұмыс станциясында мүмкіндігінше таза код жазып, барлық қателерді жоюға тырысты. Осылайша, PC-де компиляциялау баяу болғанымен, қателерге ұшырау ықтималдығы азайтылды. Бұл тұжырымдама платформааралық скрипт тілі идеясын қалыптастырды. SCUMM адам оқи алатын командаларды байт өлшемді белгілерге түрлендіретін құрал ретінде жасалды, оларды орындалатын интерпретатор бағдарламасы оқып, ойынды ойыншыға көрсететін. Мысалы, «Dr Fred» лаборатория есігіне бару» деген SCUMM командасы 4 байттық командаға түрлендірілетін. Олар ойын туралы нақты мәліметтерді сценарийге тікелей енгізуді қаламады, сондықтан токендеуші ішкі нөмірлердің орнына актерлерді сценарийдегі аттары бойынша тани алатын. Бір ғана ерекшелік – Maniac Mansion ойынында кейіпкердің сөзін басқа түспен көрсету үшін нөмірді қосу қажет болды, бірақ бұл кейіннен Zak McKracken шығарылған кезде қайта қарастырылды. Full Throttle ойыны үшін команда SCUMM-ді бұрын Star Wars: Rebel Assault үшін жасалған INSANE анимациялық қозғалтқышымен біріктіру үшін жұмыс істеді. Уилмундер екі жүйені Full Throttle шығару үшін жұмыс істеуге мәжбүрлегенімен, олардың өзара әрекеттесуі әрдайым тұрақты болған жоқ. Сондықтан The Curse of Monkey Island шығар алдында INSANE қозғалтқышының өзіне тән бөліктерін пайдаланып, SCUMM қозғалтқышының кейбір бөліктерін ауыстыру арқылы INSANE-нің үстінде SCUMM жұмыс істеуіне уақыт жұмсалды. Келесі ойындар, соның ішінде Putt Putt: Pep's Birthday Surprise және Pajama Sam: Life Is Rough When You Lose Your Stuff!, Python негізіндегі YAGA қозғалтқышында жасалды. Бұл Humongous adventure ойындарының SCUMM қозғалтқышын пайдаланбаған жалғыз ойындары болды. 2016 жылдың наурыз айында Уилмундер LucasArts-тың көптеген adventure ойындарының дизайн құжаттарын және SCUMM қозғалтқышының бастапқы кодын бөлісетінін, оларды GitHub арқылы цифрлық форматта ұсынатынын мәлімдеді.
Дизайн
SCUMM ойындарының көпшілігі етістік-объект дизайны парадигмасына негізделген. Ойыншы басқаратын кейіпкерде инвентаризациясы бар, ал ойын әлемі ойыншының әртүрлі етістіктерді қолдана отырып өзара әрекеттесе алатын заттармен толы. Осы етістіктердің үлкен жиынтығы алғашқы ойындарда экранның төменгі жағында көрсетілетін, бірақ Full Throttle (1995) және The Curse of Monkey Island (1997) ойындарында тышқан курсорымен бірге пайда болатын "әрекет шеңберіне" дейін азайтылды. Бұл шеңбер көздерді (қарау үшін), қолдарды (пайдалану, жинау, итеру, тарту және т.б.) немесе ауызды (сөйлесу, жеу, дем алу) қолдану опцияларын ұсынатын. Humongous Entertainment ойындары бұл интерфейсті жеңілдетіп, ойыншы объектімен өзара әрекеттесе алатын кезде толтырылатын, ал жаңа экранға көшіретін нүктені көрсету үшін жебеге айналатын мөлдір тышқан курсоры графигін пайдаланды. Жұмбақтар көбінесе дұрыс етістік әрекетін тиісті объектімен қолдануды қамтиды, мысалы, "резеңке ағашқа печенье кескішін қолдану". "Сөйлесу" әдетте алдын ала анықталған сұрақтар немесе түсініктемелер тізімінен ойыншы таңдайтын және сөйлесіп тұрған кейіпкердің алдын ала анықталған жауаппен жауап беретін диалогтар тізбегін тудырады. Бұл жалпы парадигмадан ерекшеленетіні – Loom (1990) ойыны, ол стандартты етістік-объект интерфейсін қолданбай, көптеген әрекеттерді музыкалық аспапта ойналатын сиқырларды таңдаумен ауыстырады.
Компилятор
ScummC – бұл құралдар жиынтығы (скрипт және костюм компиляторы, шолғыш редакторы, символ жинағы, графика, аудио және MIDI құралдары), өзінің JavaScript-қа ұқсас тілін SCUMM v6 байт-кодына компиляциялай алады, оны ScummVM-де өзгеріссіз орындауға болады. Бұл қажетті білімі бар кез келген адамға Day of the Tentacle және Sam & Max Hit the Road сияқты мүмкіндіктерге ие жаңа және түпнұсқа SCUMM ойындарын жасауға мүмкіндік береді. ScummGEN деп аталатын ұқсас жоба да соған қол жеткізуді мақсат етеді, бірақ ол пайдаланушыға ыңғайлы құралдармен жабдықталған. Scummbler – SCUMM байт-кодының 3-тен 5-ке дейінгі нұсқаларына арналған компиляторы. Ол бастапқы ойын файлдарынан декомпиляцияланған скрипттерді пайдаланады, олар ScummPacker (Scummbler авторының құралы) және ScummVM-нің descumm құралын қолдану арқылы алынады. Бұл скрипттерді бастапқы ойын файлдарына қайта енгізуге болады, бұл аударма сияқты қолданыстағы ойындарды өзгерту үшін өте пайдалы. Сонымен қатар, кескін кодтаушы-декодтаушы және сөйлеу файлдарын мәтінмен сәйкестендіруге көмектесетін құрал да қол жетімді.
Аудармашылар
ScummVM - 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 платформаларында көптеген SCUMM қозғалтқышы ойындарын ойнауға мүмкіндік беретін еркін және ашық бастапқы кодты бағдарламалық жоба. Сенімсіз дереккөз: date=February 2023. Бұл ScummC авторы әзірлеген SCUMM интерпретаторы.
is a SCUMM interpreter developed by the ScummC author.
Анықтамалар мен ішкі әзіл-сықақ
LucasArts ойын-сауық ойындарында әзіл-қалжыңға сілтемелер жиі кездесетін. Дамушылар бірнеше ойында қозғалтқыштарының атын күлкілі эффект үшін пайдаланды. "Maniac Mansion" ойынында еске алынған "Razor and the Scummettes" панк-тобы және "Monkey Island" сериясындағы SCUMM бары – бәрі де сценарий тілінің атымен аталған. "Monkey Island-тен қашу" ойынында, жаулап алу салдарынан, SCUMM бары Lua барына айналады, бұл бұрынғы ойындарда қолданылған қозғалтқышты алмастырған бағдарламалау тіліне сілтеме жасайды. "Monkey Island-дің құпиясы" ойынындағы грогтың құрамында да SCUMM тізімделген.