The first thing to keep into account to decide how the directory tree needs to be structured is the kind of information that has to go in there. In this case, I will need to provide a container for source and header files for the engine, all written in C++. In addition to that, I need to provide another container for a test application that uses the engine. Without the test application it wouldn’t be possible to test and measure the capabilities of the game engine. And, finally, I also need to create one last container to host files that are needed for the compilation but that are not really part of the engine itself. Rather, they are files from other open source libraries that the game engine will reuse.
Here is a representation of the directory tree:
src and include are the containers for the source and header files of the game engine.
src_app and inc_app are the containers for the source and header files of the overall application.
src_mod and inc_mod are the containers for the source and header files of the external open source modules needed there in order to compile the whole application.
obj is the location where compiled object files are stored.
bin is the directory that contains the application binary, the one that is called to start the application. Inside bin there are two more directories: config, which stores the configuration files for the application, and assets, which stores the assets used by the application (backgrounds, sprites, sounds, music, and so forth).
Now that the base directory structure is defined, I will proceed on creating a local repository under git control, and then I will create the project itself on GitHub. At that time I will post here a link to the GitHub project repository and I will also point to this blog from GitHub itself. This way, people who would like to follow what I am doing can easily move from one site to the other.
Please feel free to drop me a comment or a suggestion on what you have seen so far.
Leave a Reply