VR Light Cycle
Platform: PCVR, Quest 2
Engine: Unity
Code Editor: JetBrains Rider
Light Cycle is a VR Multiplayer game that uses a Unity Server.
My Contribution:
I created every assets in this project myself with the exception of the Cycle models
History:
I had wanted a server based Multiplayer VR Light Cycle game for a long time but I was sure it would make me sick so I didn’t make it at first.
At some point I decided that it was acceleration – linear or rotational – that makes you motion sick and I realized I could use instantaneous acceleration with a snap-turn that would be natural for the game.
When I made the prototype I found that, as expected, I had Zero motion sickness. Later, I decided to try normal acceleration “just in case it might work.” To my amazement, again, there was Zero motion sickness.
It was at this point that I realized that the reason it works is because of the sparseness of the floor-plane texture. Had it been a normal ground/floor texture there would have been motion sickness.
Challenges:
Being my first multiplayer project, server-based as well, I had a number of issues.
Challenge :
My first was setting up my Unity server.
and the Launch parameters.
With a bit of research I was able to get these set properly.
Solution:
Based on the messages I was receiving it seemed that the build configuration was not setup properly, specifically the Query Type and the Launch parameters.
With a bit of research I was able to get these set properly.
Challenge:
VR Light Cycle was not connecting to the server.
Solution:
I wasn’t sure where to start first. But after a bit of research, I found the error logs for my server and discovered that my Server was not starting.
I then realized that the server build was waiting for the ‘Start Server’ button to be pressed. My solution was to have a ‘Server Build’ flag that would call the ‘StartServer’ function immedietly when set to true.
Another issue was that my server would crash after about two minutes of running and had to be restarted each time disrupting the game in the process.
Challenge:
The server would crash after about two minutes of running.
Solution:
The error logs indicated that VR Light Cycle was using excessive processing while idle.
With a bit of research and I found that the framerate was unrestrained on the server.
I fixed this issue by setting the application framerate to 30 and the vSyncCount to 0 on the server build.