Fluid Dynamics

Overview

Fluid Dynamics is a multiplayer space designed to teach students about fluid dynamics in a 3D world. Students work in groups, viewing and completing assignments around a variety of waterways in a digital space, without the need of a field trip.

The project was created by two developers, my co-worker focused on developing the water system, and I am in working on the rest of the project.

Itch.io: https://fluiddynamics.itch.io/unreal-fluid-dynamics

Full Developer Role

As the main developer of the multiplayer feature, voice chat, UI, and other systems, I got a chance to work on many different systems, improving on the prototype code and blueprints to bring the project together. To support the learning goals of the project I implemented many multiplayer-related features such as an in-world assignment board, a voice chat, group management, and admin roles for the teachers.

Currently, I am working on the implementation of VR.

I was also responsible for the technical backend of the project. This means improving on already existing code, fixing any bugs that arose, and implementing updates of Unreal Marketplace assets and systems that were integrated into the project.

Assignments & Groups

The assignments designed for Fluid Dynamics are done in groups, so a lot of focus was put on the multiplayer aspect of the projects, as well as features allowing players to work together in the digital space. This included tools such as an in-world calculator that could be shared amongst the group, or the assignment questionnaire.

This also included some unforeseen features, such as a function to distance the student avatars from the teacher avatar and prevent students from running into the teacher or jumping on top of them.

Maintenance & Updates

For this project, Unreal marketplace assets and systems were purchased. During development, some of these had significant updates. I was in charge of implementing the new update and bringing back old changes specific to our project or adjusting the new features to suit our project better.

I came into the project once a prototype had already been established, so a lot of time early on was spent on fixing existing bugs and improving the infrastructure of the prototype to allow for future functions to be implemented easier.