For this assignment we had to remove the use of custom command line arguments to pass the assets. Instead we created a new file that contains a list of all the assets required to be built. We built a mesh builder tool that we use to build our meshes and add to the asset list. We also added another mesh, a triangle to our list of meshes being output on the screen.
This is how I decided to structure my file called AssetsToBuild.lua that contains all the data about the assets to build. like which builder tool to use to build them, the source path (src), target path (tar) and the list of those type of assets. The assets are grouped by type so all the mesh assets are together and all the shaders are grouped together. That way we can specify common information for all of the assets instead of repeating it for each asset.
I placed this file in the Scripts folder. The reason being that since my BuildAssets.lua, (the script that actually builds the assets using lua functions) script is in this folder it made most sense to have the AssetsToBuild.lua in the same folder. That way all my lua scripts are in the same folder.
The screenshot below shows me debugging the MeshBuilder. To do this we need to specify custom command line arguments to the Debugger, set the desired builder to be debugged as the startup project and then debug this using visual studio. This is required in case a specific asset builder needs to be debugged.
These are the new command line arguments for the BuildAssets.lua project.
We pass the AssetBuilder.exe application as an argument. This is because the asset builder contains the list of assets as well as all the code to build our assets. Hence no other arguments need to be passed.
The AssetBuilder project depends on the BuilderHelper.. The BuilderHelper contains helper functions and utility functions that are used for the build process. Additionally it uses the Windows and Lua libraries and depends on those to build as well.
UPDATE : After talking to my professor John-Paul, I realized the MeshBuilder/GenericBuilder need to be built to provide the assets for the asset builder to build. The asset builder does NOT require these builder tools to build, but it does need it to run correctly since they provide the assets the asset builder needs.
Below is the screenshot of my output, now using 2 meshes, a triangle and square. These meshes can now be easily added to the game using a simple lua script as shown above.
You can download the Direct3D_64 build here.
You can download the OpenGL_32 build here