A PICO-8 demake of the SCUMM engine that powered most of the classic LucasArts adventure games, such as Monkey Island and Maniac Mansion.
Switch branches/tags
Clone or download
Latest commit 6ffe738 Oct 31, 2018
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
dist Big functionality update (#18) Aug 7, 2018
picotool_scumm8 @ 7c7451d Big functionality update (#18) Aug 7, 2018
src Big functionality update (#18) Aug 7, 2018
.gitattributes Lua syntax highlighting for GitHub. (#16) Apr 4, 2018
.gitignore Bugfixes UI etc (#12) Nov 17, 2017
.gitmodules Build step (#15) Mar 31, 2018
LICENSE.txt BIG Update! (RC1) (#2) Mar 24, 2017
README.md Update README.md Oct 31, 2018
build.py Build step (#15) Mar 31, 2018

README.md

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
SCUMM-8 H A L L O W EƎ N CODE-8
(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 (32+, technically)
  • 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

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