Skip to content

SCUMM 8 API: Basics

Paul Nicholas edited this page Sep 20, 2021 · 9 revisions

Introduction

The SCUMM-8 system has a few core concepts that all work together to make what you see in a finished adventure game.

The first concept is of a Room. Each screen that the user sees is a Room in SCUMM-8. This can be a room in the traditional sense, such as a hallway or bedroom - or it can be an exterior scene. Rooms can even be used to simulate "title" screens and special effects. A Room is basically just a backdrop image that can contain other stuff.

Once you have a Room, it'd be pretty boring to leave it empty, so time to add some Objects into it.
Objects define stuff that the player can (typically) interact with inside the room - such as a fireplace or a door.

Speaking of players, they (and other characters) are represented as Actors.
Actors have similar properties to Objects, but they also have the ability to walk, talk and have inventory.

Other concepts to familiarise yourself with:

  • Verbs - Allow you to "DO" things with Objects and Actors (inc. GIVE and USE things)
  • Variables - Global properties that can are used to configure settings in your game.
  • Functions - The main API functionality is provided through these functions.

"Packed" Data Definitions (Room/Object/Actor)

To save on Tokens in PICO-8, most of the properties for Rooms/Objects and Actors (and should) be specified within the data property (string block), where they will be "unpacked" at run-time.

If you require a property to have a dynamic/calculated value at startup, then simply declare it as a normal property (e.g. outside of the "packed" data).