This is an old project, from my first year of University. It’s the first video game I ever made and it’s still one of my favourites, despite being extremely rough around the edges. It was the main project for the Multimedia II module, where, in pairs, we were tasked with creating a game using Adobe Director. Despite the technologies we were asked to use, I was thrilled to have made a game by the end of my first year, and the experience definitely gave me the game design bug.
The major project of my final year was for my dissertation. I chose to research the effectiveness of dynamic learning algorithms in providing an adaptive, real-time finite state machine in a game environment. After doing a literature review to get up to speed on Bayesian networks, artificial neural networks and genetic algorithms, I chose to focus my research on the latter. I felt genetic algorithms could offer a working solution, and I was interested in programming one and seeing for myself exactly how it would work.
This final year project focussed on using the OpenMP and MPI frameworks to parallelise an implementation of the straightforward pattern matching algorithm. The project was scored purely on the speed of the solutions (assuming the generated matches were correct), and in the module overall I scored a strong first class mark of 83. I have put the code on my GitHub for your perusal.
In third year we had an entire module dedicated to the different components that make up a complete game engine. The assessment for this module was based entirely around a solo project, where we had to choose one aspect of a game engine and develop it. I chose to develop a 2D physics engine, as I was interested in understanding how each step of the process worked, from the simulation of rigid bodies through to collision detection and resolution.
One of our modules in third year was focussed on exploring agile development techniques, culminating in a group project that we managed in an agile fashion, using scrum. We had to treat our tutors like clients, asking them about what they wanted from the solution, creating user stories from these requirements and turning them into backlog items. The project itself was to create a Collada model importer for XNA, able to import the model’s skeleton, mesh, skinning and animation data, packaged with an app to view these models and outputting complete logs of the importing process.