SCUMM

Date

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

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

SCUMM works like a tool that is partly a game engine and partly a programming language. It lets designers create game locations, items, and dialogue without writing code in the same language used for the game itself. This made it possible for game scripts and data files to work on different computer systems, such as Windows, Macintosh, and others. SCUMM also supports other tools, like the Interactive Music Streaming Engine (iMUSE), the Interactive Streaming Animation Engine (INSANE), CYST, FLEM, and MMUCAS.

SCUMM was 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 moved to other systems using the open-source ScummVM software.

History

The original version of SCUMM was created by Ron Gilbert in 1987, with early help from Chip Morningstar. Later versions were improved by Aric Wilmunder and Brad P. Taylor. SCUMM is a system that uses short codes to make games easier to create. These codes, like P.R.I.N.E., were among the first of their kind.

Most early programmers at LucasArts, including Wilmunder, had experience working on large computers called minicomputers and Unix workstations. At the time, personal computers (PCs) lacked the power to quickly write and run programs. To solve this, LucasArts programmers wrote clean code on powerful workstations to reduce errors. This practice influenced the idea of a scripting language that could work across different types of computers.

SCUMM was designed to convert human-readable commands into small, machine-readable tokens. These tokens were then read by an interpreter program that displayed the game. For example, the command "walk dr-fred to laboratory-door" became a 4-byte token. Programmers avoided hard-coding specific game details, allowing the tokenizer to recognize characters by their names instead of numbers. An exception occurred in Maniac Mansion, where character dialog colors required numbers, but this was later changed for Zak McKracken. SCUMM scripts supported multitasking, such as background actions continuing while waiting for player input. These tools allowed game developers to create and test games quickly.

SCUMM handled scripts and gathered game assets like art and sound into packages. A reusable interpreter called SPUTM (SCUMM Presentation Utility) was used to run the game. SPUTM was renamed to match the game’s executable file. While SPUTM was not trademarked, Wilmunder joked about naming it after bodily fluids. SCUMM was later used in many LucasArts adventure games, with updates and revisions over time. The Maniac Mansion version included about 80% of the commands used in later versions. Other tools, like 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 negotiated a license for Humongous Entertainment to use SCUMM, with the condition that improvements were shared with both companies. For Full Throttle, SCUMM was integrated with the INSANE animation engine, though compatibility issues required later adjustments.

Initially, SCUMM’s internal workings were not well-documented, but this changed before The Secret of Monkey Island. To train new developers, Gilbert created "SCUMM University," a week-long training program. New hires, called "scummlets," learned to use the engine and contributed to game development.

LucasArts stopped using SCUMM in 1998, replacing it with GrimE and 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 2003. Later games used the Python-based YAGA engine instead.

In March 2016, Wilmunder announced plans to share SCUMM’s design documents and source code online via GitHub.

Design

Most SCUMM games use a verb-object system. The player controls a character who carries items in an inventory, and the game world contains many objects the player can interact with using different verbs. Early games often displayed a large list of verbs at the bottom of the screen, but by 1995 in Full Throttle and 1997 in The Curse of Monkey Island, this changed to a "verb coin" that appeared near the mouse cursor. The verb coin allowed players to choose actions like using eyes (to look), hands (to use, pick up, push, or pull), or mouth (to talk or eat). Humongous Entertainment’s games later used a clear mouse cursor image that filled with color 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 dialogue where the player picks from a list of prewritten questions or comments, and the character responds with a prewritten answer. One exception to this system is Loom (1990), which does not use the standard verb-object interface. Instead, most actions in Loom involve selecting spells to play on an instrument.

Reimplementation

ScummC is a collection of tools that includes a script and costume compiler, a walkboxes editor, and tools for handling characters, graphics, audio, and MIDI files. It can translate a language similar to JavaScript into SCUMM v6 bytecode, which can be run directly in ScummVM. This tool allows people with the right skills to create new SCUMM games that have features similar to well-known games like Day of the Tentacle and Sam & Max Hit the Road.

A similar project called ScummGEN has the same goal but provides tools that are easier to use for people who are not experts.

Scummbler is a compiler for SCUMM bytecode used in versions 3 to 5 of the SCUMM engine. It uses scripts that have been translated from original game files. These scripts are obtained using tools like ScummPacker and descumm from ScummVM. These scripts can be added back into original game files, which helps in changing or updating existing games, such as translating text. Additional tools are also available, including an image encoder-decoder and a tool to help match speech files with written text.

ScummVM is a free and open-source software project that creates a portable client for the SCUMM engine. This client uses a library called SDL and allows many SCUMM-engine games to be played on systems where the original versions might not work or have problems. These systems include modern Windows and Macintosh computers, Linux, Android, GP2X, Maemo, BeOS (Haiku), AmigaOS, Atari TOS, Palm OS, Windows Mobile, Dreamcast, PlayStation 2, PlayStation Portable, Nintendo DS, Wii, Symbian, iOS, webOS, and QNX (Playbook).

scvm is a SCUMM interpreter created by the developer of ScummC. As of April 2008, it is still in an early testing stage and is intended to become a tool for debugging scripts in ScummC projects. hiscumm is an effort to adapt scvm and parts of ScummVM to the Haxe platform, which would allow an interpreter to run using Adobe Flash technology.

References and in-jokes

LucasArts adventure games often included inside jokes that referenced the company's game-making tools. Developers used the name of their engine, called SCUMM, for humor in multiple games.

For example, a punk band named Razor and the Scummettes, mentioned in Maniac Mansion, and the SCUMM bar in the Monkey Island series both take their names from the SCUMM scripting language. In Escape from Monkey Island, the SCUMM bar is renamed the Lua bar, reflecting the switch to a new programming language used for later games. Additionally, the word "SCUMM" appears in the list of ingredients for grog in The Secret of Monkey Island.

More
articles