Windows Mixed Reality Impressions

I'm super excited to announce that I have a new member of Pixelshot Games: Jennifer Reyes! She's been helping out with Community Garden by adding procedural generation to expand the city limits. Now that she's working on VR development with me, we had to get her a headset of her own.

At the local Windows store, we were able to try a few Windows Mixed Reality headsets. The one she ended up picking was the HP Mixed Reality HMD. Here are some of my impressions about it.

hp-mixed-reality-hmd.jpeg

Room Scale without External Sensors

The most impressive part about Windows Mixed Reality is the ability for the headset to support room scale without the need for any external sensors. The headset does all the tracking. The only thing you need to have room scale VR experience is the headset and two controllers which are included in your purchase. This is amazing for a number of reasons:

  • No external sensors to mount or setup.
  • Transporting your headset and controllers is so much easier. This means you can do virtual reality development on the go.
  •  

Low PC Requirements

The second thing that really impressed me was the low hardware specifications needed to run the headset. Basic functionality is supported with the following hardware:

  • Intel Core i5 7200U
  • 8 GB RAM
  • Integrated Intel® HD Graphics 620 or NVIDIA MX150/965M
  • Windows 10

This means most modern laptops can at least run some of the VR content available for the headset. Of course, other more graphic intensive applications require higher powered hardware. Community Garden, for example, requires a Nvidia 1060 or higher for the HTC Vive or Oculus Rift but I was able to run it on a Nvidia 1050Ti when using a Windows Mixed Reality headset. This is a huge plus since it will allow for more people to experience virtual reality.

Screen Quality

The screen quality is very high. I was impressed with the clarity of the display and didn't notice much if any screen dooring.  I would need to see a Oculus Rift again to compare, but I would say it's the best display I've seen to date. This is even more impressive considering the low price tag.

Easy Setup Process

The last thing that really impressed me was the setup process. Installing the updates to the new laptop to support Windows Mixed Reality was the only step in the process that took a long time. Once the update was complete, the installation and setup of the headset and controllers took minutes.

Summary

My time with Windows Mixed Reality has been short but I'm impressed with what it has to offer. This headset would be a good entry for anyone thinking of trying out virtual reality. I will need more time to see if the headset holds up but so far so good.

My Personal Status Working on MetaWorld

Last year, I began the journey to create MetaWorld. Being one of the first developers to use SpatialOS and being the first using it for virtual reality was a huge challenge. Documentation was sparse and Improbable was tied up growing their company. After a 3-4 months we had something to show to the world. The response was good, people who tried MetaWorld really connected with the world.

Unfortunately, after the press showing, I ran into a number of issues with SpatialOS due to required version upgrades and bugs with SpatialOS itself. Improbable was busy with other things so they were unable to help. I slowly worked through some of the problems but progress was slow. I started to feel that making a massive VR experience wasn't going to be possible. At our current trajectory it would just take too long.

I still wanted to create something that allowed people to be able to visit a living world together from around the globe. To get there we would need more support from Improbable and a much bigger team. Funding efforts weren't going well because investors wanted to see more before investing. The time required for one developer/game designer and a designer to create what we need would just take too long, we needed more help which costs money. This became a contention point between me and my business partner. Eventually I just didn't see a future in continuing the way we were. I decided to stop working on MetaWorld and focus on a new title called Community Garden. Community Garden would start small to prove the viability of building persistent VR worlds in SpatialOS.

I was surprised when I found out my partner had started an IndieGoGo fund. To avoid confusion, I wanted to make it clear that I'm not currently working on MetaWorld and I don't know how my partner plans to deliver on the promise of the fund. If you plan on donating to the IndieGoGo fund, please note that none of the work I produced for the MetaWorld you see in videos like the one above is what will be delivered.

It's Been Awhile

My posts have become infrequent but I haven't given up on game dev. Too many things going on so blogging was put on hold. To get me back in the habit I decided to at least provide an update on what's been going on.

MetaWorld

After completing In Space, No One Can Hear You Dance, I started working on a much bigger, more ambitious project. MetaWorld is an open world VR experience where players can explore a huge world with others. This project has been super challenging for many reasons. The first being I'm the only developer. This is made even harder by the fact that VR is so new that I often need to rewrite entire systems when something doesn't work. On top of that, being an early adopter of SpatialOS has presented many challenges. The Improbable has been working hard to create better documentation and a more stable API but the journey has tested my resolve. Also, building on top of SpatialOS requires a much different approach then commonly found in game development. The results though have been great. Creating something new that hasn't really been done before is very satisfying. An awesome moment for me was talking to Rachel Webb from GamesIndustry.biz. She really captured why this project is so special.

There is more to come for MetaWorld as well as more challenges but nothing great is every easy.

Wordsum

Wordsum reached a big milestone with 1,000 downloads. I never honestly thought I would make a game that this many people played. I still want more downloads but I'm also very happy with this number. Being my first complete game, Wordsum is special to me so I don't see myself letting it die.

Wordsum Blitz

This game has been a long time coming. The original Wordsum opted for a level based design to give the player a sense of progress. Originally, I wanted to make Wordsum a score based game that never ended much like Tetris. You simply just try to get the best score and compete against friends. Instead of adding this to Wordsum, I wanted to make a new game that was lighter, without ads, without IAP, with better art and that was straight to the point. Over the past year, I've slowly made updates and changes but only recently has it been looking like a finished game. The last little bit that I had to overcome was performance. With that finally conquered you can expect Wordsum Blitz very soon.

Donut For The Gods

Oh this poor game. Unfortunately Donut for the Gods has received the least of my attention. It's not abandoned though. Once Wordsum Blitz is released I will begin the slow struggle make progress. The gods will get their donuts!

VR Space Dancing

Virtual reality has intrigued me since Oculus Rift made it a reality for general consumers. After trying it I wanted to see what I could do with the tech. When the Leap Motion 3D Jam was announced I thought it was a great chance. The result of my efforts is my newest VR game "In space, no one can hear you dance". The goal of In Space is simple, you are on a spaceship and you are trying to get home to earth. Your warp drive is drained of power and dancing is the only way to refuel it. I had gone through a lot of different ideas to get to this one and I had my doubts about how I was progressing 

I decided to bring my game to the GDAT Meetup in San Francisco to see what people thought. The results was great. I got to see people try my game out and have fun. 

I was really struggling before coming to the meetup. I didn't really know if what I had was fun or if the idea was even worth pursuing. Seeing people I didn't know having a blast playing my early prototype gave me a renewed sense of direction.

The feedback I got helped me figure out what I should focus next. I'm very fortunate to live in a city that has these events available to indie developers. Everyone should take the time to attend events like this and let their local indie devs know they are wanted.

Confusion with Unity Social API

I’ve been working on integrating features like a leaderboard and achievements into Wordsum. Instead of building my own systems or using third party services, I decided to use native services like Game Center for iOS and Google Play Services for Android. Unity provides a nice abstraction for these layers in the form of the Social (http://docs.unity3d.com/ScriptReference/Social.html) API. The main purpose of this post isn’t for me to talk about how great the Social API is but to share a misunderstanding I had with it's implementation.

After integrating Game Center into my game, I noticed some weird behavior. When I suspended the game and resumed on iOS the game would go back to the main menu. After much debugging I realized two things were happening.

Game Center re-authenticates on resume

If the users suspends your game and then loads the game from the multitasking tray, Game Center re-authenticates. This would be find if the following wasn’t true.

Callback provided when authenticating is resused

When you authenticate with Game Center you call the following:

Social.localUser.Authenticate(success => {
 //Doing some stuff
 Application.LoadLevel("MainMenu");
});

You provide a callback you want to invoke after the user has authenticates. I'm my case, I was attempting to load the Main Menu scene. The idea was to wait until the player authenticated or did not to load the main menu. This didn't work so when when the player resumed their game, authenticated automatically and loaded the main menu. Once I changed this my problem disappeared.

Summary

My writeup isn't meant to discourage you from using the Social API. It provides a great abstracted layer to work with. Unfortunately for me, I assumed that the callback I provided was going to be used once and then discarded. In my opinion, using C# Delegates would have been a clearer choice to store an action to run every time a player authenticates.