CryptoSpace VR is hands-on, educational blockchain platform. Cryptocurrency is a complicated topic to explain, therefore, we set out to built a tangible, visual representation of a blockchain.
Launched in October 2019, CryptoSpace VR is available on the Steam store here: https://store.steampowered.com/app/1132550/CryptoSpace/
A SetDev internal project, CryptoSpace VR was responsible for the entire product cycle from conception to deployment. It originally started as a lightweight WebVR project, however we slowly evolved the idea into a full VR app. The image below highlights the differences between the early WebVR beta & the final CryptoSpace app:
1. Product Design
Designing for spatial computing projects (AR/VR) is particularly challenging as an up-&-coming field - there aren't industry standards or guidelines quite yet. This led to an experimental approach that took significantly longer than a 2D project; again, this is because in addition to flat, 2D elements, such as panels & listviews, the design in VR extends to 3D models & kinetic interactions.
While there are future mechanics we'd like to implement, we ultimately decided on using a pointer controller as shown in the image above (to the right).
2. Unity Engineering
The core app was built in Unity with the C# language. Prior to that, the beta WebVR apps were written in A-Frame with a Firebase backend. Since no data persists between user sessions, we opted out of using a backend for this app, therefore all logic & functionality is routed through Unity Scripts that query multiple crypto & blockchain APIs.
- Unity With C#
- SteamVR Framework
- APIs (Etherscan, etc..)
The VR framework of choice here was SteamVR 2.0 so that we could test & ship on all devices (also because we made the mistake of submitting to the Oculus store far too early); we used the built-in action manifests for the pointer, we wrote a tutorial about it here: https://medium.com/@setzeus/tutorial-steamvr-2-0-laser-pointer-bbc816ebeec5
In terms of blockchain & cryptocurrency APIs, we used the following: