SCUMM

Date

The Script Creation Utility for Maniac Mansion (SCUMM) is a video game engine created by Lucasfilm Games, which later became LucasArts. It was designed to make it easier to develop their 1987 graphic adventure game, Maniac Mansion. Later, SCUMM was used to create other LucasArts adventure games and games made by Humongous Entertainment.

The Script Creation Utility for Maniac Mansion (SCUMM) is a video game engine created by Lucasfilm Games, which later became LucasArts. It was designed to make it easier to develop their 1987 graphic adventure game, Maniac Mansion. Later, SCUMM was used to create other LucasArts adventure games and games made by Humongous Entertainment.

SCUMM works like a mix of a game engine and a programming language. It allows designers to create game locations, items, and dialogue without writing code in the language used for the game itself. This also made it possible for game scripts and data files to work on different computer systems, meaning they could be reused across platforms. SCUMM also supports other tools, such as the Interactive Music Streaming Engine (iMUSE), the Interactive Streaming Animation Engine (INSANE), CYST (an in-game animation tool), FLEM (a tool for placing objects in rooms), and MMUCAS.

SCUMM has been released on many platforms, including 3DO, Amiga, Apple II, Atari ST, CDTV, Commodore 64, FM Towns & Marty, Macintosh, Nintendo Entertainment System, MS-DOS, Microsoft Windows, Sega CD (Mega-CD), and TurboGrafx-16 / PC Engine. Some SCUMM games have been officially and unofficially moved to other systems using the open-source ScummVM software.

History

The original version of SCUMM was created by Ron Gilbert in 1987, with some early help from Chip Morningstar, also known as UnXman. Later versions were improved by Aric Wilmunder, also called the SCUMM Lord, and Brad P. Taylor. SCUMM was a system that used short codes to write programs, introducing new methods for coding. Codes like P.R.I.N.E. were among the first of their kind.

SCUMM was developed by programmers at LucasArts, many of whom had experience working on minicomputers and Unix workstations. At the time, personal computers lacked the power to edit and compile programs quickly. To solve this, LucasArts programmers wrote clean code on powerful Sun workstations to reduce errors. This process inspired the idea of a scripting language that could work across different computer systems.

SCUMM was designed to convert human-readable commands into small, byte-sized codes. These codes were then read by an interpreter program that ran the game. For example, the command "walk dr-fred to laboratory-door" would be converted into a 4-byte code. Programmers avoided hard-coding specific game details into scripts. Instead, the system recognized characters by their names in the script, not by numbers. An exception occurred in the game Maniac Mansion, where character dialog colors required numbers, but this was later changed for Zak McKracken. Scripts also allowed for multitasking, such as background actions continuing while waiting for player input. These tools helped developers create games quickly. Scripters could work with early art designs to refine their scripts and give feedback to artists.

SCUMM handled scripts and collected game assets like art and sound into a single package. A reusable interpreter called SPUTM, short for SCUMM Presentation Utility, was used to run the game. SPUTM was renamed to the game’s executable file when released. While SPUTM was not officially trademarked, Wilmunder joked about naming it after a bodily fluid. SCUMM was later used in many LucasArts adventure games, with updates and changes over time. The version for Maniac Mansion included about 80% of the commands used in later versions. Other tools, such as SPIT, FLEM, MMUCAS, BYLE, and CYST, were developed alongside SCUMM to support tasks like text formatting, room design, and character animation.

After leaving LucasArts in 1992, Ron Gilbert helped Humongous Entertainment use SCUMM in their games, provided he continued improving it. For Full Throttle, SCUMM was combined with the INSANE animation engine from Star Wars: Rebel Assault. Though this worked for Full Throttle, the two systems sometimes had issues. Later, SCUMM was adapted to run on top of the INSANE engine for The Curse of Monkey Island.

Initially, SCUMM’s inner workings were not well-documented, as Wilmunder believed it was easy to learn. However, he changed this approach before The Secret of Monkey Island. To train new employees, Gilbert created SCUMM University, a week-long training program. New hires, called "scummlets," practiced using the engine to find their roles in development.

LucasArts stopped using SCUMM in 1998, replacing it with GrimE, a system that used the Lua scripting language for games like Grim Fandango and Escape from Monkey Island. Humongous Entertainment continued using SCUMM for its PC games, including the Backyard Sports series, until Backyard Soccer 2004 in 2003. After that, Humongous used the Python-based YAGA engine for games like Putt-Putt: Pep's Birthday Surprise and Pajama Sam: Life Is Rough When You Lose Your Stuff!, which were the only Humongous adventure games not made with SCUMM.

In March 2016, Wilmunder announced plans to share design documents and source code for SCUMM and other LucasArts adventure games online through GitHub.

Design

Most SCUMM games use a verb-object system. The player controls a character who carries items in an inventory. The game world has many objects the player can interact with using different verbs. Early games showed a large list of verbs at the bottom of the screen, but by 1995 and 1997, this was changed to a "verb coin" that appeared near the mouse cursor. The coin allowed the player to choose actions like looking (using eyes), using or moving objects (using hands), or talking or eating (using mouth). Humongous Entertainment's games made this easier by using a see-through mouse cursor that turned solid when an object could be interacted with or changed into an arrow to show where to click to move to a new screen.

Puzzles usually require using the correct verb with the right object, such as "use biscuit cutter with rubber tree." Choosing "talk to" often starts a conversation where the player picks from a list of set questions or comments, and the character responds with a set answer. The exception to this system is the game Loom (1990), which does not use the standard verb-object method. Instead, most actions in Loom involve selecting spells to play on an instrument.

Reimplementation

ScummC is a collection of tools that help create SCUMM games. These tools include a script and costume compiler, a walkboxes editor, and utilities for handling graphics, audio, and MIDI files. ScummC can turn a special language similar to JavaScript into SCUMM v6 bytecode, which can be run directly in ScummVM. This allows skilled users to make new SCUMM games with features similar to those in Day of the Tentacle and Sam & Max Hit the Road.

A similar project called ScummGEN aims to do the same thing but with tools that are easier to use.

Scummbler is a compiler for SCUMM bytecode used in versions 3 to 5 of the SCUMM engine. It works by taking scripts from original game files, which are extracted using tools like ScummPacker and descumm from ScummVM. These scripts can be added back into the original game files, making it possible to change or update existing games, such as translating text. Additional tools are also available for encoding and decoding images and linking speech files to text.

ScummVM is a free and open-source software project that creates a portable version of the SCUMM engine using the SDL library. It allows many SCUMM games to be played on modern systems where the original versions might not work, including Windows, Macintosh, Linux, Android, GP2X, BeOS (Haiku), AmigaOS, Atari TOS, Palm OS, Windows Mobile, Dreamcast, PlayStation 2, Nintendo DS, Wii, Symbian, iOS, webOS, and QNX platforms.

scvm is a SCUMM interpreter created by the ScummC developer. As of April 2008, it is still in an early testing phase and is intended to become a tool for debugging ScummC scripts. hiscumm is an effort to adapt scvm and parts of ScummVM to the Haxe platform, aiming to create an interpreter that works with Adobe Flash.

References and in-jokes

LucasArts adventure games often included inside jokes. Developers used the name of their game engine for humor in several titles.

For example, Razor and the Scummettes, a punk band from Maniac Mansion, and the SCUMM bar in the Monkey Island series were named after the scripting language used to create the games. In Escape from Monkey Island, the SCUMM bar changes to the Lua bar, referencing the programming language that replaced the original engine. Additionally, SCUMM is listed as an ingredient in grog in The Secret of Monkey Island.

More
articles