Script Creation Utility for Maniac Mansion (SCUMM) is a video
game engine
A game engine is a software framework primarily designed for the development of video games which generally includes relevant libraries and support programs such as a level editor. The "engine" terminology is akin to the term " software engine" u ...
developed at Lucasfilm Games, later renamed
LucasArts
Lucasfilm Games (known as LucasArts between 1990 and 2021) is an American video game brand licensing, licensor, former video game developer and video game publisher, publisher, and a subsidiary of Lucasfilm. It was founded in May 1982 by George ...
, to ease development on their
graphic adventure game
An adventure game is a video game genre in which the player assumes the role of a protagonist in an interactive story, driven by exploration and/or puzzle-solving. The genre's focus on story allows it to draw heavily from other narrative-based ...
''
Maniac Mansion'' (1987). It was subsequently used as the engine for later
LucasArts adventure games
From the late 1980s to the early 2000s, LucasArts was well known for their point-and-click graphic adventure games, nearly all of which got high scoring reviews at the time of their release. Their style tended towards the humorous, often irrevere ...
and
Humongous Entertainment
Humongous, Inc. (formerly Humongous Entertainment, Inc.) was an American video game developer based in Bothell, Washington. Founded in 1992, the company developed multiple edutainment franchises, most prominently ''Putt-Putt (series), Putt-Putt' ...
games.
It falls somewhere between a game engine and a
programming language
A programming language is a system of notation for writing computer programs.
Programming languages are described in terms of their Syntax (programming languages), syntax (form) and semantics (computer science), semantics (meaning), usually def ...
, allowing designers to create locations, items and dialogue sequences without writing code in the language in which the game
source code
In computing, source code, or simply code or source, is a plain text computer program written in a programming language. A programmer writes the human readable source code to control the behavior of a computer.
Since a computer, at base, only ...
ends up. This also allowed the game's script and data files to be
cross-platform
Within computing, cross-platform software (also called multi-platform software, platform-agnostic software, or platform-independent software) is computer software that is designed to work in several Computing platform, computing platforms. Some ...
, i.e., re-used across various
platforms. SCUMM is also a host for embedded game engines such as the ''Interactive MUsic Streaming Engine'' (
iMUSE
iMUSE (''Interactive Music Streaming Engine'') is an interactive music system used in a number of LucasArts video games. The idea behind iMUSE is to synchronize music with the visual action in a video game so that the audio continuously matches ...
), 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
Amiga is a family of personal computers produced by Commodore International, Commodore from 1985 until the company's bankruptcy in 1994, with production by others afterward. The original model is one of a number of mid-1980s computers with 16-b ...
,
Apple II
Apple II ("apple Roman numerals, two", stylized as Apple ][) is a series of microcomputers manufactured by Apple Computer, Inc. from 1977 to 1993. The Apple II (original), original Apple II model, which gave the series its name, was designed ...
, 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
The TurboGrafx-16, known in Japan as the , is a home video game console developed by Hudson Soft and manufactured by NEC. It was released in Japan in 1987 and in North America in 1989. The first console of the fourth generation of video game con ...
/PC Engine. Several SCUMM games have been officially and unofficially ported to other systems through use of the
open-source
Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use and view the source code, design documents, or content of the product. The open source model is a decentrali ...
ScummVM
Script Creation Utility for Maniac Mansion Virtual Machine (ScummVM) is a set of game engine recreations. Originally designed to play LucasArts adventure games that use the SCUMM system, it also supports a variety of non-SCUMM games by companies l ...
software.
History
The original version was coded by
Ron Gilbert (with some initial help by
Chip Morningstar
Chip Morningstar is an American software architect, mainly for online entertainment and communication.
Morningstar held many jobs throughout his career in the research and development of technology and programs. Most notably was Morningstar's ...
a.k.a. UnXman) in 1987, 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
A minicomputer, or colloquially mini, is a type of general-purpose computer mostly developed from the mid-1960s, built significantly smaller and sold at a much lower price than mainframe computers . By 21st century-standards however, a mini is ...
s and
Unix
Unix (, ; trademarked as UNIX) is a family of multitasking, multi-user computer operating systems that derive from the original AT&T Unix, whose development started in 1969 at the Bell Labs research center by Ken Thompson, Dennis Ritchie, a ...
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
The Sun is the star at the centre of the Solar System. It is a massive, nearly perfect sphere of hot plasma, heated to incandescence by nuclear fusion reactions in its core, radiating the energy from its surface mainly as visible light a ...
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.
SCUMM was developed to be a tool that converted human-readable commands into
byte
The byte is a unit of digital information that most commonly consists of eight bits. Historically, the byte was the number of bits used to encode a single character of text in a computer and for this reason it is the smallest addressable un ...
-sized tokens that then would be read by an executable interpreter program that presented the game to the player. For example, the SCUMM command
walk dr-fred to laboratory-door
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'' was released.
The scripts included the ability to
multitask, such as having background actors enact behavior while waiting for foreground actions to complete.
The combined tools enabled for
rapid prototyping
Rapid prototyping is a group of techniques used to quickly fabricate a scale model of a physical part or assembly using three-dimensional computer aided design ( CAD) data.
Construction of the part or assembly is usually done using 3D printing ...
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.
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.
SPUTM was not actually trademarked, but according to Wilmunder, they wanted "to name it after
another bodily fluid".
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.
Other tools and engines were developed alongside SCUMM to aid in development, and named for other body fluids.
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 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
Humongous, Inc. (formerly Humongous Entertainment, Inc.) was an American video game developer based in Bothell, Washington. Founded in 1992, the company developed multiple edutainment franchises, most prominently ''Putt-Putt (series), Putt-Putt' ...
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. For the game ''
Full Throttle'', the team worked to integrate SCUMM with the
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.
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 ', then were given the opportunity to explore and expand on example work to help identify where they would best fit into the development team.
LucasArts finally abandoned the SCUMM engine in 1998 when they switched to
GrimE, using the
free software
Free software, libre software, libreware sometimes known as freedom-respecting software is computer software distributed open-source license, under terms that allow users to run the software for any purpose as well as to study, change, distribut ...
scripting 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. Subsequent games would be developed on the
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
GitHub () is a Proprietary software, proprietary developer platform that allows developers to create, store, manage, and share their code. It uses Git to provide distributed version control and GitHub itself provides access control, bug trackin ...
.
Design
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) 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
A loom is a device used to weaving, weave cloth and tapestry. The basic purpose of any loom is to hold the Warp (weaving), warp threads under tension (mechanics), tension to facilitate the interweaving of the weft threads. The precise shape of ...
'' (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
JavaScript (), often abbreviated as JS, is a programming language and core technology of the World Wide Web, alongside HTML and CSS. Ninety-nine percent of websites use JavaScript on the client side for webpage behavior.
Web browsers have ...
-like language into SCUMM v6
bytecode
Bytecode (also called portable code or p-code) is a form of instruction set designed for efficient execution by a software interpreter. Unlike human-readable source code, bytecodes are compact numeric codes, constants, and references (normal ...
, runnable as is in
ScummVM
Script Creation Utility for Maniac Mansion Virtual Machine (ScummVM) is a set of game engine recreations. Originally designed to play LucasArts adventure games that use the SCUMM system, it also supports a variety of non-SCUMM games by companies l ...
. 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''.
A similar project named ScummGEN aims to achieve the same thing, with user-friendly tools.
Scummbler is a compiler for SCUMM bytecode, for versions 3 to 5 of the SCUMM engine. It uses scripts decompiled from the original game files, retrieved using a combination of an unpacking tool like ScummPacker (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, and a tool to assist in mapping speech files to text.
Interpreters
ScummVM
Script Creation Utility for Maniac Mansion Virtual Machine (ScummVM) is a set of game engine recreations. Originally designed to play LucasArts adventure games that use the SCUMM system, it also supports a variety of non-SCUMM games by companies l ...
is a
free and
open source software
Open-source software (OSS) is Software, computer software that is released under a Open-source license, license in which the copyright holder grants users the rights to use, study, change, and Software distribution, distribute the software an ...
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
Windows
Windows is a Product lining, product line of Proprietary software, proprietary graphical user interface, graphical operating systems developed and marketed by Microsoft. It is grouped into families and subfamilies that cater to particular sec ...
and
Macintosh
Mac is a brand of personal computers designed and marketed by Apple Inc., Apple since 1984. The name is short for Macintosh (its official name until 1999), a reference to the McIntosh (apple), McIntosh apple. The current product lineup inclu ...
systems,
Linux
Linux ( ) is a family of open source Unix-like operating systems based on the Linux kernel, an kernel (operating system), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically package manager, pac ...
(including portable handhelds—
Android,
GP2X,
GP2X Wiz
The GP2X Wiz is a handheld game console and portable media player developed by South Korean company GamePark Holdings running a Linux kernel-based embedded operating system.
GP2X Wiz was released in May 2009, and was the first console from both ...
,
Maemo
Maemo is a Linux-based software platform originally developed by Nokia, now developed by the Free software movement, community, for smartphones and Internet tablets. The platform comprises both the Maemo operating system and Software development ...
, etc.),
BeOS
BeOS is a discontinued operating system for personal computers that was developed by Be Inc. It was conceived for the company's BeBox personal computer which was released in 1995. BeOS was designed for multitasking, multithreading, and a graph ...
-
Haiku
is a type of short form poetry that originated in Japan. Traditional Japanese haiku consist of three phrases composed of 17 Mora (linguistics), morae (called ''On (Japanese prosody), on'' in Japanese) in a 5, 7, 5 pattern; that include a ''kire ...
,
AmigaOS
AmigaOS is a family of proprietary native operating systems of the Amiga and AmigaOne personal computers. It was developed first by Commodore International and introduced with the launch of the first Amiga, the Amiga 1000, in 1985. Early versions ...
(3.x, 4.0, and its clones
MorphOS
MorphOS is an AmigaOS-like operating system designed for Power and PowerPC based computers. The core, based on the Quark microkernel, is proprietary, although several libraries and other parts are open source, such as the Ambient desktop.
The p ...
and
AROS),
Atari TOS
TOS (The Operating System) is the operating system of the Atari ST range of computers. This range includes the 520ST and 1040ST, their STF/M/FM and STE variants and the Mega ST/STE. Later, 32-bit machines ( TT, Falcon030) were developed using a ...
(including its successors—
EmuTOS
TOS (The Operating System) is the operating system of the Atari ST range of computers. This range includes the 520ST and 1040ST, their STF/M/FM and STE variants and the Mega ST/STE. Later, 32-bit machines ( TT, Falcon030) were developed using a ...
,
MagiC,
FreeMiNT etc.),
Palm OS
Palm OS (also known as Garnet OS) is a discontinued mobile operating system initially developed by Palm, Inc., for personal digital assistants (PDAs) in 1996. Palm OS was designed for ease of use with a touchscreen-based graphical user interface. ...
,
Windows Mobile
Windows Mobile is a discontinued mobile operating system developed by Microsoft for smartphones and personal digital assistants (PDA). Designed to be the portable equivalent of the Windows desktop OS in the emerging Mobile device, mobile/port ...
(
Pocket PC
A Pocket PC (P/PC, PPC) is a class of personal digital assistant (PDA) that runs the Windows Mobile operating system, which is based on Windows Embedded Compact, Windows CE/Windows Embedded Compact, and that has some of the abilities of modern ...
),
Dreamcast
The is the final home video game console manufactured by Sega. It was released in Japan on November 27, 1998, in North America on September 9, 1999 and in Europe on October 14, 1999. It was the first sixth-generation video game console, prec ...
,
PlayStation 2
The PlayStation 2 (PS2) is a home video game console developed and marketed by Sony Interactive Entertainment, Sony Computer Entertainment. It was first released in Japan on 4 March 2000, in North America on 26 October, in Europe on 24 Novembe ...
,
PlayStation Portable
The PlayStation Portable (PSP) is a handheld game console developed and marketed by Sony Interactive Entertainment, Sony Computer Entertainment. It was first released in Japan on December 12, 2004, in North America on March 24, 2005, and in PA ...
,
Nintendo DS
The is a foldable handheld game console produced by Nintendo, released globally across 2004 and 2005. The DS, an initialism for "Developers' System" or "Dual Screen", introduced distinctive new features to handheld games: two LCD screens worki ...
,
Wii
The Wii ( ) is a home video game console developed and marketed by Nintendo. It was released on November 19, 2006, in North America, and in December 2006 for most other regions of the world. It is Nintendo's fifth major home game console, f ...
,
Symbian
Symbian is a discontinued mobile operating system (OS) and computing platform designed for smartphones. It was originally developed as a proprietary software OS for personal digital assistants in 1998 by the Symbian Ltd. consortium. Symbian OS ...
(SeriesXX and UIQ),
iOS
Ios, Io or Nio (, ; ; locally Nios, Νιός) is a Greek island in the Cyclades group in the Aegean Sea. Ios is a hilly island with cliffs down to the sea on most sides. It is situated halfway between Naxos and Santorini. It is about long an ...
(
iPad
The iPad is a brand of tablet computers developed and marketed by Apple Inc., Apple that run the company's mobile operating systems iOS and later iPadOS. The IPad (1st generation), first-generation iPad was introduced on January 27, 2010. ...
,
iPhone
The iPhone is a line of smartphones developed and marketed by Apple that run iOS, the company's own mobile operating system. The first-generation iPhone was announced by then–Apple CEO and co-founder Steve Jobs on January 9, 2007, at ...
,
iPod Touch
The iPod Touch (stylized as iPod touch) is a discontinued line of iOS-based mobile devices designed and formerly marketed by Apple Inc. with a touchscreen-controlled user interface. As with other iPod models, the iPod Touch can be used as a po ...
),
webOS
webOS, also known as LG webOS, is a Linux kernel-based multitasking operating system for smart devices, such as smart TVs, that has also been used as a mobile operating system. Initially developed by Palm, Inc. (which was acquired by Hewlett ...
and
QNX-
Playbook platforms.
is a SCUMM interpreter developed by the ScummC author.
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 and some bits of ScummVM to the
Haxe
Haxe is a high-level cross-platform programming language and compiler that can produce applications and source code for many different computing platforms from one code-base. It is free and open-source software, released under an MIT License. ...
platform, to produce an interpreter with an
Adobe Flash
Adobe Flash (formerly Macromedia Flash and FutureSplash) is a mostly discontinuedAlthough it is discontinued by Adobe Inc., for the Chinese market it is developed by Zhongcheng and for the international enterprise market it is developed by Ha ...
backend.
References and in-jokes
In-joke references were a common feature of
LucasArts adventure games
From the late 1980s to the early 2000s, LucasArts was well known for their point-and-click graphic adventure games, nearly all of which got high scoring reviews at the time of their release. Their style tended towards the humorous, often irrevere ...
. 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
''Monkey Island'' is a series of adventure games. The first four games were produced and published by LucasArts, earlier known as Lucasfilm Games. The fifth was developed by Telltale Games with LucasArts, while the sixth was developed by Terribl ...
'' series are both named after the scripting language. In ''
Escape from Monkey Island'', victim of a hostile takeover, the ''SCUMM bar'' becomes the ''
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
The Z-machine is a virtual machine that was developed by Joel Berez and Marc Blank in 1979 and used by Infocom for its text adventure games. Infocom compiled game code to files containing Z-machine instructions (called story files or Z-code ...
Notes
References
External links
SCUMM history
{{Video game engines
Adventure game engines
LucasArts games
Point-and-click adventure games
Programming languages created in 1987