FGTE6003: Final Major Project - Timeleap Help

Critical Reflection

Introduction

Over the course of the last two terms, with the pre-production and production units, I would say that overall I am pleased with the game that I have produced. I have been able to extend my skills and knowledge with C# and the unity engine, learning more advanced implementations of features that I would have taken a completely different approach towards at the start of my degree. I have learnt these features alongside a more professional approach on how to code a mechanic within the game engine, whilst trying to keep it as efficient as possible. This also ties in with other characteristics, such as naming conventions, script tidiness and moving functions to a subclass when one single script or class is growing too large.

Development Process

Next time, I would ideally like to change my approach towards the game's development process by focusing on building a foundation of documentation and planning in my game, instead of making it up as I go on. The approach that I have given my project and the development process the last two terms of university has caused multiple downfalls, mostly not making a steady amount of progress each week, causing me to do coding sprints, which admittedly is not the healthiest practice to do during phases of development. I would ideally like to take a less optimistic approach towards the number of features and mechanics that I believe I would be able to implement within a game in a certain time-span too; my initial concept of having a high fidelity and “ultra-immersive” parkour / movement system in my game was too optimistic – and I only truly determined how optimistic this approach was when I was halfway through the conceptualisation of these mechanics. Due to my being late with actually concepting these mechanics, too – it was too late to backtrack on my initial game plan and idea. This also reflects what it would be like in the game industry; if there is preparation for a game with specific mechanics to be made, only to be reverted far into the project, it just would not work. The combination of the initial overly optimistic approach alongside doing sprints of work as an attempt to not be extremely behind in my project has resulted in the production of a game that originally had far more potential compared to the finished product. This is a frequent occurrence with my solo projects, ultimately falling on my time management skills alongside lack of initial research. This shows and ultimately makes me realise further that I need to restructure my approach towards doing solo projects, instead of progressing through my projects out of impulse, and to not only have a solid schedule, but to follow the schedule.

Data Loss / Unplanned Issues

Through the development phase of my project, I had two sudden hardware / software failures on two devices that I had unaccounted for to happen during this project period. This inevitably led to me losing around two weeks of work that I did whilst home over Easter. This was mainly due to my reliance of having a local copy of my project on both systems at the same time, but this plan never accounts for the unluckiness of both devices having issues at the same time. An extremely unlucky situation, but due to my oversights it could have been prevented from the start. My methodology throughout the entire project has been to store everything backed up on GitHub, but this is only done when I manually upload my project to GitHub. To circumvent this, I’d like to implement some form of automation into my future projects, to ensure that whatever work I do will automatically be saved to off-site / cloud storage as a method to avoid these issues from happening. My lack of vision towards various cloud services i.e., OneDrive and Google Drive due to having issues with those services in the past has put me off from implementing some form of automation. However, it is clear now that this is something to do next time I start a project that spans multiple months in length.

Linux / Vulkan

From the initial start of the project, I stated that I was going to make this project be supported on both Windows and Linux, due to the Vulkan graphics API. This has been relatively issue-free, mostly due to my use of Linux on my main computer and previous experience / knowledge using this operating system. What I did not account for, however, are issues with the Unity Engine itself, due to being on the bleeding-edge of software updates for drivers, kernel, Vulkan and Unity. This has slowed down development progress from time to time, or even demotivating me from even getting up-to-speed to easily progress on my game; my project would crash eight out of ten times even trying to load up my project. This can be circumvented by already having my computers / systems already prepared for the game development cycle, instead of having to deal with an issue halfway through a development sprint / when I am actually wanting to get work done instead of having to deal with any unneeded issues.

Attendance

My attendance throughout this academic year, especially during the Production unit, has been severely lacking. This hinders the standard of professional practice that is expected as of a student in their third year of university. The lacking is mostly due to my lack of motivation / poor attitude towards this project, especially with the issues that I have become aware of and realised throughout the development process. This can easily be circumvented; I just need to actually attend to lessons by managing a consistent level of time management and somehow keep a stable level of motivation and attitude towards my personal and academic projects. This has most likely led to me missing out on crucial pieces of knowledge to use within my own project, and within future games that I would hopefully be working on.

Conclusion

Overall, I’d like to say I’m rather happy with the outcome of this project, which is challenging to do so once highlighting all the negatives that has happened during the last two terms. This is ultimately my blame, however, a huge portion of the issues faced could have been dealt with beforehand had I kept some steady form of structure towards planning and doing enough research regarding features in my game that I had initially planned for. The pieces of knowledge I have gained throughout this project, however, will not be forgotten and will continuously be used by me with other programming projects

Last modified: 30 April 2024