Project carried out in a pair using Unity in virtual reality for a Meta Quest 2.
Participants: Florian BOISSET and Elisa MARCHAND.
This section presents a synthesis of a project report produced in an
educational setting for the development of a Serious Game in
VR. The project aims to design two immersive VR training
experiences: a tyre-sorting simulation and a crane simulator. Both
modules were built around an event-driven architecture, XR-tool-based
user interaction, and a persistent score system. This synthesis
highlights the technical choices, interaction flow, success criteria, as
well as observed limitations and areas for improvement.
The objective of this serious game is to offer situations close to real
professional settings. The main goals were:
to design natural interactions in virtual reality;
to structure object and interface behaviours via events;
to provide immediate feedback to the user (visual, audio and score);
to record performance data to track progression from one session to the next.
The system consists of two complementary exercises. The first assesses the user’s ability to identify and sort tyres by conformity. The second evaluates the precision of crane operation along a variable course. Together, these two modules cover skills of diagnosis, gestural coordination and operational control.
The core of the module is centralised in a dedicated manager (TireManager.cs). The exercise is started by an interactive green VR button. When a hand enters the interaction zone, a spawn event is triggered and progressive tyre generation begins.
Tyres appear at a predetermined position in the scene. A coroutine spreads their instantiation over time to produce a regular, readable flow for the player. Each instantiated tyre automatically receives two random boolean properties:
isCorrect: indicates whether the tyre is
conformant;
isCodeBarreDetected: indicates whether its barcode
is automatically detectable.
Starting the exercise also triggers a stopwatch. A red button completes the setup by providing a quick scene reset (removal of all present tyres).
Two detectors coexist in the exercise: a manual detector and an automatic detector. Each has a trigger zone and an input reading script. Depending on the detection type, distinct events are emitted.
During a manual scan, the system reads the tyre’s conformity directly and updates the console screen with appropriate visual information. For automatic scanning, the logic adds a prior check on barcode readability. If the barcode is not detectable, a specific error state is displayed.
This architecture offers a key advantage: the separation between data acquisition (detectors), business logic (manager), and feedback (console). The behaviour is easier to maintain, test and extend.
The final sorting is validated by deposit zones (bins), each associated with an entry/exit detection. When a tyre is placed in the correct bin, the success counter is incremented; if it is removed, the counter is decremented. Victory is reached when 10 tyres are correctly placed.
Once victory is achieved, a virtual keyboard is displayed to enter a name or alias. The score (time achieved) is then saved in a dictionary and stored locally in a JSON file. This approach allows a history to be maintained between sessions. A sorted list of scores is displayed, from best to worst.
The module integrates several spatialised sounds tied to game events: tyre spawn, scan beep, collisions, button presses and victory sound. Audio reinforces the understanding of the current action and overall immersion. Spatialisation is particularly useful for associating each sound with its origin in the scene.
The crane simulator is based on an assembly of physical joints (fixed joints and configurable joints) enabling controlled rotations on precise axes. This mechanical decomposition reproduces the expected behaviour of an articulated arm: vertical movements, rotation around the base and end-effector orientation.
The user operates via two graspable VR handles, one for each hand. This bimanual constraint is pedagogically relevant as it simulates motor coordination close to a real crane operation task.
The course is activated with a green button and deactivated with a red button. The guiding path is randomly generated with between 5 and 10 segments, limiting memorisation effects and encouraging training on varied configurations.
The course has a start block and an end block. The start block initialises the score and signals correct entry into the path. During transit:
when the end-effector stays on the path, it is displayed in green;
when the end-effector leaves the path, it turns red and the score decreases progressively.
The end block concludes the exercise and triggers the display of the virtual keyboard for score recording, with logic similar to the tyre module.
The crane module includes a more minimal sound design, mainly focused on the end-of-course sound. This choice remains consistent with the objective of motor concentration, but could be enriched with intermediate feedback (path-exit alert, trajectory resumption confirmation, etc.).
The project achieves its main objectives: offering two interactive VR training situations, built on robust mechanisms (events, triggers, data persistence) and multi-modal user feedback. The use of specialised scripts and clear entry points facilitates code maintenance and understanding of the application logic.
Several areas for improvement were nonetheless identified:
Tyre physics stability: some deformations appear when grasping;
Crane grip balancing: right-handle priority can cause inconsistent behaviour;
Score system robustness: absence of uppercase conversion and incomplete input validation in some build versions.
In the medium term, concrete improvements can be considered: strict keyboard input validation, better handling of duplicate aliases, enrichment of contextual sound feedback, and addition of real-time visual correction indicators. These developments would strengthen both the technical reliability and the pedagogical value of the serious game.
This synthesis shows that the VR Serious Game constitutes a solid foundation for immersive training scenarios. The two exercises are complementary and effectively exploit the possibilities of virtual reality: natural manipulation, continuous assessment and performance tracking. With a few technical and ergonomic adjustments, the solution can evolve into an even more precise, stable and adaptive training tool.