SCUMM

Last updated

Script Creation Utility for Maniac Mansion
Maniac Mansion.png
Maniac Mansion (1987) on the Commodore 64, the game for which the SCUMM system was originally designed
Designed by
Developer Lucasfilm Games [lower-alpha 1]
First appeared1987;36 years ago (1987)
Final release
8 / 1998;25 years ago (1998)
Platform Cross-platform
OS Cross-platform

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.

Contents

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 platforms. SCUMM is also a host for embedded game engines such as the Interactive MUsic Streaming Engine (iMUSE), 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, Apple II, Atari ST, CDTV, Commodore 64, Fujitsu FM Towns & Marty, Apple Macintosh, Nintendo Entertainment System, 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 ScummVM software.

History

The original version was coded by Ron Gilbert (with some initial help by Chip Morningstar a.k.a. UnXman) in 1987, [1] :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 minicomputers 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 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. [2]

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 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. [2] The scripts included the ability to multitask, such as having background actors enact behavior while waiting for foreground actions to complete. [2] 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. [2]

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. [2] SPUTM was not actually trademarked, but according to Wilmunder, they wanted "to name it after another bodily fluid". [2] 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. [2] Other tools and engines were developed alongside SCUMM to aid in development, and named for other body fluids. [2] 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 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. [3] 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. [2]

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 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. [2]

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 . 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. [4] :3:34:00 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. [5]

Design

Loom (1990) replaces the conventional SCUMM interface of verbs with spells played on a musical distaff. Loom interface screenshot.png
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) 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 (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 . [6]

A similar project named ScummGEN aims to achieve the same thing, with user-friendly tools. [7]

Scummbler is a compiler for SCUMM bytecode, for versions 3 to 5 of the SCUMM engine. [8] [9] It uses scripts decompiled from the original game files, retrieved using a combination of an unpacking tool like ScummPacker [10] [11] (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, [12] [13] and a tool to assist in mapping speech files to text. [14] [15]

Interpreters

ScummVM is a 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 Windows and Macintosh systems, Linux (including portable handhelds—Android, GP2X, GP2X Wiz, Maemo, etc.), BeOS-Haiku, 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. [16] [ unreliable source? ]

scvm is a SCUMM interpreter developed by the ScummC author. [6] 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 and some bits of ScummVM to the Haxe platform, to produce an interpreter with an Adobe Flash backend. [17] [18]

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 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

Notes

  1. Later known as LucasArts

Related Research Articles

<i>Day of the Tentacle</i> 1993 adventure game

Day of the Tentacle, also known as Maniac Mansion II: Day of the Tentacle, is a 1993 graphic adventure game developed and published by LucasArts. It is the sequel to the 1987 game Maniac Mansion. The plot follows Bernard Bernoulli and his friends Hoagie and Laverne as they attempt to stop the evil Purple Tentacle - a sentient, disembodied tentacle - from taking over the world. The player takes control of the trio and solves puzzles while using time travel to explore different periods of history.

<span class="mw-page-title-main">Lucasfilm Games</span> American video game producer

Lucasfilm Games is an American video game licensor and a subsidiary of Lucasfilm. It was founded in May 1982 by George Lucas as a video game development group alongside his film company; as part of a larger 1990 reorganization of the Lucasfilm divisions, the video game development division was grouped and rebranded as part of LucasArts. LucasArts became known for its line of adventure games based on its SCUMM engine in the 1990s, including Maniac Mansion, the Monkey Island series, and several Indiana Jones titles. A number of influential game developers were alumni of LucasArts from this period, including Brian Moriarty, Tim Schafer, Ron Gilbert, and Dave Grossman. Later, as Lucasfilm regained control over its licensing over the Star Wars franchise, LucasArts produced numerous action-based Star Wars titles in the late 1990s and early 2000s, while dropping adventure game development due to waning interest in the genre.

<i>Monkey Island</i> Video game series

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 Terrible Toybox with Lucasfilm Games and Devolver Digital.

<i>Maniac Mansion</i> 1987 video game

Maniac Mansion is a 1987 graphic adventure video game developed and published by Lucasfilm Games. It follows teenage protagonist Dave Miller as he attempts to rescue his girlfriend Sandy Pantz from a mad scientist, whose mind has been enslaved by a sentient meteor. The player uses a point-and-click interface to guide Dave and two of his six playable friends through the scientist's mansion while solving puzzles and avoiding dangers. Gameplay is non-linear, and the game must be completed in different ways based on the player's choice of characters. Initially released for the Commodore 64 and Apple II, Maniac Mansion was Lucasfilm Games' first self-published product.

<i>Loom</i> (video game) 1990 video game

Loom is a 1990 fantasy-themed graphic adventure game by Lucasfilm Games. The project was led by Brian Moriarty, a former Infocom employee and author of classic text adventures Wishbringer (1985), Trinity (1986), and Beyond Zork (1987). It was the fourth game to use the SCUMM adventure game engine, and the first of those to avoid the verb–object interface introduced in Maniac Mansion.

<i>Indiana Jones and the Fate of Atlantis</i> 1992 video game

Indiana Jones and the Fate of Atlantis is a point-and-click adventure game developed and published by LucasArts and released in June 1992 for Amiga, DOS, and Macintosh. Almost a year later, it was reissued on CD-ROM as an enhanced "talkie" edition with full voice acting and digitized sound effects. The seventh game to use the script language SCUMM, Fate of Atlantis has the player explore environments and interact with objects and characters by using commands constructed with predetermined verbs. It features three unique paths to select, influencing story development, gameplay and puzzles. The game used an updated SCUMM engine and required a 286-based PC, although it still runs as a real-mode DOS application. The CD talkie version required EMS memory enabled to load the voice data.

<i>Sam & Max Hit the Road</i> 1993 video game

Sam & Max Hit the Road is a graphic adventure video game released by LucasArts during the company's adventure games era. The game was originally released for MS-DOS in 1993 and for Mac OS in 1995. A 2002 re-release included compatibility with Windows. The game is based on the comic characters of Sam and Max, the "Freelance Police", an anthropomorphic dog and "hyperkinetic rabbity thing". The characters, created by Steve Purcell, originally debuted in a 1987 comic book series. Based on the 1989 Sam & Max comic On the Road, the duo take the case of a missing bigfoot from a nearby carnival, traveling to many American culture tourist sites to solve the mystery.

<i>The Secret of Monkey Island</i> 1990 video game

The Secret of Monkey Island is a 1990 point-and-click graphic adventure game developed and published by Lucasfilm Games. It takes place in a fictional version of the Caribbean during the age of piracy. The player assumes the role of Guybrush Threepwood, a young man who dreams of becoming a pirate, and explores fictional islands while solving puzzles.

<i>The Curse of Monkey Island</i> 1997 video game

The Curse of Monkey Island is an adventure game developed and published by LucasArts in 1997. A sequel to 1991's Monkey Island 2: LeChuck's Revenge, it is the third game in the Monkey Island series.

Bytecode 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 that encode the result of compiler parsing and performing semantic analysis of things like type, scope, and nesting depths of program objects.

<span class="mw-page-title-main">ScummVM</span> Set of game engine recreations

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 like Revolution Software and Adventure Soft. It was originally written by Ludvig Strigeus. ScummVM is free software that is released under the terms of the GNU General Public License.

<i>Monkey Island 2: LeChucks Revenge</i> 1991 adventure video game

Monkey Island 2: LeChuck's Revenge is an adventure game developed and published by LucasArts in 1991. A sequel to 1990's The Secret of Monkey Island, it is the second game in the Monkey Island series. It was the sixth LucasArts game to use the SCUMM engine, and the first game to use the iMUSE sound system. In it, pirate Guybrush Threepwood searches for the legendary treasure of Big Whoop and again faces off against the pirate LeChuck, who is now a zombie.

<span class="mw-page-title-main">LucasArts adventure games</span> Adventure games produced by LucasArts

From the late 1980s to the early 2000s, LucasArts was well known for their point-and-click graphic adventure games, nearly all of which received high scoring reviews at the time of their release. Their style tended towards the humorous, often irreverent or slapstick humor, with the exceptions of Loom and The Dig. Their game design philosophy was that the player should never die or reach a complete dead-end, although there were exceptions.

<span class="mw-page-title-main">Ron Gilbert</span> American video game designer

Ron Gilbert is an American video-game designer, programmer, and producer. His games are generally focused on interactive story-telling, and he is arguably best known for his work on several LucasArts adventure games, including Maniac Mansion and the first two Monkey Island games.

iMUSE 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 on-screen events and transitions from one musical theme to another are done seamlessly. iMUSE was developed in the early 1990s by composers Michael Land and Peter McConnell while working at LucasArts. The iMUSE system was patented by LucasArts in 1994, after being added to the fifth version of the SCUMM game engine in 1991.

<span class="mw-page-title-main">Virtual Theatre</span> Game engine by Revolution Software

The Virtual Theatre is a computer game engine designed by Revolution Software to produce adventure games for computer platforms. The engine allowed their team to script events, and move animated sprites against a drawn background with moving elements using a point-and-click style interface. Upon its first release, it rivaled competing engines like LucasArts' SCUMM and Sierra's Creative Interpreter, due to its then high level of artificial intelligence. The engine was first proposed in 1989, while the first game to use it, Lure of the Temptress, was released in 1992, followed by Beneath a Steel Sky (1994), Broken Sword: The Shadow of the Templars (1996) and Broken Sword II: The Smoking Mirror (1997).

David Fox is an American multimedia producer who designed and programmed numerous early LucasArts games. He and his wife, Annie Fox, now work on educational software, web design, emotional intelligence content, online communities, emerging technologies, and writing books for children and teens.

Wintermute Engine (WME) is a set of software tools and a runtime interpreter primarily designed for creating and running graphical adventure games.

<span class="mw-page-title-main">Humongous Entertainment</span> American video game developer (1992-2006)

Humongous Entertainment, Inc. was an American video game developer based in Bothell, Washington. Founded in 1992, the company is best known for developing multiple edutainment franchises, most prominently Putt-Putt, Freddi Fish, Pajama Sam and Spy Fox, which, combined, sold over 15 million copies and earned more than 400 awards of excellence.

<i>Thimbleweed Park</i> 2017 video game

Thimbleweed Park is a point-and-click adventure game developed by Ron Gilbert and Gary Winnick for Linux, macOS, Windows, Xbox One, PlayStation 4, iOS, Nintendo Switch, Android, and Amazon Luna. The game was revealed on November 18, 2014, along with a Kickstarter crowd-funding campaign with a goal of US$375,000, and was released on March 30, 2017.

References

  1. Classic Studio Postmortem: Lucasfilm Games, GameSpot, March 24, 2014, retrieved February 21, 2023
  2. 1 2 3 4 5 6 7 8 9 10 Bevan, Mike (July 21, 2013). "The SCUMM Diary: Stories behind one of the greatest game engines ever made". Gamasutra . Archived from the original on March 23, 2016. Retrieved March 23, 2016.
  3. "Interview with Ron Gilbert". Nightdive Studios. June 22, 2014. Retrieved October 16, 2023.
  4. Cifaldi, Frank (October 30, 2020), "The Secrets of Monkey Island - An Evening With Ron Gilbert", Video Game History Foundation , retrieved February 21, 2023
  5. Kerr, Chris (March 23, 2016). "SCUMM co-creator digs up game design treasure trove". Gamasutra . Archived from the original on May 30, 2016. Retrieved March 23, 2016.
  6. 1 2 Bedel, Alban (January 26, 2023), ScummC - A Scumm Compiler, archived from the original on September 4, 2015, retrieved February 21, 2023
  7. "ScummGEN". Google Code . Archived from the original on July 16, 2010. Retrieved February 21, 2023.
  8. Dougal Myers, Laurence. "Scummbler". JestarJokin.net. Archived from the original on August 2, 2014. Retrieved February 21, 2023.
  9. "Scummbler". BitBucket . Retrieved February 21, 2023.
  10. Dougal Myers, Laurence. "ScummPacker". JestarJokin.net. Archived from the original on November 8, 2013. Retrieved February 21, 2023.
  11. "ScummPacker". BitBucket . Retrieved February 21, 2023.
  12. Dougal Myers, Laurence. "SCUMM Image Encoder". JestarJokin.net. Archived from the original on February 15, 2015. Retrieved February 21, 2023.
  13. "Scumm Image Encoder". BitBucket . Retrieved February 21, 2023.
  14. Dougal Myers, Laurence. "ScummSpeaks". JestarJokin.net. Archived from the original on February 15, 2015. Retrieved February 21, 2023.
  15. "ScummSpeaks". BitBucket . Retrieved February 21, 2023.
  16. SCUMMVM compatibility list Archived 2006-06-15 at the Wayback Machine
  17. Urquhart, James (March 7, 2008). "What not to write in haXe, Part II". CuppaDev. Archived from the original on May 19, 2015.
  18. Urquhart, James (February 11, 2019), jamesu/hiscumm , retrieved March 19, 2021