During my internship I spent 10 months on a multi-user networked training simulation for the fire service. This was created in Unreal Engine 4.12 and involved one user being in a VR headset -Occulus Rift, and the other running a windows application with a keyboard and mouse.
The purpose of this piece of software was to create a platform for training fire fighters to become or continue training to be incident commanders. Incident commanders are members of the fire service that take responsibility and command over the on the ground response to a fire. This could include allocating jobs, issuing instructions for how to deal with the fire as well as a number of other high risk tasks. Incident commanders do not get involved in fighting the fire directly, they are required to keep track of a number of life dependent things that should they be injured, could result in loss of life.
In regards to the simulation, there are two roles. The Incident commander wears a Occulus Rift HMD and can either use a controller to move around, or can be ‘moved’ by the trainer following a request. The Trainer controls the environment the Incident Commander is placed in, it is their job to interact with the environment to reflect commands issued by the Incident Commander, whilst also changing the environment to reflect the good things that the Incident Commander has done as well as what they are not doing.
The environment is designed to be flexible and dynamic, and allows the trainer to change the scenario each time. A comprehensive save system allows a pre-compiled scene to be saved and loaded in order to build up a archive of scenarios. When I first began working on the project, I was tasks with creating large city that the trainer could work with. This involved creating a dynamic traffic system, dynamic cordoning system as well as optimizing the scenes for optimal performance. Additionally I had to rewrite alot of the project to work with this larger scene, as well as fix a number of performance issues with the project with the help of the in-build Unreal Profiler. When I joined the project it was already 2 years from its initial conception and therefore I had to familiarize myself with the architecture with very little guidance. However, after a managerial decision to change the direction of the project, I was tasked with converting the existing architecture into a modular system. This involved me redesigning the UI to fit the company style, reduce the scenario size in conjunction with the in-house 3D modeler, as well refactoring the core systems to reflect this change in direction. The system as it stands is a core environment in which levels or modules can be easily added to allow the user to customize their training package. Each module can be further customized by the end user, with a variety of options within the software that can be saved and then loaded at a later date.
The system is capable of a large number of different things. It allows the trainer to control all members of the fire crew and issue them commands: enter risk, rescue casualty, become casualty etc. It also allows them direct control over the particles systems, controlling the colour, brightness, speed in addition to being able to remove it all together. All these features along with a palethera of unmentioned feature, provides the trainer the tools they need to evaluate the training incident commander, but also provides the trainee with enough visual context to realistic react to the scenario.
This project was created with HFRS, and throughout its development we had regular meetings discussing project direction, user friendliness and general project requirements. I was also involved in demonstrating the software at a number of events; to prospective clients, at user testing events and as well outreach exercises.
During my involvement in the project I gained experience and worked with all systems. This provided mew with a well rounded experience in Unreal Engine. Throughout the project I worked closely with an in-house 3D modeler on assets integration, naming conventions and general asset optimization. I am currently taking this my Unreal experience further, using it for my final year project.
The software came along way from when I was first put on it and it should be rolled out in the very near future.
[ngg_images source=”galleries” container_ids=”1″ display_type=”photocrati-nextgen_basic_imagebrowser” ajax_pagination=”1″ order_by=”sortorder” order_direction=”ASC” returns=”included” maximum_entity_count=”500″]