Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
SCUMM
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{Short description|Game engine developed by LucasArts}} {{Use mdy dates|date=February 2023}}{{More citations needed|date=August 2010}} {{Infobox programming language | name = Script Creation Utility for Maniac Mansion | logo = <!-- (filename) --> | logo caption = | screenshot = Image:Maniac Mansion.png | screenshot caption = ''[[Maniac Mansion]]'' (1987) on the [[Commodore 64]], the game for which the SCUMM system was originally designed | paradigm = <!-- or: | paradigms = --> | family = | designers = {{ubl|Aric Wilmunder|[[Chip Morningstar]]|[[Ron Gilbert]]|Brad P. Taylor}} | developer = [[Lucasfilm Games]]{{efn|Later known as LucasArts.}} | released = {{Start date and age|1987}}<!-- Entry needs: |MM|DD ? --> | latest release version = 8 | latest release date = {{Start date and age|1998}}<!-- Entry needs: |MM|DD ? --> | latest preview version = | latest preview date = <!-- {{Start date and age|YYYY|MM|DD|df=yes/no}} --> | typing = | scope = | programming language = <!-- Assembly, C, C++? --> | discontinued = yes | platform = [[Cross-platform]] | operating system = | license = | file ext = | file format = <!-- or: | file formats = --> | website = <!-- {{URL|www.example.com}} --> | implementations = | dialects = | influenced by = | influenced = }} '''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 [[Platform (computing)|platforms]]. SCUMM is also a host for embedded game engines such as the ''Interactive MUsic Streaming Engine'' ([[iMUSE]]), the ''INteractive Streaming ANimation Engine'' ([[INSANE (software)|INSANE]]), CYST (in-game animation engine), FLEM (places and names object inside a room), and MMUCAS. SCUMM has been released on these platforms: [[3DO Interactive Multiplayer|3DO]], [[Amiga]], [[Apple II]], [[Atari ST]], [[Commodore CDTV|CDTV]], [[Commodore 64]], [[FM Towns]] & [[FM Towns Marty|Marty]], [[classic Mac OS|Macintosh]], [[Nintendo Entertainment System]], [[MS-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 software|open-source]] [[ScummVM]] software. <!-- List of platforms is FIXED. DO NOT DELETE OR ADD items, such as consoles like NDS, PSP, PS2 etc. This article is about original SCUMM and not ScummVM --> == History == The original version was coded by [[Ron Gilbert]] (with some initial help by [[Chip Morningstar]] a.k.a. UnXman) in 1987,<ref>{{Citation |title=Classic Studio Postmortem: Lucasfilm Games |date=March 24, 2014 |url=https://www.youtube.com/watch?v=HDvEFbh6I2g |publisher=[[GameSpot]] |language=en |access-date=2023-02-21}}</ref>{{Rp|location=34:21}} with later versions enhanced by Aric Wilmunder (a.k.a., the ''SCUMM Lord'') and Brad P. Taylor. This is a token language that provided groundbreaking coding techniques. Tokens like P.R.I.N.E. were the first to be utilized. The nature of SCUMM emerged from the background of most of the early programmers at LucasArts, including Wilmunder, who had been programmers for [[minicomputer]]s and [[Unix]] workstations. At the time, personal computers (PC) did not have large enough abilities or speed to edit and compile programs, so often the LucasArts coders would write code as cleanly as possible on a [[Sun Microsystems|Sun]] workstation to remove all errors so that, while compiling on a PC would be slow, it would be less error-prone. This concept informed the idea of a scripting language that would be cross-platform.<ref name="scumm history">{{cite web|url=https://www.gamedeveloper.com/design/the-scumm-diary-stories-behind-one-of-the-greatest-game-engines-ever-made |title=The SCUMM Diary: Stories behind one of the greatest game engines ever made |first=Mike |last=Bevan |date=July 21, 2013 |access-date=May 30, 2024 |work=[[Gamasutra]]}}</ref> SCUMM was developed to be a tool that converted human-readable commands into [[byte]]-sized tokens that then would be read by an executable interpreter program that presented the game to the player. For example, the SCUMM command <code>walk dr-fred to laboratory-door</code> would be tokenized to a 4-byte command. They did not want to have specific details about a game hard-coded into the script, so the tokenizer would be able to recognize actors by their name from the script instead of by internal numbers. The only exception was to display a character's dialog in a different text color for ''[[Maniac Mansion]]'' in which they had to include the number, but this was subsequently revised by the time ''[[Zak McKracken and the Alien Mindbenders|Zak McKracken]]'' was released.<ref name="scumm history"/> The scripts included the ability to [[Computer multitasking|multitask]], such as having background actors enact behavior while waiting for foreground actions to complete.<ref name="scumm history"/> The combined tools enabled for [[rapid prototyping]] of a game. Scripters could work with preliminary character and background art drawn by the artists to hone their scripts while providing feedback to the artists.<ref name="scumm history"/> The SCUMM program was responsible for tokenizing the scripts and gathering all other assets (such as art and sound) as a package. The reusable interpreter was called SPUTM, the ''SCUMM Presentation Utility (TM)'' which was renamed on shipment of the game to the name of the game's executable. SPUTM would interpret the scripts, load assets from disc, and handle the other user interactions with the game.<ref name="scumm history"/> SPUTM was not actually trademarked, but according to Wilmunder, they wanted "to name it after [[Sputum|another bodily fluid]]".<ref name="scumm history"/> SCUMM was subsequently reused in many later LucasArts adventure games being both updated and rewritten several times. According to Wilmunder, the version of SCUMM for ''Maniac Mansion'' had about 80% of the commands that would end up being used in the later versions of the engine, with most key commands requiring no modification.<ref name="scumm history"/> Other tools and engines were developed alongside SCUMM to aid in development, and named for other body fluids.<ref name="scumm history"/> SPIT was used to manage text fonts on different parts of the screen. FLEM was used to define a specific room, track objects within it, and specify [[Clipping (computer graphics)|clipping planes]] for character animation. MMUCAS was used with FLEM to compile a room and its objects into one file that would enable the scripters to make rapid changes without having to recompile the room's description. BYLE and subsequently CYST were used for character animations and scaling, the latter used for the more complex art in LucasArts' later games. Following his departure from LucasArts and co-founding of [[Humongous Entertainment]] in 1992, Gilbert struck a deal with LucasArts which would grant Humongous a license to use the SCUMM engine in the development of their games, on the condition that he continue to develop improvements to the engine for use by both companies.<ref>{{cite web|url=https://www.nightdivestudios.com/interview-ron-gilbert/|title=Interview with Ron Gilbert|website=Nightdive Studios|date=June 22, 2014|access-date=October 16, 2023}}</ref> For the game ''[[Full Throttle (1995 video game)|Full Throttle]]'', the team worked to integrate SCUMM with the [[INSANE (software)|INSANE]] animation engine that had formerly been developed for ''[[Star Wars: Rebel Assault]]''. Though Wilmunder had gotten the two systems to work for shipment of ''Full Throttle'', the interaction between the two was not always stable, and spent time before ''[[The Curse of Monkey Island]]'' to have SCUMM work atop the INSANE engine, replacing some of the SCUMM engine parts to use that were native to INSANE.<ref name="scumm history"/> Internally, much of the workings of SCUMM were undocumented, as Wilmunder believed that it was relatively simple to learn, but he changed this approach before ''The Secret of Monkey Island''. To train new hires on the engine, Gilbert put them through ''SCUMM University'', a week-long period where they were taught how to use the SCUMM engine. These new hires, called ''{{not a typo|scummlets}}'', then were given the opportunity to explore and expand on example work to help identify where they would best fit into the development team.<ref name="scumm history"/> LucasArts finally abandoned the SCUMM engine in 1998 when they switched to [[GrimE]], using the [[free software]] scripting language [[Lua (programming language)|Lua]], for the games ''[[Grim Fandango]]'' and ''[[Escape from Monkey Island]]''. Humongous Entertainment continued to use the engine for all its PC games, including the ''[[Backyard Sports]]'' series, until the release of ''Backyard Soccer 2004'' in 2003.<ref>{{Citation |last=Cifaldi |first=Frank |title=The Secrets of Monkey Island - An Evening With Ron Gilbert |date=2020-10-30 |url=https://www.youtube.com/watch?v=ikaqus5_QIg |work=[[Video Game History Foundation]] |language=en |access-date=2023-02-21}}</ref>{{Rp|location=3:34:00|quote=I mean obviously the adventure games were done in SCUMM but the whole sports series of ''Backyard Sports'', I mean those were all done in SCUMM.}} Subsequent games would be developed on the [[Python (programming language)|Python]]-based YAGA engine, including ''[[Putt-Putt: Pep's Birthday Surprise]]'' and ''[[Pajama Sam: Life Is Rough When You Lose Your Stuff!]]'', the only Humongous adventure games to not be developed using the SCUMM engine. In March 2016, Wilmunder revealed that he would share design documents for many of LucasArts' adventure games and the source code for the SCUMM engine, which he plans to provide in digital format via [[GitHub]].<ref>{{Cite web|url=https://www.gamedeveloper.com/design/scumm-co-creator-digs-up-game-design-treasure-trove |title=SCUMM co-creator digs up game design treasure trove |work=[[Gamasutra]] |first=Chris |last=Kerr |date=March 23, 2016 |access-date=May 30, 2025}}</ref> == Design == [[Image:Loom interface screenshot.png|thumb|''[[Loom (computer game)|Loom]]'' (1990) replaces the conventional SCUMM interface of verbs with spells played on a musical [[distaff]].]] Most SCUMM games feature a verb–object design paradigm. The player-controlled character has an inventory, and the game world is littered with objects with which the player can interact, using a variety of verbs. A large set of these were often featured at the bottom of the screen in the early games, but by ''[[Full Throttle (1995 video game)|Full Throttle]]'' (1995) and ''[[The Curse of Monkey Island]]'' (1997) these had been reduced to a "verb coin" appearing at the mouse cursor with the option to use character's eyes (to ''look''), hands (to ''use'', ''pick up'', ''push'', ''pull'', etc.), or mouth (to ''talk'', ''consume'', ''inhale''). Humongous Entertainment's games simplified this interface, with a transparent mouse cursor graphic that would become filled in when the player could interact with an object, or transform to an arrow to indicate a clickpoint that will take the player to a new screen. Puzzles generally involve using the right verb action with the appropriate object—"use biscuit cutter with rubber tree", for example. "Talk to" commonly produces dialogue sequences, in which the player selects from a list of predefined questions or comments, and the character they are talking to replies with a predefined response. The notable exception to this general paradigm is ''[[Loom (computer game)|Loom]]'' (1990), which does not use the standard verb–object interface, but replaces most actions with a selection of spells played on an instrument. == Reimplementation == === Compiler === ScummC is a set of tools (including a script and a costume compiler, a walkboxes editor, charset, graphics, audio and MIDI tools), able to compile its own [[JavaScript]]-like language into SCUMM v6 [[bytecode]], runnable as is in [[ScummVM]]. It allows anyone with the needed skills to create new and original SCUMM games, with features on par with ''[[Day of the Tentacle]]'' and ''[[Sam & Max Hit the Road]]''.<ref name=":0">{{Citation |last=Bedel |first=Alban |title=ScummC - A Scumm Compiler |date=2023-01-26 |url=https://github.com/AlbanBedel/scummc |archive-url=https://web.archive.org/web/20150904033643/https://github.com/AlbanBedel/scummc |access-date=2023-02-21 |archive-date=2015-09-04}}</ref> A similar project named ScummGEN aims to achieve the same thing, with user-friendly tools.<ref>{{Cite web |title=ScummGEN |url=https://code.google.com/archive/p/scummgen |archive-url=https://web.archive.org/web/20100716192552/http://code.google.com/p/scummgen/ |archive-date=2010-07-16 |access-date=2023-02-21 |website=[[Google Code]]}}</ref> Scummbler is a compiler for SCUMM bytecode, for versions 3 to 5 of the SCUMM engine.<ref>{{Cite web |last=Dougal Myers |first=Laurence |title=Scummbler |url=http://www.jestarjokin.net/apps/scummbler/ |archive-url=https://web.archive.org/web/20140802035037/http://www.jestarjokin.net/apps/scummbler |archive-date=2014-08-02 |access-date=2023-02-21 |website=JestarJokin.net}}</ref><ref>{{Cite web |title=Scummbler |url=https://bitbucket.org/jestar_jokin/scummbler |access-date=2023-02-21 |website=[[BitBucket]]}}</ref> It uses scripts decompiled from the original game files, retrieved using a combination of an unpacking tool like ScummPacker<ref>{{Cite web |last=Dougal Myers |first=Laurence |title=ScummPacker |url=http://www.jestarjokin.net/apps/scummpacker/ |archive-url=https://web.archive.org/web/20131108013126/http://www.jestarjokin.net/apps/scummpacker |archive-date=2013-11-08 |access-date=2023-02-21 |website=JestarJokin.net}}</ref><ref>{{Cite web |title=ScummPacker |url=https://bitbucket.org/jestar_jokin/scummpacker |access-date=2023-02-21 |website=[[BitBucket]]}}</ref> (also by the author of Scummbler), and the ''descumm'' tool from ScummVM. These scripts can be re-inserted into the original game files, making it useful for modifying existing games, such as for translation. Also available are an image encoder-decoder,<ref>{{Cite web |last=Dougal Myers |first=Laurence |title=SCUMM Image Encoder |url=http://www.jestarjokin.net/apps/scummimg/ |archive-url=https://web.archive.org/web/20150215134405/http://jestarjokin.net/apps/scummimg |archive-date=2015-02-15 |access-date=2023-02-21 |website=JestarJokin.net}}</ref><ref>{{Cite web |title=Scumm Image Encoder |url=https://bitbucket.org/jestar_jokin/scumm-image-encoder |access-date=2023-02-21 |website=[[BitBucket]]}}</ref> and a tool to assist in mapping speech files to text.<ref>{{Cite web |last=Dougal Myers |first=Laurence |title=ScummSpeaks |url=http://www.jestarjokin.net/apps/scummspeaks/ |archive-url=https://web.archive.org/web/20150215134437/http://jestarjokin.net/apps/scummspeaks |archive-date=2015-02-15 |access-date=2023-02-21 |website=JestarJokin.net}}</ref><ref>{{Cite web |title=ScummSpeaks |url=https://bitbucket.org/jestar_jokin/scummspeaks/src/master/ |access-date=2023-02-21 |website=[[BitBucket]]}}</ref> === Interpreters === [[ScummVM]] is a [[free software|free]] and [[open source software]] project to make a portable, [[Simple DirectMedia Layer]] (SDL) library-based SCUMM-engine client which allows many of the SCUMM-engine games to be played on systems where the original versions will not work or have trouble operating, including modern [[Microsoft Windows|Windows]] and [[Macintosh]] systems, [[Linux]] (including portable handhelds—[[Android (operating system)|Android]], [[GP2X]], [[GP2X Wiz]], [[Maemo]], etc.), [[BeOS]]-[[Haiku (operating system)|Haiku]], [[AmigaOS]] (3.x, 4.0, and its clones [[MorphOS]] and [[AROS]]), [[Atari TOS]] (including its successors—[[EmuTOS]], [[MagiC]], [[FreeMiNT]] etc.), [[Palm OS]], [[Windows Mobile]] ([[Pocket PC]]), [[Dreamcast]], [[PlayStation 2]], [[PlayStation Portable]], [[Nintendo DS]], [[Wii]], [[Symbian]] (SeriesXX and UIQ), [[iOS]] ([[iPad]], [[iPhone]], [[iPod Touch]]), [[webOS]] and [[QNX]]-[[BlackBerry PlayBook|Playbook]] platforms.<ref>[http://wiki.scummvm.org/index.php/Platforms SCUMMVM compatibility list] {{webarchive|url=https://web.archive.org/web/20060615021407/http://wiki.scummvm.org/index.php/Platforms |date=2006-06-15}}</ref>{{Unreliable source?|date=February 2023}} {{not a typo|scvm}} is a SCUMM interpreter developed by the ScummC author.<ref name=":0" /> As of April 2008, it is in a prototype state, and is meant to become a script debugger for ScummC development. hiscumm is an attempt to port {{not a typo|scvm}} and some bits of ScummVM to the [[Haxe]] platform, to produce an interpreter with an [[Adobe Flash]] backend.<ref>{{Cite web |last=Urquhart |first=James |date=2008-03-07 |title=What not to write in haXe, Part II |url=http://www.cuppadev.co.uk/2008/03/what-not-to-write-in-haxe-part-ii/ |archive-url=https://web.archive.org/web/20150519170256/http://www.cuppadev.co.uk/2008/03/what-not-to-write-in-haxe-part-ii/ |archive-date=2015-05-19 |website=CuppaDev}}</ref><ref>{{Citation|last=Urquhart|first=James|title=jamesu/hiscumm|date=2019-02-11|url=https://github.com/jamesu/hiscumm|access-date=2021-03-19}}</ref> == References and in-jokes == In-joke references were a common feature of [[LucasArts adventure games]]. Developers used the name of their engine for comic effect in several games. ''Razor and the Scummettes'', a punk band mentioned in ''[[Maniac Mansion]]'', and the ''SCUMM bar'' in the ''[[Monkey Island (series)|Monkey Island]]'' series are both named after the scripting language. In ''[[Escape from Monkey Island]]'', victim of a hostile takeover, the ''SCUMM bar'' becomes the ''[[Lua (programming language)|Lua]] bar'', a reference to the programming language which replaced the engine used for the prior games. SCUMM is also listed in the ingredients of grog in ''[[The Secret of Monkey Island]]''. == See also == * [[Adventure Game Interpreter]] * [[Z-machine]] == Notes == {{Notelist}} == References == {{Reflist}} == External links == * [https://web.archive.org/web/20040420041002/http://members.fortunecity.com/harang/scumm.html SCUMM history] {{LucasArts adventure games}} {{Video game engines}} [[Category:Adventure game engines]] [[Category:LucasArts games]] [[Category:Point-and-click adventure games]] [[Category:Programming languages created in 1987]] [[Category:SCUMM games| ]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:Citation
(
edit
)
Template:Cite web
(
edit
)
Template:Infobox programming language
(
edit
)
Template:LucasArts adventure games
(
edit
)
Template:More citations needed
(
edit
)
Template:Not a typo
(
edit
)
Template:Notelist
(
edit
)
Template:Reflist
(
edit
)
Template:Rp
(
edit
)
Template:Short description
(
edit
)
Template:Unreliable source?
(
edit
)
Template:Use mdy dates
(
edit
)
Template:Video game engines
(
edit
)
Template:Webarchive
(
edit
)