   Mod System - Quake2 or Quake3 style
  I am coding a multiplayer first person shooter engine. It will support mods through the use of dlls. But I cant figure out wether to go quake3 style and have the server mod code in game.dll, the client code in cgame.dll, and the user interface code in ui.dll, OR go quake2 style and just stick it all in one dll.Which one should I choose? Sticking it all in one might be easier to implement but I fear it will be messier as one of the clients will be able to directly mess up the server.Also, what exactly does the ui.dll in quake3 do? Does it run whilst a game is running? 
  I am not a really experienced Software-Developer, but I think there is no big difference. I would go for two DLLs, because your code will be easier to maintain, and you really save time as the compiling-process will be faster for each.  ;  The big advantage to keeping them in separate DLLs is that you don''t need to load them if you don''t use them. The average player will not need to use the server DLL, and a dedicated server will not need the client or ui DLLs.On the other hand, there may be many cases where both the client and server have common code that needs to be shared, in which case keeping it all in one DLL will be easier to write and maintain.In Quake3, the ui DLL is in charge of all the GUI stuff, such as menus, text boxes, lists, etc.;  yeah thats what i was thinking Nairou - there are valid arguements for each choice, i just cant decide ;quote:Original post by Nairou  The big advantage to keeping them in separate DLLs is that you don''t need to load them if you don''t use them. The average player will not need to use the server DLL, and a dedicated server will not need the client or ui DLLs.On the other hand, there may be many cases where both the client and server have common code that needs to be shared, in which case keeping it all in one DLL will be easier to write and maintain.In Quake3, the ui DLL is in charge of all the GUI stuff, such as menus, text boxes, lists, etc. Wether the "average player" will need the server DLL or not is not an issue, because a 1 meg DLL (at max) will not change much on a 120 GB hard drive. I must also say that in many mods for half-life, the non-dedicated servers outnumber the dedicated servers.Having the code in one DLL can allow sharing of some code more easily. The client can use the same entities as the server and more accurately simulate the server-side game... And no, it doesnt represent security weakness... The clients shouldnt be able to change what is going on on the server.I will agree that the GUI should be separated, but the game DLL should not be split in two. As a side note, you don''t even need a DLL for the GUI, you could simply make a text file format that is read by the engine and describes your GUI system. Looking for a serious game project?www.xgameproject.com