Inspiration
The project was mainly inspired by a program known as VR Chat where people can hangout in VR. However, VR is expensive and hard to setup, so I set about making a lightweight, browser, dollar store version.
What it does
When you go to the site you are automatically placed into the main room with everyone else, everyone's video feed is rendered to their cube in 3D space. You can look around and move, and your movement's will show up for everyone else.
How I built it
The back end is all in node, I used express to make things a bit easier. The front end is using WEB GL and library for WEB GL called THREE.js, which just gets rid of a bit of the tedium. The front end handles rendering out the scene and back end handles sending position and join data between players. The video and audio calls between people is handled on another port by a javascript library called peer js.
Challenges I ran into
I ran into a lot of challenges while trying to make this. Mainly my teammates all left so I was left to attempt this project on my own, and I also was busy for all of saturday morning, leaving me with about 20 hours to get something done. Coding wise, it was very tricky to have the texture of a cube be set to a streaming video, and getting efficient networking between players without overloading my servers was a challenge as well. The thing that took me the longest to figure was how to host my app, especially since it needed to use https (because it uses the camera).
Accomplishments that I'm proud of
I'm proud that I managed to get the multiplayer aspect working pretty smoothly, and I'm also proud that I was able to figure out the whole quaternion / rotation nonsense that I had to do in order set the rotation of the cubes based on other players camera quaternions. Mainly however, I'm happy that I was able to stick with it and power through on my own.
What I learned
I learned that making a video conference system is ALOT harder than it sounds, and integrating that into a VR world turned out to be trickier than I originally thought. Hackathons are 50% planning, 50% excecution. With this idea I just thought about it and got started, in the future I will definitely spend more time planning out a really good and manageable idea, and only then execute it.
What's next for Budget VR
There were ALOT of stuff I was planning on adding but just didn't have the time. First and foremost was the actual VR part, I was gonna match the headset rotation with the cube rotation and all that fancy stuff. Another idea was to add mobile support and use the phone's gyroscope to control rotation. After that I can start adding some basic cosmetic options that players can choose from, or some QOL additions like volume sliders and such. And overall I just need to add a layer of polish to the whole thing.
Link Below:
Log in or sign up for Devpost to join the conversation.