Flying a Space Fighter in VR
We have been integrating multiple products in order to create a VR experience for our customer. I learnt long ago not to reinvent the wheel when others have already perfected it. The only reason why I would develop my own system, like a Game Engine (I did once), is when details are very specific and others just cannot meet the requirements. Hence, to create an immersive VR experience to be delivered over the web, we are using what has already been created, and augmenting it where needed.
This is basically a demo to perfect what we need for our commercial products. However, it will make an exciting online game, be great for tutorials, and we may even create a multiplayer version.
This is an actual screen shot from the Quest 2, flying a space fighter in WebXR.
We created this using a cockpit from the Asset store and the Bot Character from Game Creator. It is controlled using Final IK from RootMotion, and WebXR from De-Panther. WebXR is a VR system that can be accessed via a web site using WebGL and is highly configurable, but some coding knowledge is required unless you have help.
So far we have been able to anchor the character in the seat while still allowing the arms and head to follow the player headset. We have also created code to fade the camera if the player attempts to stick their head out the window (something that really annoys me when playing some VR games), and the hands can move the flight controls, but they still need some work to anchor and detach when needed.
The final problem we will face is to rotate and move the space fighter. While this may seem simple, the controls are rigid bodies and are inside a rigid body (the cockpit). If you have ever worked with rigid body objects, you will understand that the physics get upset when they are nested inside other objects also relying on physics.
However, we have some ideas and we will share all this code with Patrons in coming posts.