DDirectorWikiDirector & Lingo Encyclopedia

What is Director?

A short history of Macromedia Director, Shockwave, and Lingo, and why they matter for game preservation.

Overview

Macromedia Director (later Adobe Director) was a multimedia authoring environment first released in 1987 as VideoWorks. It organized interactive content as a movie: a timeline (the Score) of sprites drawn from a library of media assets (the Cast), rendered onto a Stage, and scripted with the Lingo language.

Director's runtime philosophy is a frame-based playback head. Every interactive experience, from a CD-ROM encyclopedia to Habbo Hotel, is at its core a movie whose playback head is looping over frames while scripts react to events.

Timeline

YearReleaseNotes
1987VideoWorks InteractivePredecessor on Macintosh.
1988Director 1.0Renamed; still Mac only.
1993Director 3.1Lingo established as the scripting language.
1994Director 4Windows support matured; the classic CD-ROM era begins.
1995ShockwaveBrowser plugin playing compressed Director movies (.dcr) on the web.
1997Director 6 / 6.5Behaviors, actorList, sprite spans; the version "Lingo in a Nutshell" targets.
1998Director 7Dot syntax introduced alongside verbose Lingo.
2000Director 8image object and imaging Lingo (copyPixels). Habbo Hotel launches on Shockwave this era.
2002Director 8.5 / MXShockwave 3D engine, real-time 3D casts.
2004Director MX 2004JavaScript syntax as a second scripting language; the last thoroughly documented version and the reference target of this wiki.
2008Adobe Director 11Unicode; new physics Xtra.
2017Director discontinuedAdobe ends the product line.
2019Shockwave discontinuedThe official web runtime dies; preservation becomes a community task.

The pieces

Director (authoring tool)

The IDE: Stage, Score, Cast windows, Paint, script editors, debugger. It produced source movies (.dir) and casts (.cst), and packaged them as protected movies (.dxr), compressed Shockwave movies (.dcr), or standalone projectors (executables bundling the player runtime).

Shockwave Player

The browser plugin that played .dcr movies. Shockwave included the same core engine as Director's projector runtime (Dirapi/IML32 on Windows) plus network features and a sandbox. Not to be confused with Shockwave Flash (.swf), a different product entirely; Flash content could however be embedded inside Director movies as Flash cast members.

Lingo

Director's native scripting language: case-insensitive, dynamically typed, event-handler oriented, with distinctive chunk expressions (word 2 of line 3 of ...), 1-based lists, and an object model of parent scripts and behaviors. From MX 2004 onward, JavaScript syntax could be used side by side with Lingo over the same object model. See Lingo basics.

Xtras

Native plugins (the successor to XObjects) that extend the player: text rendering, network operations, the Multiuser server client, FileIO, video codecs. Distribution and emulation of Xtras is one of the main preservation pain points. See Xtras.

Why preservation is hard

  • No official runtime. Modern browsers cannot run Shockwave; modern macOS cannot run classic projectors; Windows projectors survive only through compatibility layers.
  • Under-documented semantics. The manuals describe the API surface but not exact event ordering, ink pixel math, palette handling, or hit-testing rules. Old content depends on those exact behaviors.
  • Protected formats. .dxr and .cct/.cxt files have scripts compiled to bytecode with source removed, so understanding them requires bytecode-level tooling.
  • Xtra dependencies. Many titles require third-party native Xtras that were never ported anywhere.

The preservation community answers with emulators and decompilers. The emulation guide surveys the landscape and the architecture that a Director-compatible engine needs, and the Native Internals section documents what has been recovered from the original binaries.

Terminology quick reference

TermMeaning
MovieA Director project/file; the top-level unit of playback.
CastLibrary of assets (cast members): bitmaps, sounds, text, scripts.
ScoreThe timeline: frames horizontally, sprite channels vertically.
StageThe visible rendering surface of a movie.
SpriteAn instance of a cast member placed in a Score channel across a span of frames.
Playback headThe current frame position; generates the frame event cycle.
BehaviorA script attached to a sprite or frame.
ProjectorA standalone executable bundling movie plus player runtime.
MIAWMovie In A Window: a second movie playing in its own window.
XtraA native plugin extending the runtime.

See the full glossary for more.