Original Post
I''ve just spent the evening reading through these forums about DLL usage in the game engine. I always assumed I would be using DLLs in my engine, to allow me to separate the core engine from it''s interchangable components such as graphics and sound, the idea being that the game can determine which component to use at runtime based on player preferences.
However, after reading many good points in previous threads, I''m starting to wonder if this is even worth the effort. Not just in terms of personal effort, but in general.
If my thinking is correct, using DLL-type modules provides no benefit for cross-platform development. The only benefit I can see is allowing the user to choose components within a single platform. For example, the choice of using DirectX or OpenGL on the Windows platform. As far as Linux is concerned, OpenGL is the only option available, so providing this modularity would be useless. Not only that, but the engine core itself contains platform-specific code as it is, so breaking it up into DLL modules doesn''t remove the need to recompile the whole engine anyway.
Also, correct me if I''m wrong, but by splitting up the engine into DLLs, each component is now forced to communicate through well-defined interfaces, rather than each class being able to easily access every other class in the engine.
So, for all that, how much of a benefit is there in implementing this modularity just for a single platform? I know thats a matter of opinion, but am I missing something here? Is this the only benefit of DLLs?