20/03/98 - Well, for those of you who think I must have died or something, I'm still alive :) I've been kinda tied up in the last two months and havn't done any Quake2 DLL work at all. One of the things thats been holding me up is a couple of major new versions for DiMeBoX Creepcam, a Quake1 patch of mine that is based on Creepcam, and a 300 player national lan that I got involved in the preperations of. The good news is I'll be posting more regular updates shortly, as I'm starting work on the Quake2 version of DiMeBoX Creepcam! I'm sure I'll come across lots of useful tidbits of information in the process. Also, my links to LCC and the ID source code and the tutorial itself are now long out of date, so I'll get those updated as soon as possible.
26/01/98 - I've rewritten the makefile to include header file dependency. Finally you should be able to make changes to header files and recompile without messing around. Grab it here. Also I've added a description of how to customise the makefile here.
12/01/98 - I've redesigned the layout of my tutorial, added a section on using Wedit, and an FAQ. I hope you like it.
07/01/98 - "Error during Initialisation". This dreaded message that pops up in a small window seems to be plaguing a lot of you based on the amount of feedback I've had about it, so I decided I better mention it here. This is a kind of general "umm, can't seem to load the DLL" error that Quake2 spits out when it has trouble loading and initialising the DLL. Many things can cause it, but the two main causes are: 1) Incorrect GAME_API_VERSION. For Quake V3.07 or later, you must increment the version number, as mentioned in a news article below. 2) You have not patched game.def as mentioned below in the main tutorial, generating a _GetGameAPI export instead of a GetGameAPI export. Note: you must do a clean re-compile after either of these changes, or the change will not take effect. Do this by deleting the object files with del *.obj prior to compiling. (With the latest version of the makefile you can just type make clean to do the same thing)
05/01/98 - The whole site has a new look and style to it. We hope you like it :) There may be some broken links for a few days, so bear with us. If any links remain broken after a few days please let us know.
03/01/98 - After seeing people still unable to get their DLL's working after changing the value of GAME_API_VERSION, a probable reason has occurred to me - if you have previously compiled, editing only a header (.h) file will not cause the make program to recompile the affected .c files, and your change will not take effect. The reason for this is simplicity of the make file. To include all the header file dependencies in the makefile would be the ideal situation, but would make the makefile about 3 times as big and complicated as it is now. I am considering it however. Meanwhile a temporary solution is this: if you change anything in a header file, before you re-compile, delete all the object files in the directory to force a full recompile. EG del *.obj.
02/01/98 - A hack has been found by Radix that appears to fix the laser beam bug (see below in the notes section) and while it is almost certainly not the correct way to fix the problem, it will do as a temporary measure until the real reason is found. In the file g_target.c on line 491, copy and paste the line starting with tr = gi.trace....directly below itself. Yep, you heard me :) If anyone can tell me for sure WHY it works, or better still, what the real problem is, I'd like to know.
31/12/97 - Thanks to an email from Ryan Drake, I've now figured out how to make patches compiled with LCC work under Windows NT! The problem was the DLL entry point, everyone has been doing it wrong from the beginning :) The solution is fairly simple and EVERYONE should apply it, to be sure that your patches will work under Windows NT. The changes consists of a new source file called lcchack.c and two changes to the makefile, one including lcchack.obj in the list of object files, and the other changing the command line options for LCCLink. Grab the new makefile here, and the new source file here.
31/12/97 - As you may have noticed, ID software have released a flurry of patches for Quake2, many of which are not backwardly compatible. The end result for us DLL programmers is that the latest version of Quake2 will not run a gamex86.dll file compiled with the source code originally released, while the latest source code has not yet been released. According to John Carmack's plan file, a temporary fix is to increment the value of GAME_API_VERSON at the top of game.h to 2. When the latest source is released, you can migrate your code across either manually, or using some kind of diff utility.
31/12/97 - Several people have pointed out to me that my explanation on where to unzip ID's source to is a little ambiguous. I've reworded it slightly. But basically, you want the .C and .H files etc directly in your patch directory, not patch\game as implied. Sorry about that. I knew what I meant, but as a tutorial its my job to make YOU know what I meant ;)
22/12/97 - A couple of people on the PlanetQuake DLL coding mailing list have pointed out a better way to fix the export name problem than using DLLHACK, consisting of a small change to the lines in game.def. The tutorial has been updated with this new approach. There is a new version of the makefile without the dllhack line available for download for those that have the old version.
19/12/97 - I received reports that the makefile was corrupt, causing errors like "no targets provided near line xx". It's likely that the web browsers people were trying to download it with were treating it as an ASCII file and mangling it. I've zipped the makefile now, so the problem should be gone. The make program is very sensitive to invisible differences in files like spaces instead of tabs, so you also need to be careful what you use to edit it with.