VROC: Virtual Racers' Online Connection

To Do List

VROC is currently under continuing development. We plan to add a number of additional features to make VROC more useful and more convenient. Below are some of our ideas and plans, in approximate order of priority.

Disclaimer: Please note that this is a working To Do list. Order of implementation of new features is not immutable, and no promise is made that any or all of these features will ever be implemented!

Right Away

  • Sort the race list by Query Flag (Waiting and Practice at the top; Starting and Racing below), and by connection type, fastest at the top.
  • Don't display a race if it has not responded after 5 minutes after its estimated completion time. Keep querying it for several hours, and then delete it from database if it doesn't respond.
  • Internal change: change all database Perl scripts to get the database name from a variable, depending on the name by which it is called. Make it so all test scripts are identical to production scripts, by executing any different code based on the name by which the script is called.
  • Internal change: eliminate all SELECT * statements in favor of specific column selections, in all database Perl scripts.


  • Prevent a user from hosting a race when the race list is full.
  • Get browser type in Javascript and give alert when user is using unsupported browser; then redirect to a benign page (example of race list, and live chat).
  • Redirect new users automatically to the New User page.
  • Add error and "please wait" popups to supplement the Status Line messages.
  • Add Microsoft Internet Explorer support.
  • Register the VROC channel on IRC, if possible.
  • If race list is full, automatically add new races to Room 2.
  • Do cookie retrieval locally in JavaScript instead of through Unix-based Perl script.


  • Automate the race list refresh, so the user won't have to click the Refresh button, which will then go away.
  • Eliminate the Reload button, instead using the Start() method in Applet.
  • Make a sound when a race becomes available to join.
  • Keep recent pings and average them.
  • Allow hosts to limit players who may join by specifying a max latency.
  • Display the number of races being hosted in each room (and possibly number of players participating in races or practice sessions) in an applet on the VROC Main Page.
  • Track usage statistics.
  • Use a button instead of the tacky [Join] text.
  • Internal cleanup: convert elsifs in Unix GPL Query to arrays.

Way Later

  • Make race list scrollable.
  • Add a mailing list on a Majordomo-type list server.
  • Get the path to the user's GPL folder from the Windows Registry.
  • Perform automatic bandwidth adjustments: set GPL's bandwidth on the clients who join a race according to the characteristics of the Internet connection used by the host's machine.
  • Automate the downloading and updating of VROC software, thus eliminating the need for the Download page, or
  • Write a Java GPL Query, eliminating the need for downloading the C GPL Query.
  • Register VROC users, including their preferred car and class. Detect their entry into the VROC site, detect their hosting or joining of a race, and detect when they leave. Allow users to see a list of who is on VROC, along with status information (hosting race, joined race hosted by So and So, etc.). Allow users to page other users.
  • Add a licensing mechanism (including a License field to the VROC User Registration table created for the above item), so that VROC can implement rooms restricted to users with a certain level of license. E.g., anyone can host or join in an Open room, those with Amateur licensed can host/join in an Amateur room, Pro license holders can host/join in Amateur or Pro rooms, etc.