Unity Orrery C#
Unity does nothing more than render and manage objects, all translation, rotation, scaling and more has been implemented through custom classes such as Matrices.
Can be found here: Github
During my second year I was required to implement a case study of my choosing that applied mathematical concepts learned throughout the year. As such I choose to implement an Orrery.
This Orrery uses Unity Engine to manage objects and to render the scene, but ultimately all transformations on models are handled personally with my own Matrix 4x4 class, created to demonstrate I understand the concepts that are happening natively in the game engine.
All objects are positioned, rotated and scaled using my own transformation class. I take these values specified from the class and generate a finished matrix of the combined Translation, Rotation and Scale matrices and multiply every model vertex by this matrix. Although retrieving the model vertices and multiplying them by this isn't the most efficient method in terms of Unity, performance wasn't a concern and demonstration of these concepts that I could apply in any 3D environment was crucial to me.
All collisions were created by me with custom classes, and in the unit I implemented a number of techniques such as a Quaternion SLERP that is implemented with my own custom Quaternion class.
In conclusion the unit was beyond useful. I learned a lot about implementing mathematical concepts into games and how processes can be optimized and eased by clever implementations. Additionally, I found a new respect for game engines and libraries that simplify the game production process, as creating my own implementations brought to mind how robust and ingenious these implementations truly are.
This Orrery uses Unity Engine to manage objects and to render the scene, but ultimately all transformations on models are handled personally with my own Matrix 4x4 class, created to demonstrate I understand the concepts that are happening natively in the game engine.
All objects are positioned, rotated and scaled using my own transformation class. I take these values specified from the class and generate a finished matrix of the combined Translation, Rotation and Scale matrices and multiply every model vertex by this matrix. Although retrieving the model vertices and multiplying them by this isn't the most efficient method in terms of Unity, performance wasn't a concern and demonstration of these concepts that I could apply in any 3D environment was crucial to me.
All collisions were created by me with custom classes, and in the unit I implemented a number of techniques such as a Quaternion SLERP that is implemented with my own custom Quaternion class.
In conclusion the unit was beyond useful. I learned a lot about implementing mathematical concepts into games and how processes can be optimized and eased by clever implementations. Additionally, I found a new respect for game engines and libraries that simplify the game production process, as creating my own implementations brought to mind how robust and ingenious these implementations truly are.