I developed all aspects of gameplay, game systems, and tools, including dynamic and procedural weather, a layered interaction system to support non-linear storytelling, and an asset importer tool to automate art iteration for level assets.
A futuristic murder mystery detective game in which people’s data is protected through the use of SSI (self-sovereign identity) digital wallets.
Dynamic & Realistic Weather System
Layered Interactions
This is a placeholder tab content. It is important to have the necessary information in the block, but at this stage, it is just a placeholder to help you visualise how the content is displayed. Feel free to edit this with your actual content.
Modular Work = Manual?
The Problem
To build our level, we decided to use modular building blocks made by our 3D artist and have our level designers build the individual buildings based on his city layout. While this was a great solution for our small team, it meant that each time we had an iteration of new building assets, we would need to spend a lot of time doing manual setup.
Hypothesizing
The Solution
To save a significant amount of manual work and potential human error during this process, I built an asset importer which would take in an .fbx file and a shader and make the following process automatic.
1. Extract the model’s materials.
2. Find the corresponding textures within the same directory by name.
3. Apply the textures to the shader based on the exposed shader properties.
4. Rename the textures using the model name and texture type (correcting potential typos).
5. Remap the materials back into the model.
I also included a debug section for making sure all the textures and materials were found properly in case something wasn’t working as intended, a manual select for the textures folder of the model if the importing did not follow the same pattern (also if the tool was used in other projects), as well as an option to reset the base color of all the extracted materials to white.
Results
Using this tool saved us hours and hours of manual labor of dragging textures and materials all over the place – all with just the click of a button! I wanted to also automatically replace each model with its corresponding prefab, but due to time constraints during the end of the project, we prioritized other tasks instead. However, that would be a great next step for integrating the tool into other projects and making its own stand-alone asset.