We noticed the relatively recent rise of virtual reality technology like the Oculus Rift. However, such technologies are expensive and not feasible for most people. In light of this issue, we developed LastStandVR.

What it does

LastStandVR employs a Redis server to pass a phone's rotational vector data to a Unity platform. For the phone, we developed an Android and iOS controller so that anyone, regardless of what phone they have, can play this game. This controller allows the player to hold their phone as if they are holding the gun and move it to point and shoot at zombies. The game developed in Unity includes all the animations, including the spawning of zombies and reload animations.

How we built it

We began by building controller apps for both iOS and Android. The iOS app was coded in Swift in Xcode, and the Android app was coded in Java in Android Studio. The controller app sends the phone's rotational vector values to the Unity platform over a Redis server. The app also includes a fire button which also sends data to the server. The first person shooter game was coded in C# using the Unity platform. The Unity game accesses the rotational vector values and shooting values from the Redis server. The game then uses the vector data to control the game's camera and fires in game whenever the shoot button on the controller app is pressed.

Challenges we ran into

In the development of both the controllers as well as the Unity game engine, we ran into difficulty with the implementation of the Redis server. On the controllers, we had to spend many hours testing pushing values into the Redis server before we prevailed. For the game engine, Redis is not natively available on Unity, so we had to find an implementation before we were able to access the Redis server. Additionally, from both ends, the values passed to and accessed from the server were laggy due to slow internet connection.

Accomplishments that we're proud of

We successfully implemented a Redis server through much difficulty, an achievement we are proud of. Additionally, we were able to access the rotational vector data of the phones to precisely measure the changes in angles of the phone.

What we learned

We learned about the rotational vector data of phones and how they can be used to emulate a simple gyroscope. We also learned about the implementation of Redis on the server and client end for the Unity and Android Studio IDE.

What's next for LastStandVR

We plan to fix any bugs and make gameplay smoother.

Share this project: