|This article needs additional citations for verification. (August 2010)|
Script Creation Utility for Maniac Mansion (SCUMM) is a scripting language developed at LucasArts (known at the time as Lucasfilm Games) to ease development of the graphical adventure game Maniac Mansion, but since developed to be used as a engine for several more LucasArts adventure 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 re-used across various platforms. SCUMM is also a host for embedded game engines such as iMUSE (standing for Interactive MUsic Streaming Engine), INSANE (standing for INteractive Streaming ANimation Engine), CYST (in-game animation engine), FLEM (places and names object inside a room), and MMUCUS. SCUMM has been released on the following platforms: 3DO, Amiga, Apple II, Atari ST, CDTV, Commodore 64, Fujitsu Towns & Marty, Apple Macintosh, Nintendo Entertainment System, DOS, Microsoft Windows, Sega Mega-CD and TurboGrafx-16/PC Engine.
SCUMM was subsequently reused in many later LucasArts adventure games being both updated and rewritten several times. LucasArts finally abandoned the SCUMM engine in 1998 when they switched to GrimE, using the free software scripting language Lua, for the games Grim Fandango and Escape from Monkey Island.
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 collection of these featured in the early games, but by Full Throttle and The Curse of Monkey Island these had been whittled down to using one's eyes (to "Look at" or "Look through"), hands (to "Use", "Pick up", "Push", "Pull", etc.), or mouth ("Talk to", "Consume", "Inhale").
Puzzles generally involve using the right verb action with the appropriate object — "use biscuit cutter with another rubber tree", for example.
"Talk to" produces dialogue sequences, in which the player selects from a list of pre-defined questions or comments, and the character they are talking to replies with a pre-defined response.
The notable exception to this general paradigm is Loom, which does not use the standard verb/object paradigm, but does feature dialogue sequences.
A similar project known as 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 ideal for modifying existing games, such as for translation purposes. Also available are an image encoder/decoder, and a tool to assist in mapping speech files to text.
ScummVM is a free and open source software project to make a portable, 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 and Macintosh systems, Linux (including portable handhelds - Android, GP2X, GP2X Wiz, Maemo, etc.), AmigaOS (3.x, 4.0, and its clones MorphOS and AROS), 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/Playbook platforms.
scvm 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 scvm plus some bits of ScummVM to the Haxe platform, in order to produce an interpreter with an Adobe Flash backend.
References and in-jokes
In-joke references were a common feature of LucasArts adventure games. Developers used the name of their engine for comical effect in several games.
"Razor and the Scummettes", a punk band mentioned in Maniac Mansion, and the "SCUMM bar" in The Secret of Monkey Island 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 nod to the programming language which replaced the engine used for the prior games. SCUMM is also listed in the ingredients of grog, in the first opus of the Monkey Island saga.
SPUTM is the name of the script interpreter, CYST is an animation engine, FLEM places and names objects in rooms and MMUCUS is yet another engine part. The successor of SCUMM as an adventure game engine at Lucas Arts was named GrimE (for Grim Fandango's Engine).
- Games supported by ScummVM
- Adventure Game Interpreter
- Sierra's Creative Interpreter
- ScummC SCUMM Compiler
- SCUMM Image Encoder
- SCUMMVM compatibility list
- DotSec Repository - markup - scummc: trunk/README
- What not to write in Haxe, Part II - Cuppadev
- JamesU's git repositories - experiments/hiscumm.git/shortlog
- LucasHacks! - Serving SCUMM since 1998[dead link]