First post, by Arlo
This forum seems to have a lot of discussion on helping retro gamers emulate old environments, and I'm sure many of us must have a nostalgisa for old school BBSes, the precursors of the modern Internet, and in particular, for DOOR games we played on them, such as the popular Legend of the Red Dragon, and other similar games.
Traditionally, BBSes were run from a dedicated computer in the Sysop's home which had to be on 24/7, or at least, whenever the BBS was answering calls, and oftentimes, one or more dedicated phone lines were required for the BBS to operate. In modern days, some hobbyists still run old school BBSes, and the setup hasn't changed much. Typically, instead of using a dedicated phone number, callers to the BBS use telnet to request some web address, such as bbs.mydomain.com. But as far as running the BBS goes, not much has changed. A dedicated computer running BBS software is still needed, and typically, a monthly fee needs to be paid to some Internet provider to redirect requests to bbs.mydomain.com to a static IP address which the computer is connected to. One BBS operator told me a few years ago that he was paying as much as $60 a month for this service!
It would be nice if hobbyists could run oldschool BBSes from a VPS server, the very affordable kind that can easily be used to set up simple websites, and which go for as little as $4 a month.
This is where Node.js comes in. Node.js has gained increased popularity over the past year as a Javascript language set of libraries dedicated to making it relatively easy for an end user to set up a server. In as little as three or four lines of code, a programmer can have a server set up quickly. And although most Node.js applications are oriented around HTTP requests and, by extension, running websites, Node.js also provides support for setting up a telnet server.
It seems to me that a worthy idea would be to code BBS software in Node.js to mimmick the old school BBS software packages such as Worldgroup or Wildcat! BBS. Indeed, I'm not the first person to think of this, as a Google search produces one Github project with just that aim, and another one to provide ANSI support to Node.js
The main task of programming a BBS in Node.js would be trivial, and may already have been completed by the above-mentioned Github projects. The application would simply need to load configuration files to display menus and request user input accordingly. In fact, the task is so trivial, that an individual programmer running his own BBS could get by making changes to his menus by simply modifying the code from time to time without having any config files at all. But the harder task is enabling the BBS to run the old school DOOR games, such as LORD. My understanding is that those games were run as external programs by the BBS, meaning that Node.js code would need to be written to execute byte code and emulate an MS-DOS environment.
Since there seem to be a number of posters here who are familiar with the technicalities of how DOSBox works, I would like to know what everyone thinks of this idea, whether it would be feasible, whether anyone would like to get together to make this happen, and the next direction to go in to make Node.js emulate DOS.