Dedicated Manager for Online Nascar Simulations (DeMONS)
Last updated: 11:00am (central time), 07/04/2001

What Is It?

DeMONS/2 is a front end manager for dedicated Nascar Racing 4 by Papyrus. At first, I wasn't planning on doing a DeMONS/2 because I figured Sierra would do the right thing and make the multi-player experience a little less complex for server admins. Well, they tried to, but it didn't really work.

After a dozen or more requests for a new version that catered to N4, I relented and started working on D2. I'm going to try to make DeMONS a better WON than WON.

Many thanks to the following people for their help in chasing the demons out of DeMONS/2:

  • Eric Busch (*)
  • Shawn Wise (*)
  • Bill Cregger (**)
  • Jeff Causey (**)

(*) Shawn and Eric were great help in getting the INI settings and command line parameters properly arranged in my little brain box. Without their help, I would still be sitting there mumbling "What the hell does that do?"

(**) Bill reported the first bug in DeMONS/2. I know, it's a dubious distinction, but what the hell, it helped everyone else. Jeff also gets mentioned because he's probably the most dedicated user/tester I have.

Why Does It Exist?

One of the things I think is wrong with N4 is that all the WON stuff is included *in the game*. In my oh-so-humble opinion, this is a "bad idea" (tm). The WON interface should have been made an EXTERNAL nuthin-fancy windows app. This would have allowed much more freedom to enhance the functionality of their system, and would have reduced the sim to be just a sim instead of what it is today. I feel very strongly that it would have simplified the code in the sim program itself, resulting in a better experience while driving, and better compartmentalizing the code.

If you haven't figured it out already, the whole idea is to make DeMONS/2 a complete replacement for WON/Sierra. This means that races that show up on the nanny server will NOT show up on the WON/Sierra server list.

With those rants in mind, DeMONS/2 will support the following basic feature set:

  • Multiple N4 hosts running on a single machine - up to ten N4 hosts can be configured for each machine, and each host runs it's own schedule of races
  • Remote administration of the machine running DeMONS/2
  • Remote public setup - drivers can setup a race on remote servers (that are configured to allow it)
  • Any D2 servers configured to do so will report to a central server which will make these servers visible to clients/drivers.
  • Clients/drivers will be able to join configure N4 and a race without having to first run N4 (unless the server they want to join is registered on WON).
  • Clients will be able to swap car files and chat while viewing the list of servers.
DeMONS/2 will be comprised of three sets of components:
  • Server Admin Components - all the things server admins need to manage their servers.
  • Client Components - components that allows clients to view/join races, setup races, chat, and exchange car files.
  • Nanny Components - these components will live on a "central server" that accepts race results, controls access to races, calculates stats, etc. The first central server will be RaceServer.net (if they're still around when we get to that stage of development).
Testing will be an on-going thing. As of the time I'm writing this, v0.0.0.19 is currently available for testing, and includes only the Host Admin Components.


What Does It Cost?

DeMONS is (and always will be) free software as long as I own the rights to the software. If Sierra or Papyrus wishes to contact me about buying the software (including source code and all other related files), I'm willing to listen - grin.

How Does It Work?

There are three primary parts to DeMONS. The host component set, the client component set, and the nanny component set. Each component's state of development is indicated by the color of the text. Examples:

  • pretty much finished
  • actively being coded
  • started
  • basic design started
  • not started yet

Host Components - This set of programs is provided for people that want to host N4 races on their own hardware.

  • Local Host Configuration - This utility allows the server admin to setup up to ten N4 hosts, each or which run in their own thread using their own schedule. I anticipate that most individual machines can run maybe two or three hosts at a time, depeneding almost entirely on the bandwidth available to that machine.
  • Launcher - This program actually watches each schedule and runs specified races at scheduled intervals (or dates and times). This is ALL this program does. It uses very little cpu time (not even measurable on my P3/500).
  • Scrubber - This program is used only by server admins running on Windows 95/98/ME machines. The reason it's needed is because the Windows versions listed do NOT read the N4 track INI files using normal Windows API calls (the problem does not exist on NT or Win2K).
  • Remote Host Configuration - This program allows host admins to configure their DeMONS hosts from a remote location. Depending on the type of server admin, they can either change EVERYTHING, or they can configure a single configured host on the remote machine.
  • Remote Host Monitor - This program lives on the N4 host machine and waits for remote connections from remote administrators.
  • Public Race Setup Monitor - This program lives on the N4 host machine and waits for remote connections from clients that want to configure a race remotely.
  • Results Reporter - This program imports the N4 results file created by the sim, and sends the data to the nanny server, as well as generating a custom web page for the event itself. It also allows custom points schedules so that the server/league admin isn't forced to use Nascar points.

Nanny Components - This set of programs is provided for people that maintain the results database, run the chat server, and maintain the global muzzle list. At this time, Raceserver.net will initially be the only "nanny" server available. None of the components have been designed at this time, but they're listed below:

  • Results Database - This program will maintain the results database.
  • Chat server - This program may provide IRC server functionality.
  • User maintenance - This program allows people to register.

Client Components - This set of programs is provided for the people who will be joining races.

  • Race Client - This program will allow the racer to configure N4 and join races without having to be in the sim until they're ready to actually join the race. This will include selecting a car file, specifying a password for the race, and other related options. This program will also provide chat and car file exchange capabilities, as well as the ability to remotely configure races (only one race at a time) on hosts that have been configured to allow it.
  • Scrubber - I'm not sure, but we may need this program for clients too.


What About Wreckers?

There will be a method for banning users from racing on ANY N4 server that is connected to the nanny server, and I think I may have even figured out a way to guarantee that a banned (muzzled) user stays banned, despite the user ID, email address, or CD key he uses. At this time, I plan on only giving this ability to the nanny server components, but I may enbd up adding it to the host components as well.

It's really up to the folks that are running the nanny server wther or not they charge for access (to either N4 hosts and/or race clients), but I don't anticipate this happening.