Inspiration
None of our team members have ever had access to a VR, since it's quite an expensive console for entertainment. However, all of us love playing video games, especially those involving rhythm (eg. Piano Tiles, Osu, or Project Sekai). This became the inspiration for our website/mobile game designed to make access to VR games (specifically Beat Saber) more accessible!
What it does
It creates a QR code on the computer for the phone to connect to, where it then asks for motion sensor input from the device. Once connected, the phone acts as the lightsaber and configuration is done to account for user movement sensitivity. There are three lanes of beats to hit, left, right, and center. The phone is then able to move to switch lanes, and a swiping motion is done to hit the beat on time. It calculates the accuracy of the user, as well as the users highest streaks.
How we built it
For the frontend development, we created it on react.js. Our main programming language was Typescript, but we also has some JavaScript. The backend was mainly node.js, where we created a local host link and tunnel link through Cloudflare. Some 3D elements were incorporated through Blender, which were then downloaded as a .glb file and then added to the game.
Organization wise, we had one person working on graphic design on Blender as well as drawn elements throughout the game. The other three people rotated doing frontend and backend, with usually two people on backend working on connecting the computer to the phone while preventing lags or delays, and one person consistently on frontend to help develop how the website would look.
Challenges we ran into
Originally, we wanted to make an app for the game on Electron, however we ran into some issues with organizing it all in a way that made sense, and creating all the components on time in general as well. In the end, we stuck with the website since it was easier to open for testing purposes, by generating the local host link.
Another problem that came up was the lag and delay we had to account for while the sword was swinging. This was more difficult to solve, as it essentially just involved a lot of trial and error to figure out the delay time and ideal speed for the blocks in order to minimize this.
Accomplishments that we're proud of
What we learned
Through our experiences trying out Blender for the first time, a huge lesson that we learned was the importance of implementing a more organized online system beforehand which saves the necessary files of images and models in order to complete a project. The major problem that we had run into was that Blender had been continuously restarting due to the texture files continuously going "missing." From this, we could see how when in the future, we are using some sort of foreign external systems, we need to be more careful about autosave and ensure that game components are being saved in our own computer folders.
Another thing we learnt is the importance of delegating roles so that no ones roles and changes made in code would override each other when pushing, committing, and pulling from the GitHub.
What's next for Rhythm Crossing
For the future, we're aiming to expand by adding more songs for the user to choose from. This allows for more creativity, and an AI may be implemented to create custom beat maps based on the songs the user imports. Finally, a two-player mode could also be added so that this game can be more competitive and multiplayer friendly.
Log in or sign up for Devpost to join the conversation.