If your programming your patches in C, C++ or even Delphi, the stuff we got here counts:) Good to read, esspecially if your new to programming, or even if you dunno what a DLL is....yet:)
"What is a 'DLL'?"
'DLL' stands for 'Dynamic Link Library'. This is a special file that stores conventional C and C++ (or any other DLL capable language) functions in a separate file to the main application 'EXE' file.
"What is the point of this?"
A DLL allows commonly used functions and pieces of code to be used by multiple applications at the same time while having only one copy of the code in memory. It also allows a programmer to share functions with other executables.
"Why did id program the code into a DLL and not the executable?"
Good Question. id chose to implement certain game functions in this way so that we, the enthusiastic programmers, can easily alter the game's code using languages we are familiar with (unlike 'Quake C'). The only way for id to give us access to the game logic, without giving away the source code for the whole game, was (quite cleverly) to use the Windows DLL concept. Another reason is language compatibility; you can create DLLs in many languages other than C/C++.
Technically speaking, that means it is possible to write a Quake 2 mod in any language supporting the creation of DLLs. This is a really great idea, but wait! There's a problem... id's game DLL source code is written in C/C++.
This means that anyone wanting to write a mod in a language other
than C will have to make sure that the language supports procedure
calls to and from C. If it doesn't, then, you will have to port
all of the original DLL core to the chosen language.
Unlike Quake C, with DLLs the possibilities of interactivity in the game are almost limitless. For example, you could have the Quake dude run up to an internet terminal in a level and start up a web browser window right in Quake 2 (?). That person could then find info on a player or Quake 2 server and connect straight into the game. You could even program it to send you, the programmer, stats on all the players using your DLL! This time around, truly ANYTHING is possible.
However, this power could prove a potential problem to the innocent player. All this new power could allow an 'evil' programmer to do some rather nasty things to their machine. Imagine your hard drive formatting itself at the launch of a rocket, or a trojan virus sending all your valuable data to some remote server at the start of an internet game. All this and more would be possible. :o\
This may sound like the end of the world to all you Quake players out there, but I don't think its gonna be as bad as it sounds. Consider that new program you installed, or perhaps some freeware compiler you just downloaded. Did that blow up your HD?? Probably not... The incident rate for this sort of stuff is very low. So I believe that there won't be too much of a problem. And if you stick to the reputable sites (planetquake, blue's, etc...) then I guarantee you that the patch is 'behaving good':)