Original Post
Hey everyone, I have been researching into DLL design for my new game engine, but I have run into a design confusion about the use of DLLs. I want the engine specific code of my game engine to be in a DLL, and the game specific code to be in the EXE. I know there are other ways of going about this (such as engine in EXE and game in DLL) but I am sticking with this method because it seems logical to me, and it is simple enough for my first game engine. But I am confused, what is the point of using a DLL in this case? From what I've learned, DLLs can be either statically linked to or dynamically linked to. In my case, I don't see any reason to dynamically load the DLL (unless I use multiple APIs, but I'm not), and so that leaves me with the other option of statically loading the DLL. But if I statically load the DLL, then why use a DLL in the first place? Wouldn't I be better off just using a static LIB for my engine in this case? So basicly, I am asking two things: 1) What are the benefits of dynamically loading the engine DLL over statically loading it? Is there any real point of loading the engine DLL dynamically in my case? 2) If I don't need to dynamically load my engine DLL, then I will statically load it. But in this case, why not simply use a static LIB? Are there any advantages and/or disadvantages of using a DLL statically VS using a static LIB? Any comments, suggestions and advice would be greatly appreciated. Thanks in advance.