VR Driver

VRDriver was originally a driving-simulator for my Oculus Quest with link (basically an oculus rift) which allowed you to steer the vehicle based on a simulated steering wheel. Over time I added non-VR functionality, multiplayer, and the ability to exit your vehicle and enter a new one or walk around. While there is no objective or goal in the game itself, you quickly learn not to crash into things because your vehicle may explode if you hit a bump too hard!
Mechanics:
- Basic WASD/mouse controls for non-VR.
- VR controls using SteamVR’s input system.
- Cars can be entered/exited by clicking/interacting on their door handle.
- Other players can enter your vehicle as a passenger if that seat is not already taken.
- There is a secret map that you can go to if you know where to find the hidden object.
- There is a secret forklift vehicle that you can drive if you know where to find it.
- Vehicles explode if you hit a bump too hard, or if you crash into something at high speed.
What I learned:
- How to render for VR, including native quest rendering (before I switched to SteamVR/Link)
- How to use Oculus’s controls, and eventually SteamVR ones.
- How not to implement a vehicle possession system. (I would use a much cleaner system if I did it again)
- How to network usernames over photon.
- How to implement multi-jointed vehicles (ie a forklift).
- Wrist-mounted UIs (odometer when I was prototyping the skateboard vehicle, which is not accessible in the game anymore).
What I would do differently (today):
- I would add better indicators to the vehicles, sometimes it can be hard to ‘guess’ where to click to enter/exit the vehicle.
- I would write the vehicle possession system in a way that is far more modular (interfaces, etc).
- I would improve the crash-detector, and have it calculate the crashes with a sliding-window average of the last few frames.
- I would add tanks, because I love tanks. Tanks are cool.
Very sad story:
I lost the code for this project. I had it on my old pc, and I thought I transferred it to my new one before I wiped the old one. Later on, when I looked for the source, I came to realize that I had only transferred the windows+mac builds. If it wasn’t GBs and GBs large, it would have been such a good idea to put it on GitHub.