/scumm-8

A PICO-8 demake of the SCUMM engine that powered most of the classic LucasArts adventure games, such as Monkey Island and Maniac Mansion.

Primary LanguageLuaMIT LicenseMIT

SCUMM-8

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.

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.

SCUMM-8 SCUMM-8 SCUMM-8

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*

Current Features

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

Getting Started

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.

Building

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.

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:

Donation

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! ☕ 😊

paypal