[Foxtrot Engine] DLLs: Improving dev. iteration
Overview
I have revised the Foxtrot Engine, separating code into multiple DLL files.
This will decrease the amount of time required to build not only the engine, but also the game produced with it.
The following features were implemented:
- Math Library(FoxtrotMath) as DLL.
Development Logs
2025.05.02, Friday
DLL stands for Dynamic Linking Library built for Windows. It consists of codes and data which can be reused over multiple programs, by which enhances the memory usage. What I am expecting is that the Foxtrot Engine can be modularized, which of course into several modules that can be attached and detatched as the programmer intends to. Rather than building the big chunk of code within the same project file boundary, separarting the code into several modules will improve the development iteration (build - test - improve) since much time can be saved by only building the modules that have changes or have to be rebuilt for some reason.
Among the ways to link DLLs, implicit and explicit, I chose to go with the explicit linkng since I wanted to import & export the engine functionality in a more dynamic way.
2025.05.03, Saturday
I decided to take back my decision, and move from linking DLL files from explicit to implicit. I reconsidered the purpose, and found out the dynamic structure can also be achieved without loading file at some point during the runtime. Dividing the code into modules and decreasing the amount of time building the game was the priority, thus the timing that the DLL gets loaded would not be a problem.
I have turned the math library, FoxtrotMath into DLL with implicit linking. Individual Components, however, can be implemented as the explicit-linking DLLs to be loaded when they are instantiated and attached to the Actor during runtime.
Image 01: Project directory structure - FoxtrotMath
Image 02: FTMath.h
References
Explicit Linking of DLL in C++ in Visual Studio
This was awesome - concept overview with the practical examples.