Client Side DLL

Scare Screen Details

DOOM had a disclaimer display when loading PWADs. Q2, with a Game DLL that is used in single player locally, is completely lacking such a Scare Screen. Now, let's say that most Q3 players will be underage kids with no clue at all (yeah right, 18+).

In Advanced Options, there be a checkbox "Disabling custom Client DLL" (and "Disabling custom Game DLL"). Both are ON by default. An attempt to change this will get you this Huge Frightening Screen, stating that you are going to loose files, your PC, your house, and your testicles, when you risk unprotected exchange of data. You can't enable Client DLL loading when you have not enabled Game DLL loading (but vice versa is possible). It asks for confirmation, and prints a disclaimer: All Warranty Expired, No Support Calls, Stay Away From Us, You Are Poison.

Next, a modified Client Side DLL has to be loaded explicitely with a "+set" command line switch. If you replace the original file, a checksum will show this. In both cases, you get this Other Huge Frightening Screen: "This game has been modified." No warranty, the works. Asks for confirmation that you really want to loose your testicles. If you replaced the original file, it will simply decline: "Q3 will not load a modified client DLL from the default location for security reasons".

Finally, if you want to go to great lengths, you could check the unresolved symbols in the DLL for Usual Suspects: fopen, read/write, and Win32 equivalents. Another Huge Screen appears: "Your modified DLL does read/write access to local files. This is a Bad Thing. Do You Really Want To Continue?" It is a rough approximation of Java security, and gets the users used to responsibilities that will come with Java in Trinity (or are already present in Java with Browsers).

What do we gain? A lot of verbose scarecrow displays that provide a lot more awareness to Joe Fool than currently (see below, New Problem). You have to make a conscious decision to override the security, and in the process you will get a bit educated about the risks you are running. And liability should be settled.

Submitted 980420, revised 980429, revised 980430, comments to