Source: https://bitbucket.org/gerardryan/gpio-websocket-server Archmage, a mage themed, multiplayer third person shooter, with MOBA elements, was the capstone project for my Batchelor of Games and Interactive Entertainment. Archmage was completed within the academic year of 2015 and our team was awarded 6/7 for the end product. The team consisted of 7 persons for the majority of the term, their roles were a Programmer/Designer, a Designer, a character artist, an environmental artist, a texture and graphic artist, another programmer and myself, also a programmer. My roles primarily consisted with the network code, constructing production tools and some minor graphics programming, Though within these roles the Network code took up the vast majority of the time as it tended to be the most problematic.
This Unity3D project was undertaken as a piece of assessment for a real time rendering class. This class was first attempt at GPU programming and my introduction into their unforgiving nature. Despite being foretold as one of the harder classes QUT had to offer from the start, I was still able to achieve 28/30 for this project and 80% of the marks overall. Within the countless hours spent on this assessment alone I implemented common shader effects such as shadow mapping, Displacement Mapping (and the collision detection on unity’s side), Billboarding and various types light sources with normal mapping. Though this was my first experience with CG shaders I believe it was an excellent example of the quality of shaders I am capable of as well as a great foundation for GPU experimentation later to come.
This Project was undertaken as a piece of assessment for an AI for Games class, this assessment required us to implement reactive agents using finite state machines. Using Unity3D I chose to implemented the agent receivers using C# delegates, this allowed for easily maintainable and extensible code as well as an ultimately simple implementation. This assessment piece also taught me the widely used A* path finding algorithm. My implementation of this algorithm made use of Unity3D’s ray casting classes to allow a dynamic pathfinding which allowed agents to avoid dynamically moving obstacles as well as working for changing environments. Though this implementation is processor intensive it was sufficiently suitable for the size of the level I was working with. Full marks were achieved for this piece of assessment.
This project was undertaken as a piece of assessment for a data structures and algorithms class. This piece of assessment required us to implement a weighted, undirected graph where vertices were locations on a map, with this we then had to then implement algorithms to find the minimum spanning tree and shortest paths such as Dijkstra’s single source shortest path and breadth first search. This piece of assessment gave me a thorough understanding of graphs and all their benefits and applications as well as a taste of how intriguing algorithms can be. Achieving 29/30 for this assessment also makes it an excellent example of the C++ skills I acquired.