My work:
Thesis - Documentation - System programming - Mechanics
flexible systems with UI
For my thesis I worked on a framework for developers in the Unreal Engine to help develop an upcoming game for my client "Indietopia"
My task was to create a development pipeline that would help speed up the development of multiple levels/racetracks for a VR puzzle game involving many different levels. The framework needed to be quick and easy to learn for newcomers and designed in a way so that the designers could create levels with missions without having to code anything.
For developers the framework had to be flexible and understandable so that it could be built upon and expanded on in regards to addin more mission logic.
My client was very happy with my prototype and I graded a 9.2 (out of 10) for my thesis.
One of my client's requests was to create the framework for Unreal Engine as this is likely the engine the company wants to continue working with due to experience and to teach interns.
For creating the racetrack, I was advised by one of my colleagues to look at Unreal Engine's vehicle template, this template included a vehicle and racetrack which is handled via a spline, the mesh of the road is procedurally generated along a spline which also affects the landscape accordingly around said road.
This method works very well, and gave the correct amount of customizability that each level would require. so I implemented this method and made an example scene that users could use as a template.
One issue is that actors have no way to reference a landscape nor it's spline. So a seperate spline had to be created for the car AI navigation. Since this would mean double effort, I did some research and found a method to create a spline path generator based on a landscape spline.
by adding this C++ script to the manager blueprint it was now possible to generate a referenceable pathing spline after creating a racetrack with just a click of a button.
Another request of the client was to make it simple for each level to have missions that allow the player to obtain 1 to 3 stars per mission completed. Some examples would be "finish race within specific time" and "Use certain interaction a certain amount of time". Some levels would use the same mission but with a different value like different amount of time.
In order to make this possible for each level I set up the mission logic inside of the manager blueprint itself and allowed for 2 optional missions to be selected for the 2 other stars, the first star would always be obtained by winning the race.
This would be a bit messy and would require the designer to know exactly where to look and what to do in order to set these missions.
So a plugin/editor tool was created to visualise mission selection and customization easily.
This added a couple more steps for developers in case more missions needed to be created. However this would prove to be useful as this logic only had to be programmed once and would potentially be used for over 100+ levels. making it a lot easier for designers and interns.
In an effort to make the framework accessible and easy to understand for both intern, designer and programmer, I created a Documentation for the framework which explains every necessary step for every party involved including steps on how to create new mission logic.
I also made the creation of mission logic as streamlined and simple as possible with the use of macro's which would automatically do most of the work.
These design choices and functionalities were thoroughly tested multiple times by both developers and newcomers to the Unreal Engine and have all been successful with testers showing positive reactions towards the product.