B.Sc. in Game Development _
Interested in Gameplay & Graphics Programming, A.I, UI/UX and the way they all tie together to form experiences that leave a lasting impression
Using OpenStreetMap data and Houdini's powerful procedural tools, we recreated an accurate digital twin of Ghent, Belgium. This process taught me valuable lessons about working with real-world geographical data and how to transform it into usable game assets.
One of my main responsibilities was establishing reliable communication between Microsoft's AirSim and Unreal Engine 5. I implemented a UDP-based connection system between Python and C++, ensuring robust data transfer even when connections were temporarily interrupted. This experience deepened my understanding of networking protocols and inter-process communication.
Working with multiple sophisticated systems - Unreal Engine 5, AirSim, and our custom Python scripts - taught me how to effectively integrate different technologies. I learned to handle the complexities of maintaining data consistency across different platforms while ensuring optimal performance.
I contributed to the vehicle collision system and implemented pedestrian navigation using splines generated from Houdini-exported data. This involved a lot of blueprint logic debugging as well as writing custom C++ classes to interpret the data, this was a group effort at many times and it further drove home the importance of communication and teamwork at the work environment.
In order for the A.I to understand the world around it, we needed to segment the world into different layers. Working with two massive codebases (AirSim & UE5's Matrix City SDK), in two different languages, Python & C++, was a daily learning experience. Often times, I had to accept that fact that I couldn't afford to delve too deep and understand the inner workings of both codebases, which taught me not only to communicate with & rely on the knowleddge of my teammates, but also to be able to quickly discern and prioritize the relevant parts of the codebases I had get a deep understanding of in order to get my tasks done.
The project was developed for OTIV, a company specializing in autonomous train and tram systems. Our goal was to create synthetic training data for their AI systems, and we managed to surpass both our university supervisors' and client's expectations.
This wasn't just a academic exercise - our work contributed to the development of actual autonomous tram systems in Belgium. The synthetic data we generated is being used to train AI systems that could eventually help make public transportation safer and more efficient.
The challenging nature of the project pushed our entire team to grow significantly as developers. We had to quickly adapt to new technologies, solve complex problems, and maintain professional communication with our client throughout the development process.