Shockwave was generated by Macromedia Director (the spiritual precursor to Flash) and had a lovely IDE with a fantastic debugger and excellent 3D, video and audio support. You could make "proper" games in it, I once hooked it up to some hardware tilt sensors to make a Joust clone you could play by flapping your arms.
The scripting language Lingo was a little bit gumby but perfectly serviceable. The main engine limitation was IIRC you could only have 256 sprite channels. I was always disappointed that Flash took hold instead of the more powerful Shockwave platform.
To this day when programming Ruby I always mistype "puts" as "put" thanks to Lingo still burned into my fingers.
Macromedia Flash and Macromedia Director were both powerful and interesting products.
I played around with Flash years ago, back when Flash was still “in vogue” — made a couple of animations and wrote a rudimentary graphics editor that I didn’t finish.
I have fond memories of playing Flash and Shockwave games in elementary and middle school. One Shockwave game in particular that I remember was a 3d car game where other cars were chasing you through a city. The gameplay was rather simple and the 3d was quite low poly but it was an impressive game nonetheless.
I also installed Director at some point I think but it was a bit too complicated for me to understand at the time.
I recently picked up a few books on Director and Lingo that the library at my university had decided to get rid of. Flash and Shockwave are dead but the editors had something to them that I think is worthy of investigation, thought and revival. Perhaps some day we can have a Flash/Director like tool for developing interactive Canvas and Canvas3d (WebGL) content.
Director had depth and power, while Flash was very accessible to illustrator/designer types. That era saw some amazing net.art demoscene type pieces that have no modern equivalent (Joshua Davis / flight404 etc). Haiku.ai is doing some interesting work in that space.
I wonder if WebAssembly can bring back this classic art aesthetic. The key is a great IDE with strong graphics asset management.
That's one of the goals in a discord I'm a part of. The concern is whether or not WebSockets is adequate enough for this too. There will likely be a need for JavaScript in any regard. It's interesting that Director did support JS in some form for a while too, but everyone always writes the decompilers for the Lingo syntax.
Still looking for an online Pictionary (tm) clone to play with my daughter. Used to play Isketch [1], it seems to still exist, but I don't have Shockwave installed so cannot verify.
Thank you for this lovely write up, it reminds me of the joy of reverse engineering. It teaches us a lot, it is how I got into the industry.
Nowadays it can be a bit more challenging - at least for high budget productions as the games can be a lot more complicated, and there are anti piracy measurements in some which means it requires a bit more effort into seeing the information - for example all strings would be encrypted. Modifying anything at all could mean the game will not start or it will crash on purpose. Similarly for multi player games, with anti cheat protection. Nothing is impossible though ;)
Indie games should have relatively low barriers to entry, however :)
> It teaches us a lot, it is how I got into the industry.
Absolutely. I played a lot of games and often prolonged their attraction by simply digging into their data files and fiddling with them. I remember writing a terrain editor[1] for "4D Stunts" after looking at the data format in the 3 existing terrain files. Or discovering a dragon in the original "Quake Test" release after reverse engineering the MDL file format and writing one of the first viewers for it. It was certainly a huge motivation seeing the visual result of your work in action. The relative simplicity of the games really helped with that, just like you said.
[1] Here's a screenshot I just took after running it again in DOSBox for the first time in probably 20 years: https://i.imgur.com/z7ZSM0J.png.
One of my concentrations in college was Multimedia Programming in Shockwave. I build a 3D, multiplayer version of Spy Vs. Spy with randomly generated levels.
The host would generate a 2D array of objects and locations and then transmit to the client. I felt so smart back then.
The 3D engine was pretty easy to work with. I hand-coded and hard-coded every single animation, since it was faster than learning how to animate.
I miss working with Shockwave, it provided a wonderful combination of power and accessibility. I've found Unity to be the closest in features, but don't get the same thrill from it.
Ah geez, I remember Cartoon Cartoon Summer Resort like it was yesterday! I'd leave the desktop running for 30 minutes while it loaded because dialup was sluggish as hell.
I really enjoyed your writing style and it's definitely inspired me to have a poke around some other games too!
The scripting language Lingo was a little bit gumby but perfectly serviceable. The main engine limitation was IIRC you could only have 256 sprite channels. I was always disappointed that Flash took hold instead of the more powerful Shockwave platform.
To this day when programming Ruby I always mistype "puts" as "put" thanks to Lingo still burned into my fingers.