Way back in the Paleolithic Era of computing (about 1980), I bought my first computer, an Apple ][+. I still get a kick out of the clever way Apple “spelled out” the Roman numeral two with those square brackets. It was totally tricked out: a whopping 48 KB of memory, two 120 KB floppies (no disk swapping for me!), a beautiful 10" black & green monitor, a Epson MX-80 dot matrix printer that lasted me far longer than any other piece of computer gear I've ever owned, and a genuine Hayes 300-baud modem (the height of “online connectivity” then) that cost $300 (just for the modem, not the whole computer!), a nice even dollar-per-baud.
Somehow I convinced my wife that we should drop well over a month's income (and we were both employed, too). I promised her I would make it pay for itself.
I guess I did.
What computer classes that existed then were for "real computers," where you typed Cobol onto punch cards and handed your deck to the "computer operator" hoping he would run your program sometime soon and give you back a big pile of paper so you could figure out the results! Real programmers didn't play with home computers.
But then, I wasn't a real programmer. We had to learn things by ourselves. I sat in front of that Apple and typed hour and hour, writing code that didn't work, then figuring out why, changing it and trying it again. Rinse. Repeat. I was just sure that I had missed the boat on becoming a programmer. All those guys with the college Fortran classes would have all the fun.
Eventually I bought and read enough books that I figured things out. And discovered that instead of being way behind the curve, I was actually ahead of it. While they were better at algorithms, I understood people, and humor, and storytelling, and character development, and all the things one learns with a humanities degree. And by hacking away at code, I could do things that "real programmers" couldn't.
So I'm especially partial to hacking.
One hack that I used in Leisure Suit Larry 3: Passionate Patti in Pursuit of the Pulsating Pectorals, is worth sharing. Why? Where else could I possibly share it?!
There was a 72-screen maze in that game where you got lost in a bamboo grove. The entire maze was made up of one background picture of intersecting paths in a bamboo grove that exited out all four sides of the picture. We also made 4 cells that were mostly transparent, but that contained enough bamboo to completely cover each of those exits. We overlaid them onto that picture. For example, if there was an exit to the top, we didn't add that overlay, thus you could exit out the top. So usually we added two, or sometimes only one, overlay.
But why didn't the scenes all look identical then since every picture was the same? Simple. Every time you exited one screen, we flopped everything horizontally and thus projected the picture backwards, like a slide reversed in a tray. By eliminating disk access, this technique made everything work really fast, took up little memory, and only a tiny bit of disk space.
To control it, I created a bit array that contained 4 bits for every scene. (Picture a electrical wall box with 4 light switches on it; same thing.) 72 screens times 4 bits/screen equals 288 switches. One long wall plate!
Personally, I think the hack was much more interesting than the maze itself.
But the sad part is: until now, no one ever knew just how cool a hack it was!