SCUMM-8 is a "demake" of the SCUMM engine (which powered most of the classic LucasArts adventure games, such as Monkey Island and Maniac Mansion) for the PICO-8 Fantasy Console.
A playable sample game "Return of the SCUMM" can be found here.
Another example game "H A L L O W EƎ N" can be found here.
While it is heavily "inspired" by the SCUMM engine, it isn't a true replica (for that you'll want good ol' SCUMM-VM). However, SCUMM-8 attempts to stay as true as possible to the original SCUMM command reference.
"Cool, so does that mean I can play those old LucasArts games in PICO-8?!"
Er... no. SCUMM-8 cannot play those original games, just that it is intended to provide similar functionality within the (very limited) world of PICO-8.
"It don't work mate, waited forever and 'Monkey Island' never loaded!"
Wow, really? You still here?! OK, once again. Think of SCUMM-8 as an even more retro "mini-me" version of the classic SCUMM engine. Most of the features are planned, but the experience will be... shall we say... "cut down".
"Got it. . . . so what about 'Day of the Tentacle' then?"
*sigh* . . . "Look behind you! It's a three-headed monkey!" . . . *runs away*
- Multiple Rooms (32+, technically)
- Pathfinding for walking
- Dialogs between Actors
- Cut-scenes
- Camera system (pan-to, follow, static)
- Room transitions ("iris", cut)
- Customisable Verbs
- Z-plane ordering of objects/actors
- Global-level (background) & Room-level scripts
- Game start-up script
- Object dependencies
- Replace Color (to allow re-use of room/object gfx)
- Adjustable Room Brightness Levels
- Screen "shake" effect
- Proximity (between Actors/Objects)
Please see the SCUMM-8 Wiki for details on how to get started creating your own SCUMM-8 game, as well as the the full API reference.
Using Python 3:
python3 build.py
This will output scumm-8.min.lua, containing the minified engine code which you can copy to your own cart. It will also output new copies of game.p8 and template.p8, which should be committed to the repository.
A big thanks to Aric Wilmunder (ex-LucasArts developer) for sharing valuable SCUMM documentation. Particularly the SCUMM Tutorial (1991), the example room from which was the first room I actually created in SCUMM-8 (minus the cool Sam & Max gfx, of course)
Thanks also to Dan Sanderson for his picotool - specifically his minifying tool (luamin), which enabled me to squeeze MUCH more code under PICO-8's limits.
Shoutout to @PixelArtM, whose PICO-8 mockup inspired me to wonder whether this could actually be pulled off within the virtual console's limits (and then later used SCUMM-8 to make said mockup a reality!)
Some other great SCUMM resources I found along the way include the following:
- Ron Gilbert's post about "SCUMM Script"
- The SCUMM Diary: Stories behind one of the greatest game engines ever made
- Ron Gilbert - Maniac Mansion postmortem from 2011 (Video)
- ScummC - A Scumm Compiler (by Alban Bedel)
- (Particularly the OpenQuest example)
- Ron Gilbert's post about "Puzzle Dependency Charts"
As you can imagine, this project has taken MANY HOURS of my spare time to develop.
So, if this project helped you out (and you're in a position to do so), feel free to buy me a drink! ☕ 😊