Developer Perspectives: Konrad the Kitten

Oculus Developer Blog
Posted by Konrad Kunze
February 22, 2018

We occasionally post insights from the Oculus Developer community so that VR’s early pioneers can share their practices and help push the industry forward. In today’s guest post, we’re joined by Konrad Kunze - Game Designer of Konrad the Kitten and FusionPlay Heroes.

I am Konrad, Game Designer of Konrad the Kitten and FusionPlay Heroes - part of FusionPlay studio. I have been creating games since my childhood and over the years have developed a sense for dismantling game concepts into its basics and then analyzing what is fun and what is not for a player. I am one of those guys that creates huge excel spreadsheets that calculate all details for each weapon or armor when playing a game for a longer time.

The brand FusionPlay was created in 2012 as the games division of IT Sonix. IT Sonix custom development GmbH is a mid-sized software company with 100+ employees located in Leipzig, Germany. The first project of FusionPlay was “FusionPlay Heroes”, an innovative card game that contains an NFC radio chip in each (physical) playing card - planned for release in 2018.

In 2016, FusionPlay started development on its first VR software title “Konrad the Kitten.”

Konrad the Kitten – How it Started

Originally the game was made for my girlfriend as a present for our anniversary. She loves cats but we don’t have one at home, so I had the idea of creating a virtual one. I always have “uncommon” ideas of utilizing existing hardware (as already done with the NFC cards in FusionPlay Heroes) and this time the idea was to transport a plush toy into the virtual world to make the cat “feelable”.

Fun fact: When I was first testing the plushy it wasn’t a cat! I used a plushy cow.

Although this early prototype was very simple and not comparable to the final game, it already proved that the basic idea was unique and worth becoming a project for FusionPlay.

Designing a Fully Integrated 3D UI

I felt that a 100% 3D UI was necessary for immersion. In VR, it just doesn’t feel right when some flat icons or texts are hovering in front of you. It destroys the immersion and tells your brain that this world is not real.

It was a very time consumptive process, however, that determined several design and gameplay choices. A few examples include the Volumetric UI cloud, the Kitten’s pendent, and the Action Plate.

The “UI Cloud” was a concept we developed to become the major container for the Needs and Wishes gameplay related UI-elements. It was designed to symbolize a 3-dimensional thinking bubble that hovers above the head of the cat and contains the things that are going on in the mind of the kitten.

We wanted the hovering effect to appear like a balloon that is attached to the cat, always flying upwards. To achieve that we created two hinge joints that act like a gimbal. The UI Bubble itself got it’s gravity reversed to float upwards in a “natural” way.

To avoid having the UI Cloud feel too massive, we used a semi-transparent surface. This also helped to underline the “cloudy” aspect of it. Additionally we made it vanish as soon as the kitten is near the ground or doing an action.

The Kitten’s pendent is a great example of how the integrated UI also helped to organize things.

The current level is displayed on the kitten’s pendant and the amount of money (coins) the kitten owns is also displayed on its necklace. By integrating all elements that are usually (in non-VR games) flat objects tacked to the screen into the world itself, you avoid having an overlayed and sometimes overcrowded screen that can disturb players.

Finally, the “Action Plate” was our UI solution to providing players with needed information whenever the kitten interacts with an object.

A sign (We called it the Action Plate) is floating above the head, showing the type of the action and the related results. As we later added the global attributes of the kitten (love, behave, health), we decided to place them on the backside of the Action.

One interesting thing we did was create an automatic orientation of the Action Plate. We wanted the information always point toward the player, so the plate always rotates accordingly. But by automatically setting the orientation to be facing towards the player, the plate started looking like a 2d element. It looked really bad and didn’t match the whole look and feel of the UI.

The solution: We made the rotation towards the player slightly delayed and excluded infinite speed. So when the player is looking towards or around the sign it slowly follows him. What might sound like a gimmick completely changed the perceived visual feel of the plate and helped to preserve the 3D look & feel.

One aspect of implementing our design philosophy was that we tried to extrapolate common 2D design elements into the 3d world. In a 2D world, our needs would have been symbolized by a circle that becomes larger, the bigger the need is. For our approach we created spheres that symbolizes the need.

For the typical progress bars or health bars in 2D we found capsules be good alternatives. We wanted them to look a little like a thermometer with a glass shell containing a colored content that symbolizes the related value (health, energy, etc.).

There are always situations where you need to display text to the player. In most of these cases, we put this text on a 3-dimensional (for ex. wooden) panel to underline that this is not a UI thing but instead part of the world.

The help board in the options menu is a good example. We even added nails that fix the board on the wall to underline that “this is part of the world and not artificially included UI”-feel.

Adding Real-World Objects to a VR Experience

The use of real-world objects to control in game virtual objects is the core of Konrad the Kitten.

To accomplish this, first you need a proper real-world item. The task is to trick the player’s brain so that it thinks that the virtual object is real. To achieve that, the real object needs to have a similar shape, weight, and surface texture. All of these things do not need to match exactly 1:1 but they need to come close to it. For our kitten, most plushies fit well as it has a similar shape, size and texture. Only the weight does not fit proper.

If shape is an issue, you can do a trick:

Predefine or limit the parts of the object that are touched by the player. For example, our kitten tells you that you always should hold it at its body. When doing so, you do not know how the tail or the head is shaped and so it doesn’t ruin the immersion when the plushies head is positioned or sized differently than the virtual kitten’s.

Additionally, synchronization of real and virtual objects is crucial. For achieving this, you need to know as exactly as possible where and how the tracker is attached to the real-world item.

We accomplished this in Konrad the Kitten by doing 3 things:

  1. Testing out the most common way to attach the controller on the most commonly shaped plush toys. This was used as default data.
  2. Provide the player an introduction (video) detailing how to attach the controller so it best fits our default estimate.
  3. We then calibrate the positional height offset and the rotational offset (how the controller is attached) during our calibration process. But we need to relay that the horizontal offsets are not very large as we cannot detect them.

Calibration for Further Immersion

Floor calibration was also crucial for full immersion and fluid gameplay. The floor calibration process synchronizes the differences between the real worlds' and the virtual world's floor.

Calibration does much more than the player might think. It solves 3 problems in one simple step:

  1. It detects and solves the offset between the virtual floor and the real one. Most games are played standing so a little offset is not noticed by the player but for our game, it is important that it matches exactly.
  2. Each plush toy has a different height. To be able to have the virtual cat exactly on the virtual floor when the real plush is placed on the real floor, we need to measure and integrate the height of the plushy.
  3. The controller is never attached exactly the same way. There are always slight differences in the angle of the controller related to the plushy. The calibration detects this as well and makes the at being proper rotated, no matter how the controller is attached.

The most difficult part of the calibration was to find a way to explain the player what to do. Just looking at the description text, we had more than 10 different wordings until we were fine with how it reads. Most testers just did not understand the difference between the virtual floor and the real floor. Also, often people just skipped through the text.

We integrated the philosophy of “always lower, never higher”. When people hold the kitten above the real ground, the calibration goes wrong. On the other hand it is physically impossible to hold the kitten below the real world’s ground. We used these limitations and made the calibration process abort as soon as the kitten is raised and, when the kitten is moved downwards, the floor height automatically adjusts to the new height. To underline that philosophy, we added animated arrows that float downwards.

In Hand-Mode calibration was slightly different - we need to know where the ground is to trick the player a little. We decided to lift the virtual floor 10cms above the real ground. The reason for this? Our game is played on the floor and we found that people tend to ram the controller into the floor when playing the minigames (hunting mice or crabs).

Listening to Your Audience

In the beginning there was only one thing really special about this game: the innovative way of playing it with a controller attached to a plush toy. We did not see any need to create another way to play the game, as this was the whole point of the game. Learning that we needed to provide a "Hand-Mode" as alternative to the "Plushy-Mode" and that we need to set this as default was a tough lesson. And we learned by listening to bad reviews.

The essence is: When players do not understand your concept, they will think the game is broken/buggy.

The biggest impact on game changes were the negative reviews. We read them multiple times and tried to analyze why the player was unhappy with the game. It turned out that the people did just not know how the game was supposed to be played. Most people just skipped through the initial texts and tried to play the game like other VR games they played before – with the controller held in their hands. If you do that, the kitten is glued to your hands (because it assumes that its attached to a plush toy that you physically place and leave somewhere).

We primarily look at the user reviews from the store but we also use Youtube Let’s Plays as a good source of feedback. Watching other people play your game (without you standing next to them) tells you a lot about how intuitive it is and where you need to add information or change a whole gameplay element.

My Go - To Tips for VR developers

  1. Develop for VR or not for VR, but don’t do both. There are a lot of game types or gameplay mechanisms that make sense in VR but not in non-VR games and vice versa. If you decide to make a VR game, design it for VR from the start!
  2. Play-test! Have many people testing it and watch them how they play. As VR games require people to actively move/act in a real space, it is very interestingly to see how they do this. We’ve done a lot of minor optimizations in the mini-games that assure that the controller is tracked best during the minigames. This could only be achieved by watching how the people hold the controller or the plush toy when playing. Often you recognize that players don’t interact with your experience in the way you expected.
  3. Do something new! Virtual Reality is a new medium that closes some doors but opens new ones. We’ve already started noticing which games do not work very well in VR. But new types of games and/or experiences are always possible in VR. I am certain that most of these new ideas have not been developed yet. Be creative and innovative and find new ways of entertaining people. Show the world that VR has to potential to make people experience things in a way that could have previously never be achieved on a screen.
  4. If you do Early Access, assure that the game is understandable right from day 1. It doesn’t matter if you provide a tutorial or build it intuitively, do something! Don’t wait till you need to announce: “yes we’re adding a tutorial that makes people understand our game in a later patch”.
  5. Be realistic. Be aware that developing the game takes longer and costs more money than you originally expect. (No matter how good your original estimation is :) )
  6. Care about marketing early. The hardest part of making a great game become a great success is making people aware that your game even exists.

What’s Next?

Next up for the team is the release of our NFC card game “FusionPlay Heroes”. This will happen in spring 2018. After that we are planning to add a small update for Konrad the Kitten and later, maybe some DLC or new levels! We’re also constantly thinking of cool ideas for other games, so keep an eye out for new great things from “FusionPlay”!

You can find Konrad the Kitten on the Oculus Store for Oculus Rift.