
Fixing a Bug in an 18 Year Old Shockwave Game - wahlrus
https://mattbruv.github.io/ccsr-bugfix/
======
hnzix
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.

~~~
codetrotter
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.

~~~
hnzix
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.

~~~
donatj
I’ve wondered recently if it would be possible to convert flash or shockwave
to WASM and preserve some of these old relics.

~~~
giancarlostoro
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.

------
toxicFork
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 :)

~~~
dividuum
> 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](https://i.imgur.com/z7ZSM0J.png).

------
notjustanymike
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 college.

------
spondyl
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!

Thanks :)

------
cordite
I actually remember this one! Several hours went into that.

Wonderful write up for a strong piece of nostalgia.

------
Marc66FR
Nice work and the best way to learn about programming

------
microcolonel
Maybe some day Adobe will free up the shockwave player again. So much
excellent creative work is starting to become inaccessible without VMs.

