A History of Shadowland

Shadowland was originally created by Dave Hyatt in 1995. I started playing while Shadowland 6 was running in 2001. Around 2007 I discovered the Ruby programming language and the Rails framework for building web applications. At the time, there were discussions of building Shadowland 7, but I wasn't really involved. But this seemed like a perfect opportunity to dive deep into web application development, which had been a passion of mine, ever since I first used Shadowland.

So, I started working on a completely new piece of software, written in a completely new (to me) programming language. My initial efforts spanned about 8 months, from January to August, 2007. I can't remember exactly how or why it fell to the wayside, but it did, and I didn't touch the project until the beginning of 2015. At this point, the Shadowland community was dead. The domain had expired, and although the files were backed up at http://shadowland.whsites.com, the software was non-operational, and I was unable to contact the administrator of the domain.

Since the Rails framework had changed so much since I first wrote Shadowland 7, I decided the best way to proceed was to start from scratch, using my original code only as inspiration.

Dave Hyatt should receive all the credit for coming up with the idea for this software, I've merely implemented his ideas in a new language. He founded the community and created 6 different implementations of the software that ran it. I've included his original history (last edited in 1998) of how it came about below for the sake of institutional memory.


From SL1 - SL6, by Dave Hyatt:

When I was at Rice University from 1990-1994 for undergraduate school, I started a play-by-email game for Shadowrun. This game, entitled Romany Star, began in 1993 and lasted into 1994. During the summer of '94, I got a job working on an HTML Web browser for a group at the university. At the time I knew absolutely nothing about the Web and nothing about HTML.

Shadowland I was nothing more than my Shadowrun pages on the Web. The pages used only HTML 1.0 and weren't all that sophisticated. They consisted mostly of e-mail logs from the Romany Star game, formatted in HTML and hyperlinked so that the players could keep up with the game history easily.

I got the idea for doing a truly interactive Web site after discovering Andrew J. Park's Shadowspawn Guild. If Shadowland could be said to have a granddaddy, then Andrew Park's site would be it. The Shadowspawn Guild allowed users to post comments as individual runners to a single page. That's about all it did, but the single idea of allowing users to interact through the posting of HTML comments sent my mind racing. It was my goal at that point to produce an online community devoted specifically to Shadowrun. It would be modeled after FASA's Shadowland, and users would be able to link up with other Shadowrun characters and explore what their runners did during their "down time" between runs.

Shadowland II was born in the summer of 1995. I had just finished my first year of graduate school at the University of Illinois, and the research assistantship that I held that summer wasn't demanding much of my time. So I had some room to spare for my own coding efforts. SL2 was implemented using CGI scripts and simple forms. The scripts were written in the C programming language and were incredibly simplistic. SL2 had simple user accounts, and in each of the three areas, you could make only pages. The pages themselves could have comments posted to them from individual runners, and pages could even be archived.

The site itself ran from the Teaching Assistant machines in the CS department at U of I. You can still find links to the site (http://ta3.cs.uiuc.edu:8000/) all over the Web! Some people don't update their Web pages often. ;)

SL2 was a big success, and at its peak it had over 1000 users. Although popular, SL2 suffered from some serious limitations. The single biggest problem with SL2 was a lack of organization. Each of the three groups (The Real World, Shadow Talk, and Meet the Runners) consisted of flat page lists, and these got longer and longer until they were practically unmanageable. Another serious flaw with SL2 was the inability to tell which pages had changed since your last visit. You just had to crawl through the hundreds of pages looking for new stuff. Casual users didn't have the patience for this and became disinterested quickly with the site.

Shadowland III (1995) attempted to correct these problems. This time around the site used frames, so that the "site map" was persistent. It was re-designed from the ground up, and the CGI scripts were written entirely in C++. The concept of read and unread information was added so that users could quickly find only the pages that had changed since their last visit. The concept of the folder was added, although folders could only exist at the topmost level of the hierarchy.

SL3 remains the single most popular version of Shadowland. After a series of enhancements, Shadowland III peaked at version 3.7, and it remained in existence for a full year (late 1995 to 1996). During the later versions a primitive HTML-based chat system was even added, and a dice roller for Shadowland was created.

Brian Morin of Laserlink Network Services (www.laserlink.net) discovered SL3 and offered to host the site on behalf of his company. That's when SL actually moved off the TA machines and became www.shadowland.org. It was also during this time that Shadowland branched out to encompass other roleplaying systems. A sister site was created called The Hunting Ground, and it was devoted toWhite Wolf's World of Darkness. The two sites were completely separate; each had its own home page, login, color scheme, and user base.

I was (and still am) quite happy with the way Shadowland III turned out. It was reasonably easy to use and provided many of the capabilities that are at the core of Shadowland today. When Java came on the scene, however, everything changed. I realized that for the first time, real-time communication would be feasible. I could make a real chat utility, and I could make pages and folders become unread or read and allow users to open and close folders without forcing the user to reload a 500K Web page that contained the folder/page lists.

Shadowland IV made its debut in late 1996, and this codebase is the one that SL6 is derived from. The servers (both the chat server and the regular server) were Java applications, and the client was a Java applet. The Web server no longer stood between the user and what I wanted to accomplish with the site. This is still the way things are done today.

SL4 added the concept of Favorites, and it updated pages/folders in real time to become read/unread. The concept of the marker was refined. (It had been introduced for certain pages in SL3, but not as a general concept.) The first chat utility was implemented, and the site got a lot faster. There were five separate sites (Shadowrun, Battletech, Earthdawn, WoD, and Star Wars) and as with SL3 each had its own login screen and separate tree. You couldn't easily switch between sites like you can today.

Unfortunately I jumped on the Java bandwagon a little early. The shift from SL3 to SL4 cut out a lot of users, and an unanticipated problem regarding firewalls arose. I hadn't known that this problem was going to occur. In addition, many users simply didn't have machines powerful enough to handle Java. And so SL4 had a relatively small user base. Nevertheless, the users who could use SL4 absolutely loved it.

Shadowland V rolled out in 1997, and user membership swelled to over 4000 with the addition of a primitive non-Java site. Even before the non-Java site arrived, SL5 had about 3000 users. More and more people are able to use Java these days, catching up to a site that was arguably a little bit ahead of its time. Shadowland V added most of the additions that are in SL6 today, including the Personal Space and Aliases.

And now here we are in the present. I hope you'll stick with the site as it continues to get bigger and better. Here's to SL7, SL8, and beyond...!