We occasionally post insights from the Oculus Developer community so that VR’s pioneers can share their best practices and help push the industry forward. Today, we feature the developers behind one of Oculus Go's latest releases - Wands.
Inspired by PvP gaming and magic, Wands VR from Cortopia Studios is one of the latest releases for Oculus Go! Wands at its core is a competitive, player vs. player game set in the scene of magic duels in the 19th century of London. You take the role of a magic wielder, loading up your wands with spells and challenging other players around the world to show who is best by climbing the leaderboards. It is a very beautiful and intense experience that has a big following of dedicated players. The game is cross-device and platform, meaning you can connect and play with the majority of VR users out there.
We connected with the team at Cortopia to hear more about how they developed Wands as well as learn about the best practices they developed along the way.
Player vs Player (PVP) and spectator mode set “Wands” apart from many other VR apps. What was the driving force behind adding these features and what was the development process like for implementing them?
We created spectator support in the very first build of the game. We wanted to give players the chance to view matches and knew that applying features like this later on in the development process is usually hard. This is an interesting part of the game and made sense for the social setting we were working towards, where two people are playing and other people are watching. We've seen a great response from the community about the spectator mode. The mode allows people to both watch top players battle so you can learn from the best and also lets you watch matches with your friends.
From the beginning, we knew that we wanted to create a PvP game and we needed to ensure a large enough audience was available to build the Wands community. We spent a lot of time making Wands work on a large variety of platforms and hardware. VR is still fairly new, so making sure the app was available to the widest range of users was a top priority for us.
Note: Due to the complexity of having a spectator mode available and making sure it works with every update we release, we’ve currently taken the spectator mode offline in order to completely rehaul and future-proof it. We anticipate the new spectator mode to be available again this fall.
Health bars, spell selection, and other UI can be difficult to intuitively implement within a VR application. How did you approach this challenge and what solutions did you implement into the game?
We approached every scenario of user interaction differently and as more and more hardware started to show up new input systems emerged. We knew from the start that we wanted to keep things as physical as possible. This approach not only made the world feel more like a real place but also gave us a good frame to work within and a lot of different options for the different sets of inputs. This meant that things like spells had to have a physical representation in the environment that you had to interact with and bring with you. Starting with spells (relics), these had to be attached to your wand somewhere. That's when we created the workshop, basically our "home screen", and more specifically the workbench. The workbench handles the assembly of wands and this is where you select your spells by physically grabbing and attaching relics.
The bench allowed us to display every relic in rows in front of the player and show information about them on a projector. This streamlined the process of providing information to players and made it feel more natural and intuitive. We also added a large blackboard to display vital information to the player that was impractical to replace with physical objects. In the first version this just showed players images to get started with wand assembly and gameplay, but the more the game grew we added tabs for news, leaderboards and profile information. Even though we prefer to have physical representations of such things we were also aware that making things too intricate may confuse new players might and old players may get annoyed by having to navigate through complex systems to find simple information.
The in-game UI is where things got interesting as VR started to mature and our platform support grew. When Wands was first released there was only the Gear VR available to consumers. This meant that 6 DOF, or even 3 DOF, controllers were not available. We didn't have positional tracking and, for the majority of users, there weren't gamepads. We basically only had the touchpad on the headset to work with making the input limited to three things: "tap", "tap and hold", and "swipe". We discussed and tried supporting swipes in multiple directions but this exponentially grew the input learning curve and opened up a lot of room for error. We were limited to three inputs and a lot of things we had to support: Aiming, Primary Fire, Secondary Fire, Teleporting, Selecting Spells 1-4, Various (options/surrender/etc), Showing Player Health, Showing Player Mana, Showing Opponent Taking Damage, Showing Player Taking Damage.
Aiming was the easiest mechanic. There were no motion controllers at the time so gaze aiming was the only reasonable option. Primary Fire was assigned to tap, secondary to tap and hold (with release as an optional trigger depending on what spell). Teleporting we decided should work as a spell, so with the teleporting relic active we show the areas you could teleport to (tiles) and tap would teleport you there.
Spell selection was harder. Initially, we used “swipe” to make the next relic active but that required a player to swipe multiple times to find a spell and doing it all over again if they went too far. To solve this issue, we started to work on a UI solution initially called the "flower UI" or "wheel UI". By swiping once, we instantiated a wheel stuck in world space, in the direction of a player's gaze. Around that wheel, we had 6 zones. one zone for teleport at the top and four zones, one for each spell, on the sides with one zone for options on the bottom. Looking at one of the zones and swiping again, or tapping, would make that spell active and close the wheel. Tapping or swiping while looking at the center or outside of the wheel would just close it without changing spell. This solved a lot of issues and worked for a long time (and still does!).
Showing persistent information such as health and mana was also a fun challenge. With VR its difficult to use a traditional HUD. Things stuck in the air moving with your head we found often breaks immersion and it can be weird to not be able to look at something directly. We also wanted to hide the information unless it was needed or demanded by the player.
In our first test builds, we tried including this information within two circles on the floor. But having to look down at your feet was very annoying and still broke immersion. The solution we found was to add health and mana bars into the spell wheel UI, solving the "view on demand" scenario, as well as making them appear on their own, briefly, in the air where you are looking if you take damage or cast a spell without sufficient mana. With the introduction of 3 DOF controllers a few months later the only thing we really had to do was show a physical wand and separate aiming from looking around.
How did your team approach developing for multiple types of hardware?
Wands is designed to be 100% cross-platform. A Gear VR player should be able to play vs a Rift player and it should be as even of a playing field as it can be. With the introduction of the touch controllers we quickly noticed that even though our current input system, with the wheel UI, worked well it was so much more fun with a slightly quicker input system adapted to the rift controllers utilising all the buttons and sticks.
One of the first things we added was a 90 and 180-degree turning. This small change made the gameplay feel a lot quicker and fun. To make sure we had a level playing field, we decided to add this same support to our mobile players instead of adding turning speed restrictions to Rift users. This change to the previous hard restriction of two button input made us realise that fully utilising both the rift controllers as well as gamepads make spell-selection faster and easier as well as made the game more fun without adding overwhelming balancing issues. This is mostly due to the game being tactical and not a fast-paced shooter. It's not the speed of changing spells or the physical turning that decides a match but preparation, knowledge, and tactical skill.
What was your experience developing for Oculus Go?
Oculus has really done a great job in terms of tools and utilities, but also support, so developing for the Oculus Go was overall a great experience. The really big challenge we faced was performance. Wands is a very intense experience and running at 60 fps is a big deal for us. So we’ve been doing a lot of work lately to really make it run smoothly on the Oculus Go. The extra performance boost from the new device definitely helped as well.
When we first started out on Gear VR we only had to cater for the HMD touchpad input and Android gamepads. Our thought process back then was to make the input as equal as possible for both input systems, even if that meant not using the full potential of the gamepad. With the Rift port and the introduction of the Gear VR remote, we naturally shifted focus to put the user experience first, which has definitely paid off in terms of positive player feedback. This also made the transition to Oculus Go very easy in terms of input. Graphics wise, it definitely helped that we started out on Android since we could ramp up the graphics as new, more powerful devices, presented themselves.
What was your team’s approach to fully immersing a player into the “Wands” universe?
Being immersed in the Beyond and physically dodging a fireball coming at you is something that is just not possible in flat screen games. We had to make sure that every aspect of the game was designed with immersion in mind so that you actually feel like a wizard, dueling somebody else in the Beyond.
Getting movement right was really important for us when it came to immersion. We decided to use a teleportation solution. It's not an instant teleportation but, instead, we put a lot of time into finding a great balance to the teleportation where you see yourself moving. It is slow enough to notice the movement so that you don't lose your sense of direction and fast enough to ensure players' comfort. We added a moving elevator on one level and then we made sure that it moves as a perfect sine wave, meaning the acceleration is always identical and low enough for people to feel comfortable.
We spent a lot of time on writing stories about the world. We wanted the "real world", i.e. where the player starts out, to be late 19th century with a steam-punky feel and the Beyond, where the battles take place, to be outer-worldly. There's a ton of lore written and design around Wands than what has already been surfaced to players but, rest assured, more of what we've developed is coming!
Overcoming Graphics and Design Challenges in Across the Valley
We are FusionPlay, a small Indie studio, based in Germany, that has been developing VR games since 2016. We released our first title, “Konrad the Kitten”, for Oculus Rift in 2018, followed closely by the “Konrad’s Kittens” update in 2019. Lately, we’ve been working on our newest title for Meta Quest, “Across the Valley.”
How Developer Teams Are Using App Lab to Meet Their Goals
Learn how you can use App Lab to build a sustainable developer business with Meta Quest, and get inspired with real examples of apps and developers who have used App Lab to meet their goals and grow an audience.