I'm a software engineer and game developer, focussing mainly on gameplay features and tooling.
My study started with a focus on software engineering, learning how to create both back and front-end systems in various languages and frameworks. Back-end was primarily focussed on enterprise Java and NodeJS, whilst front-end prioritised web frameworks such as Angular and Vue.js
Later in the study, game technologies and design became an option, where I put my focus on from then onward. Even though the study touched on all aspects of game development (design, audio, 3D art, programming), my interests remained with programming. I started development in Unity, but once I got to do a project in Unreal Engine, I was quick to put my efforts there and leave Unity behind.
Today I enjoy the variety game development brings. From the architecture behind a system to make it usable by programmers and designers alike, to designing and implementing elements within the UI.
A collection of core systems and modules providign each app a jump start in development. It offers consistent interactions to prevent surprises for both users and developers. Almost every system works in a replicated environment and relates to VR applications.
The framework is an ever-evolving project; it constantly gets new features, adjustments to improve overridability, and reworks on elements due to new engine features or knowledge about how Unreal works. It is developed alongside other projects, receiving occasional releases to which projects can update. The separation of responsibilities allows us to implement and rework features as needed without influencing projects until it's ready to be published.
Aside from general fixes and reworks, my main contributions are in movement and creating body size calibration (making sure an arbitrary human skeletal mesh roughly matches your real-life body proportions.). The contributions to the movement consist of:
A distribution platform created for the clients of Enversed to streamline the process of keeping apps up to date and launch multiplayer sessions with specific computers.
Enversed Home was initially developed by me and the CTO over four months. During this, we performed the initial research and implementation, focussing on the cloud-based solutions and how to handle communications across the computers on the network. Once the MVP reached completion and could be used, the project passed on to the systems team of Enversed, of which I was the lead developer.
We chose to develop it within Unreal Engine to ensure all developers at Enversed could work on it. Making sure specialised developers were always available was not viable at the time. Using Unreal also allowed us to use Unreal's replication system but tended to limit development on the UI as there were no experts in Slate/UMG.
A conversation training, operated by your voice and hands. It reacts through a free-flowing conversation, as your graded on various aspects so you can recieve constructive feedback at the end.
The app is a pilot which leverages AI technologies to provide a portable training to enhance existing trainings where an actor is used. It is made with natural interactions given the target audience, focussing on hand-tracking and voice input to operate the app.
The conversations are intended to follow a specific structure, which the app attempts to recognise so it can provide feedback when deviating from the theory. Some elements are in place to allow for better railroading of the conversation.
Enhancing your dining experience through a set of virtual reality experiences. Each dish is preceded by a VR experience, which is sometimes interactive, and other times a supplies a visual spectacle.
The two virtual reality dinner experiences were developed by me and another developer, with an external company utilised to deliver the art assets. The general idea of what each pre-cours experience must entail was provided by the client and turned into functional products by us.
The experiences run standalone on an Meta Quest 2, connected to a central PC which handled the game servers for each table. Most experiences have some interaction with the other guests. In order to increase the immersion all interactions are done through the Quest's hand tracking functionality.
A simple management software is provided which has an overview of the game server for each table. Through this app the staff can advance the experiences and see the current status to match the timing with the kitchen.
The Proto Invention Factory is a client of Enversed, for whom we produced a collection of games, most of which I have worked on during my internship. All games exist in the same steampunk universe, where some games introduce physical controls to increase immersion. Each game has a limited duration, as Proto is an arcade-like environment.
The Proto games were developed by a team of about 10-15 artists and programmers, including myself and a few other interns. The games already had a concept describing the core gameplay provided by the client. However, the specifics were up to the developers. For example, the introduction experience: the concept was merely drawing the inventions of the other games. How to draw was up to the development team.
Some games use physical controls, such as buttons, leaning sensors, a bicycle, and joysticks. The client provided the testing hardware. Aside from calibration, I was responsible for implementing the communication protocol between the game and other hardware. The protocol consisted of simple timing-based handshakes and JSON messages. The hardware didn't require overly high data throughput, so the overhead of JSON vs raw binary wasn't a big issue. JSON also allowed us to implement debug data without effort.
Whilst iterating on a lot of aspects in every game, the elements mostly made by me are: