A PC VR maintenance game built in Unreal Engine for a VR development course. Keep an industrial submarine's engine running while managing fuel, coolant, pressure, and leaking pipes until you reach your destination.
The player works inside the engine room, maintaining physical machinery with their VR controllers. Starting the engine begins the journey; low fuel or pressure slows progress, and neglecting maintenance can stop the engine.
- Move the engine lever between STOP and RUN.
- Pour the matching cans into the fuel and coolant tanks. Low coolant increases fuel consumption. Cans are unlimited and return to their stations when released.
- Turn the wheel to restore pressure. Unrepaired leaks allow more pipes to leak, increasing pressure loss.
- Snap the wrench onto a leaking pipe's bolt and complete five wrench strokes to repair it.
- Reach the destination to finish the journey.
Choose 250 m, 500 m, or 750 m journeys and Easy, Medium, or Hard difficulty. Movement and turning can be changed independently in the pause menu during a journey.
Requires 64-bit Windows, a PC VR headset with controllers, and its configured OpenXR runtime. A Quest 3 needs a PC VR connection; this download is not a standalone Quest application.
- Download
Submarine_Windows.zipfrom Releases. - Extract the complete folder and run
EngineRoomVR.exe. - Select journey length and difficulty, then Start Journey.
| Control | Default behaviour |
|---|---|
| Right stick | Aim a teleport; release to travel |
| Left stick | Snap-turn 45 degrees |
| Controller grab | Hold and use the tools and controls |
| Controller menu | Resume, movement mode, turning mode, restart, and quit |
Choose Movement / Smooth for continuous walking or Turning / Smooth for continuous turning. Both default to the template's teleport/snap controls on a fresh launch. Restart returns to journey setup and remembers the control choices during the current application session.
This prototype focuses on VR interaction and a readable Blueprint game loop.
- Game rules:
BP_GameLoopmanages resources, engine state, journey distance, and accumulating leaks. Interaction actors report pouring, wheel turns, and repairs. - Physical interactions: tools have defined grip positions and return locations; the wrench follows a constrained repair motion when attached to a bolt.
- VR foundation: Unreal's XR template provides the player, hands, grabbing, teleportation, and the basis of the menus. Optional smooth movement uses the existing navigation area; both turn modes reuse the template's rotation calculation.
- Tuning: difficulty data assets expose consumption and leak values. Journey length, difficulty, and movement preferences are handled by the existing menus.
- Feedback: visible tank levels, pouring effects, audio, and an arrival screen communicate the state of the machinery and journey.
Clone or download this repository, open EngineRoomVR.uproject with
Unreal Engine 5.8.2, and use VR Preview with a connected headset.
The main level is /Game/Submarine/Levels/L_Submarine.
| Folder | Purpose |
|---|---|
Content/Submarine |
Current level, gameplay Blueprints, UI, meshes, materials, audio, and settings |
Content/XRFramework and template dependencies |
Player, hands, input, and interaction foundation |
Content/LegacyVersions |
Earlier project versions retained for reference |
Config |
Unreal project configuration |
docs |
Gameplay details, tuning notes, and a development screenshot |
