The BlockTrain is a puzzle/rail shooter game that will help students to understand the block chain. To go about this, we came up with a metaphor to represent the block chain: the BlockTrain! This game and it’s mechanics are meant to represent the different concepts behind the block chain in a fun and engaging way.
- Created asteroid models for use in race segments, with textures using Blender’s Shader Editor.
- Created advanced, visually appealing planet textures in Blender.
- Created a black hole in Unity using it’s Shader Graph and Particle Effect systems.
- Helped with troubleshooting the code for save/load functions.
- Created modular train station model, including texturing, that can be used and adapted to every level.
- Created cargo models for use in the puzzle game, including textures.
- Worked on optimization, reducing texture quality and simplifying models where applicable.
- Added invisible walls to maintain gameplay integrity in puzzle scenes.
I spent most of my time in Blender. Learning to create and work with 3D meshes and learning how to use the Shader Editor for texturing. Shader Editor is used to edit materials which are used for rendering. Said materials are defined by a node tree system that procedurally applies visual effects to a 3D model’s surface.
Exporting the models with their Blender textures in a form that’s compatible with Unity was a huge hurdle to overcome due to the fact that the Blender Shader Editor system cannot be transferred directly to Unity. To overcome this dilemma, I learned how to convert the procedural shaders of Blender into 2D image textures that can be used in Unity using a process called “Baking”.
Disclaimer: The textures in these renders have been simplified or cut entirely in the final game due to file size and performance constraints.
Texture baking is the process of converting the surface effects of Blender’s shader graph into a 2D image. To do this, we have to generate a UV map for the objects that are going to be textured. A UV map is a flattened version of a 3D object. After the UV map is generated, Blender can take the visual effects from the 3D model’s faces and apply it to the corresponding faces in the UV map. We can then export the 3d model and it’s corresponding texture to Unity.
Unity’s Shader Graph was also used to create visual effects that change in real-time such as the heat distortion used in the Black Hole asset. The Shader Graph in Unity, much like Blender’s Shader Editor, allows us to create materials for 3D objects with a node tree. For example, the system has a Time node which allows us to affect the material in accordance with the time passed in the game as well as a Scene Color node which applies the player’s view onto the material. The scene color node is extremely important as it allowed us to distort the view of the player when recreating a heat distortion effect.