Skip to content

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

License

Notifications You must be signed in to change notification settings

Liquidream/scumm-8

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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, created by Paul Nicholas.

Made With PICO-8

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
SCUMM-8 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*

Current Features

  • Multiple Rooms (Up to 32 per cart)
  • Pathfinding for walking
  • Dialogs between Actors
  • Cut-scenes
  • 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

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:

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