The Experience
As the journey of completing a university degree comes to it's long awaited close, the time has come to broach the job market. Some job research later, and as discussed in more detail below, I found that both the games and software development industries look favourably upon many transferable skills.
From reading through these common requirements I noted a number of other skills which I did not have that were similarly transferable. After brainstorming for a while, I came up with an idea to for a new project which combines several skills into one manageable package.
To further myself professionally, I will undertake a project that will teach me development skills for the Unreal Engine and C++, expand upon my user interface design experience, and teach me more about web services and API calls.
The Industry
The games and software development industries seek out similar candidates but with select different skills. Both industries frequently require employees with a few years of programming experience, understanding of algorithms, demonstrated teamwork, and independent development experiences.
Current games development opportunities tend to require Unity Engine experience, as it has come to be a widely spread engine for small and medium sized games on a variety of platforms. These opportunities sometimes require graphics programming, user interface design, and artificial intelligence experience in addition to more general development skills.[2]Many game developer job listings also seek out candidates who have Unreal Engine and C++ experience, which so far is outside of my skill set.[3]
Software development roles look for candidates who have experience with Databases, web development skills such as JavaScript and HTML, Quality Assurance testing, documentation, and program maintenance skills.[4]
Many of the listed requirements for such positions I have already met through my studies, such as Unity and C# development skills. I have demonstrated these through my various game projects, but there are still many ways I could expand upon them to further myself and my portfolio in the eyes of potential employers.
Some of these absent skills and experiences in my repertoire are web services and API's, C++, Unreal Engine, player feedback systems, and publishing works. These are the skills I have chosen to work on for my portfolio and professional development.
The Project
To gain experience with my chosen skills I will develop an in-game player feedback system for the Unreal Engine which will collate and post player feedback to a specified GitHub project board, then notify developers via Discord or Slack. This project when completed will be published to the Unreal Marketplace.
The Unreal Engine is a prime choice for this project as in addition to being a desirable skill for games development, it also uses C++ as its primary language which is in demand in the software development industry. Some research on the Unreal Marketplace shows a gap in the market for such a project as there is only one comparable piece of software currently available.[5]
This tool will be comprised of back-end code and a set of customisable user interface elements in the Unreal Engine which allow the developer to select types of feedback they want to collect. Some example feedback types include: screenshots, player written comments, feedback types (bug, comment, etc.), self reported player moods, severity, system information, and game world location.
These pieces of information are vital to accurately identifying and debugging various software projects. For example, players may find specific and rare locations where the object geometry of a level can allow the player to escape the intended play area, which developers may otherwise not find. By allowing players to quickly report these issues and collecting both screenshots and game world locations, developers can far more reliably identify where problems have occurred. Similarly, players reporting their mood at various points aids designers in identifying what is and isn't creating the player experience they want. This information is typically only gained from in-depth playtesting which takes time and resources to achieve.
This feedback will be posted to a GitHub project board of the developer's choosing, where it will be sorted by feedback type and grouped with similar feedback. These reports will be posted by making calls through the GitHub API, and sorted by project boards containing developer set keywords. Sorting reports this way allows the developers to customisably and easily identify trends within the information they receive.
The developers will be regularly notified about the number and types of reports that are posted to these project boards via Discord or Slack. These notifications will be sent through their respective API's whenever a chosen number of feedback reports have been appended to project boards. In addition to alerting the developers, these notifications will provide some minor analytics of the users recent feedback such as word and report type frequency, average player moods, recent report severity, and game world hot-spots among player reports.
This tool aims to help developers further understand and track both the issues with their game, and what is working for their game. By developing such a tool, I am able to demonstrate key understanding of what information is required to efficiently maintain and improve both software and game projects. This project also allows me to ambitiously expand my skill set to skills I did not find time for during my degree and further catch the eye of potential employers.
References
[1]Australian Jobs 2019(2019)Retrieved 2024-07-15, from:
https://www.professions.org.au/wp-content/uploads/Australian-Jobs-2019_AustGovt_DJSB.pdf
[2]How to Get a Job in Gaming(2019)Retrieved 2019-08-23, from:
https://www.adzuna.com.au/blog/how-to-get-a-job-in/how-to-get-a-job-in-gaming/
[3]Game Developer: Job Description, Duties and Requirements(2019)Retrieved 2019-08-23, from:
https://study.com/articles/Game_Developer_Job_Description_Duties_and_Requirements.html
[4]How to become a Software Engineer(2019)Retrieved 2019-08-23, from:
https://www.seek.com.au/career-guide/role/software-engineer?campaigncode=lrn:skj:sklm:cg:jbd:alpha
[5]Content Search - UE4 Marketplace(2019)Retrieved 2019-08-23, from:
https://www.unrealengine.com/marketplace/en-US/assets?keywords=feedback