Back to basics

I’ve been working with computers on and off again since I was a wee lad of about 15. Back then it was a Timex Sinclair 1000 that had a whopping 4k (yes, 4,000 bytes) of memory. That’s about enough to display this blog but that’s it. As we evolved in technology, I evolved in computers moving up the stack through Apple, Commodore, then my first IBM PC (a 4Mhz AT system with a gigantic 20 megabyte drive, which is just about enough to hold an average PowerPoint file). Ahh, the good old days. Yes, back then it was modems. Little devices that connected to your phone line and let you communicate with the outside world. Telnet? Internet? Cable? DSN? Nope. It was good old analog to digital conversion at 120 bits per second. Again, I traversed the technology tree growing up to 300, then 1200 then 2400 baud. Back then there was no internet so naturally communities got together the old fashioned way, through a BBS. A BBS is sort of like what a website is today. Files, chat areas, messages, and games all in one package. BBS software was generally clumsy but nice. An average SysOp (System Operator) could run his own system with a couple of phone lines one a single (dedicated) machine. Again I started small, with a Commodore 64 and a stack of 1541 disk drives stacked up holding the software and file areas. Every few minutes you would hear the modem ring, the disk drives spin up and someone was online either snagging some files, writing a message, or playing a game.

Again with all things, time marches forward. Today the BBS is all but dead but there’s hope. Systems are still out there. The Telnet BBS Guide lists hundreds of systems that are online. These days however times have changed. Now systems are running as background processes on peoples desktops hosting dozens of simultaneous connections through telnet and the Internet. Fantastic speeds and all that stuff are great, but the best part is that it’s still a unified community with a single theme. Some sites are catered to technical discussions while others are just setup for games.

I started writing BBS games back in the late 1980s. Back then it started as BASIC or maybe Pascal games written using a variety of toolkits (or grow your own). Sometime in the early 90’s I got invovled with some folks running a system in Toronto called Metropolis. They were running a BBS package called MajorBBS. What was unique about MajorBBS was that all nodes (12 at the time) were online at the same time, in real time. You may think this would be the norm but it wasn’t. Most BBS systems back then were a single machine running a single node (generally because multi-tasking wasn’t big back then). There was also a constraint that a PC could only run 1 (or maybe 2) COM ports to connect the modem to. In addition to this, these systems couldn’t talk to each other because when a user logged onto node 1, node 2 was just sitting there waiting for a call. When node 2 logged in, how could it see node 1 which was on a machine somewhere else? Even with networks, there was no real way for one process sitting on one PC to talk to another (even if they were in the same room).

MajorBBS changed that thinking by running a single executable program with everything loaded up into memory for all nodes. A user dialed into the system and was connected by a single thread that was constantly checking each line. In addition to that, there was a process running (well, the BBS itself) that would handle input and output for every user. When someone typed a sentance and pressed ENTER, it was sent to the BBS through the phone line. The BBS would get it, figure out who else it should be showing that information to (mainly other users that were in the same place in the BBS) and present it to them. Thus was born the teleconfernce. A live, interactive place where BBS users could go and talk. Everyone saw what everyone said in pretty much real time. Yes, a chat room, but this was back 15 years ago.

MajorBBS introduced something else back then with this technology. Live interactive games. Most BBS games (called Doors) were programs that were run on that single node. When a user wanted to play a game, he selected it from the menu and the BBS would shell out to the operating system and launch the door. The door was really just a separate executable program that someone wrote and used a drop file (a file that told the door who was calling it) and some kind of communications protocol to send and recieve messages to the user running it. Again, there was no interaction with a user running a door on node 1 with someone else running the same door on node 2. The two just weren’t talking to each other. Enter MajorBBS modules. These were games that were loaded up into memory when the BBS started up and when 2 people entered the game they would immediately see each other. Ahh, now you’re seeing the picture unfold. Player vs. player battles. Live chat and co-operative questing. Neat stuff for a simple text connection to a system. Another offset from this was the fact that not only was the BBS going back to the module to process each users input, but it was looping through the module itself. So now you could have a constant running game which meant you could program NPCs (non-player characters) to wander around in a game and do things. You could write weather patterns that changed with the passing of time. No longer was the world a static place.

MajorBBS unfortunately has all but died from the scene. First off it was VERY expensive to run. We spent close to $3000 a month to keep the phone lines running as well the software was no walk in the park. A 2 node version started at $59 but then additional nodes were a couple of hundred dollars each and games? Most BBS games (doors) run you anywhere from $10-$30. Freeware was not a word MajorBBS module writers used (I know because I was one of them). The development kit alone was a few thousand dollars plus you had to buy a system to test it on. Sheesh. By the time you’re finished, you’ve spent a small fortune and now have to sell these games to a bunch of SysOps who shelled out just as much for their piece. So it’s no wonder that we charged several hundred dollars for these modules just to recoup our costs. MajorBBS also had a lot of bad things happen to it. Tim Stryker, the creator of it, died from a heart attack when he was just 40 years old. The community scene was split up and never really had a unification. The product changed hands several times and pretty much lost focus on what it was trying to do. Today, MajorBBS has been replaced by a product called WorldGroup however it died a horrible death as well. These days people just won’t pay thousdands of dollars to run a hobby BBS.

There is an answer and that has come in the form of telnet BBS systems, one in particular called Synchronet. Synchronet is a wonder piece of work that is now freeware and the source has been released under the GNU General Public License (GPL). Now hobbyists running Linux, DOS, Windows, or even OS/2 can host their own multi-node BBS system for the cost of their internet connection.

The last piece of the puzzle is to get back to basics with games. Now that we have a nice, stable and always updated system to look at it would be great to bring back those doors and modules that have all but been forgotten. I for one am looking at releasing my old modules to work with Synchronet and will be looking at other ways to get people interested in door development. It’s a great thing to have 10 guys online all beating the living daylights out of an army of Orcs and not need a 1ghz machine with the best video drivers in it. BBS doors are all text based, and so should stay that way.