Shockwave!

Posted on Aug 17, 2020

Last week was an exciting one because the Director engine can finally load Macromedia Shockwave 1.0 movies!

This first version of Shockwave was based on Director 4.0, which we already have partial support for, and it used a “afterburned” movie format with a modified memory map and zlib compression. After implementing support for this file format, the Director engine can now load (and sort of play) early Shockwave games: A Shockwave asteroids game

None of the games I’ve tested work very well yet due to missing Director features, but I’m hoping that some Shockwave games will be fully playable soon, as they’re often small and rather simple.

In addition, I’ve refactored cast members so that they are Lingo objects, greatly simplifying the implementation of cast member properties. The properties a cast member has depends on its type, and this is now implemented with inheritance and polymorphism instead of a huge switch statement with copious type checks.

More types to follow! :)