Scared is a 3D shooter in the style of Wolfenstein 3D, written in Java in 1998.
Source code cleaned up and released in 2012.
The Story of Scared
Scared isn't a remarkable game. What was remarkable about it, though, was, when it was released in 1998, it was the first 3D shooter you could play in a web browser.
At the time, Flash hadn't taken off yet, but Java was everywhere. The two big browser makers, Netscape and Microsoft, each had their own Java VM.
In 1997 I was studying computer science at the University of North Texas, and I got a free copy of Visual J++ (Microsoft's IDE for Java) that was handed out at a university-sponsored event. I started playing around with Java and really liked what could be accomplished with applets.
I was inspired by Andre Lamothe's "Tricks of the Game Programming Gurus" book which had a simple Wolfenstein 3D style engine. I took the basics of Lamothe's C code and re-implemented it in Java, and figured out how to do floor texturing and how to add other features like doors and pushable walls.
My roommate at the time was into 3D rendering, and I asked him if he wanted to make enemies for the game, but he wasn't interested. So, I ended up creating the bad guys myself - which explains why they are so bad. I didn't plan on making the enemies look like the AT-ST models from Star Wars, but it turned out that way.
By the summer of 1998, Scared was finished. I released it on my personal home page at school - which was hosted on UNT's servers - and then submitted it to some sites.
Soon it went viral - or about as "viral" as things went in 1998.
At some point later the C.S. professor who administered the department's web server wrote me an email about my site. I wish I had kept the email, but from what I remember, he told me that Scared was getting 50% of the page hits and using 95% of the bandwidth of the server. Obviously, this was too much. There was some talk of setting up another web server for the department, but in the end they decided to ask if I could move Scared somewhere else. So I got a new web host and personal domain, brackeen.com, and moved it there.
After moving to the new site, the oddest thing that happened was that someone called my personal home phone just to tell me he liked the game. He did a whois search on the domain name, got my phone number, and called me up. At first I thought it was some sort of prank, but really it was just a few guys hanging out in their office playing the game after work, and one of them thought, what the hell, let's call this guy.
Years later, I still occasionally receive emails asking me how to get past the last level (there is a secret, pushable wall to find, hinted when the player sees the red key in a sealed room).
The attention I received from the game opened some doors. It helped me get my first contract gig, which was making a 3D racing game for a car dealership in Germany. Soon I started working for a San Francisco company that was creating Java web games. This eventually set me on a path that led me to Los Angeles, which is where I still live today. Plus I ended up writing a book on Java game programming.
Obviously, it was a unique window in the early age of the internet. Create a mundane 3D shooter, put it on the internet, and boom, it changes your life.
After all these years, though, I realize just how bad the game is. Sure, maybe it's a good game for a computer science student in 1998, but today, it's not so good. It's brutal actually. Only one type of enemy, only one type of weapon. No bosses, no spawns, and no inventory. Arbitrary level design that makes you wander back and forth looking for keys. Plus, if you die, you have to start a level over.
So, I've decide to "retire" the game. But I thought I'd release the source, in case someone would find it interesting or useful.
Over the years, a handful of people asked if I could release the source. I resisted because the code was such a mess. It was my first game, and I did really, really dumb things in it. For example, in the first version, every time the player opened a door, a thread was spawned to do the door animation. Also in the first version, lots of values were hardcoded.
But now, I've taken some time to clean up all the code, and it is a lot more organized and readable. Also, a few features were added from the original, like depth shading, mouse-aiming, 24-bit color depth, and a larger applet window. For the final cleanup I removed external dependencies. It still has some hardcoded values and spaghetti code, but it's a lot cleaner.
Enjoy. It's BSD licensed, so you can do whatever you want with it.
-David Brackeen, February, 2012