What is SCUMM-8?
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, created by Paul Nicholas.
See below for some games powered by SCUMM-8:
|Return of the SCUMM||H A L L O W EƎ N||CODE-8||Perfectly Normal Apartment|
|(Play Online)||(Play Online)||(Play Online)||(Play Online)|
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 (Up to 32+ per cart)
- Pathfinding for walking
- Dialogs between Actors
- Camera system (pan-to, follow, static)
- Room transitions ("iris", cut)
- Customisable Verbs
- Fake 3D depth "Auto-Scaling" of Actors
- Z-plane ordering of objects/actors
- Custom scaling for Actors/Objects
- 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)
- Animations for Actors and Objects
- Multiple font sizes/styles
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:
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.
Thanks & Useful Resources
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 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!