Designing HoloLens Apps For A Small FOV

In my recent VRDC talk I spent a slide talking about limitations of the platform. The most common complaint about HoloLens and just about any other AR or MR platform is the small window in which the augmentations appear. This low FOV issue is a huge problem of physics that’s not likely to be solved according to Moore’s Law. Get used to it. We’re going to be stuck with it for awhile.  (Please someone prove me wrong!)

It’s not the end of the world. It’s just that developers have to learn how to build applications around this limitation.

GUIDE THE USER

Most VR applications require the user to look around. After all, that’s the whole point of being immersed in a virtual environment. Even if it’s a seated experience, usually the player is encouraged to search the scene for things to look at or interact with.

In mixed reality, the lack of peripheral vision (or anything near it) due to FOV limitations makes visually searching for objects frustrating. A quick scan of the scene won’t catch your eye on something interesting, you have to look more deliberately for stuff in the scene.

HoloLens’ HoloToolkit provides a solution to this with the DirectionIndicator class. This is a directional indicator arrow attached to the cursor that points in the direction of a targeted object.

Perhaps a more natural version of this is used in Young Conker. The directional indicator is 3D, naturally sliding along and colliding with the environment.

USE AUDIO CUES

Unity makes it incredibly easy to add spatial sound to a HoloLens app. Simply enable the Microsoft HRTF Spatializer plugin in the audio settings and check off “spatialize” on your positional audio sources. This is more than just a technique for immersion–the positional audio is so convincing you can use it to direct the user’s attention anywhere in the environment. If the object is way out of the user’s view, emit a sound from it to encourage the player to look at it.

DESIGN ART ACCORDINGLY

Having art break the limited FOV frame is a real problem. To a certain degree, this can’t be solved–get close enough to anything and it will be big enough to go beyond the FOV’s augmentation area.

2016-07-19-2

Ether Wars uses small objects to prevent breaking the frame

This is why I design most HoloLens games to work with lots of smaller models instead of large game characters or objects. If the thing of interest to the user isn’t breaking the frame, he might not notice the rest of the graphics are getting clipped.  Also, Microsoft recommends keeping the clipping plane a few feet out from the user–so if you can design the game such that the player isn’t supposed to get close enough to the holograms, you might be able to prevent most frame-breaking cases.

CONCLUSION

For AR/MR developers, limited FOV is a fact of life. In enterprise apps where you are focused on a specific task, it’s not so bad. For games, most average players will be put off if they have to wrestle too much with this limitation. Microsoft’s showcase games still play very well with this restriction, and show some creative ways to get around it.

Why I Don’t Care About Your New Mixed Reality Headset

I’m often approached by entrepreneurs in the AR/MR space offering me demos of new hardware.  Competition in this space is fierce. You need three major elements for me to take a new platform seriously.

vrlatryon_2

You Need These Three Things To Have A Successful Mixed Reality Device

The three requirements for any successful AR (or more specifically MR) device are: Display, Computer Vision, Operating System

Display

This is the first element of an AR/MR wearable, and usually this what all hardware companies have. There are a number of different displays out there, but they all seem to share the same limitations: additive translucent graphics, small FOV, and relatively low resolution. Often times devices with claims of wider FOVs end up with even lower resolution visuals as a compromise. Both low and high resolution displays I’ve seen are all additive, thus images appear as translucent. Some companies claim to have solved these problems. As far as I’ve seen, we’re a long ways off from a commercial reality.

getimage

Operating System

When I got my HoloLens devkits, the first thing that impressed me is that Microsoft ported the entirety of Windows 10 to Mixed Reality. Up until now, most AR headsets had simple gaze-optimized skins for Android. Windows Holographic makes even traditional 2D applications able to be run in mixed reality as application windows floating in space or attached to your walls. It’s all tied to a bulletproof content delivery ecosystem (Windows App Store) so distribution is solved as well.

2786932-hololens

Your device needs to be more than just something worn only to run a specific app. Mixed reality wearables will one day replace your computer, phone, and just about anything with a screen. You need a complete Mixed Reality operating system that can run everything from the latest games to a browser and your email client in this inevitable use case.

Computer Vision

I can’t tell you how many device manufacturers have shown me their new display but “just don’t have the computer vision stuff in.” Sorry, but this is the most important element of mixed reality. Amazing localization, spatialization, tracking, and surface reconstruction features are what puts HoloLens light years ahead of its nearest competition.

This stuff is hard to do. Computer Vision was formerly an obscure avenue of computer science not many people studied. Now augmented reality has created a war for talent in this sector, with a small (but growing) number of Computer Vision PhDs commanding huge salaries from well funded startups. There are very few companies that have the Computer Vision expertise to make mixed reality work, and this talent is jealously guarded.

[BONUS] Cloud Super-intelligence

The AR headset of the future is a light, comfortable, and truly mobile device you wear everywhere. This requires a constant, fast connection to the Internet. HoloLens is Wifi only for now, but LTE support must be on the horizon. Not only is this critical for everyday-everywhere use, but many advanced computer vision functions such as object recognition need cloud-based AI systems to analyze images and video. With the explosion of deep learning and machine learning technology, a fast 5G connection to these services will make Mixed Reality glasses something you never want to leave the house without.

Don’t Waste My Time

A lot of people seem impressed with highly staged demos of half baked hardware. It’s only when you begin to develop mixed reality apps that you understand what’s really needed to make these platforms successful. Demos without the critical elements listed in this post will be harder to impress with once more people are familiar with the technology.

My Week with PSVR

Full disclosure, I’ve had a PSVR devkit for some time now, so this isn’t my first experience with the device. However, this certainly is my first taste of most PSVR launch content. I figured I’d post my impressions after a week with my PSVR launch bundle.

Best Optics In the Business

PSVR does not use fresnel lenses, thus you don’t see any god rays and glare on high contrast screens. Vive and Rift both suffer from these problems, which makes PSVR look a lot better than the competition. Many cite the lower resolution of the PSVR display as a problem, but I don’t think numbers tell the whole story. The screen door effect is not very noticeable, and I suspect there’s some way PSVR is packing those pixels together that make the slightly lower resolution a non-issue. PSVR looks great.

Fully Integrated With Sony’s Ecosystem

The great thing about the platform is they are combining a mature online store and gaming social network with VR. In many cases PSVR is ahead of the competition in community features. When you first don the PSVR headset, you’ll see the standard PlayStation 4 interface hovering in front of you as a giant virtual screen. Thus, all current PSN features are available to you in VR already. You can even click the Share button and stream VR gameplay live. There’s also a pop up menu to manage your friends list, invites, etc. inside any VR experience. The only weird thing is when you get an achievement you hear the sound, but don’t see any overlay telling you what you did.

Tracking Issues

PSVR uses colored LED lights for optical tracking–essentially the same solution Sony created for their PS3 Move controllers in 2010. In fact, the launch bundle comes with what seem to be new, deadstock Move controllers as its hand tracking solution.

Tracking is iffy. It seems that lamps, bright lights, and sunlight streaking through windows can throw PSVR’s tracking off. I find that it works much better at night with the room lights visible to the PS4 Eye camera turned off. I also replaced my original PlayStation 4 Eye camera with the V2 version in the launch bundle to no avail.

Even more annoying is calibration. Holding the PSVR up in precise positions so that the lights are visible to the camera can be quite a pain. Not only that, but many games require their own calibration involving standing in a place where your head fits inside a camera overlay representing the best position to play in.

The hand controllers are jittery even under the best circumstances. Some games seem to have smoother tracking than others–probably via filtering Move input data. Still, given the price of the bundle, Move is an acceptable solution. Just not ideal.

One advantage to this approach is PSVR can also track the DualShock 4 via that previously annoying light bar on the back. Having a positionally tracked controller adds an element of immersion to non-hand tracked games previously unseen.

The Content

Despite PSVR using a PS4 which pales in power compared to, say, a juiced up Oculus-ready PC, the PSVR launch experiences are second to none. Sony is an old pro at getting together strong titles to launch a new platform. They have made some great choices here.

Worlds

The amount of free content you get with the Launch Bundle is staggering. In addition to the new VR version of Playroom and a disc filled with free demos, you also get Worlds–Sony London’s brilliant showcase of VR mini games and experiences. The Deep is a perfect beginner’s VR introduction–a lush, underwater experience that rivals anything I’ve seen on Rift or Vive. London Heist is my favorite, combining storytelling and hand-tracked action in what is often compared to a VR Guy Ritchie film.

Arkham VR

This is the single coolest VR experience I’ve ever had. It’s really more like a narrative experience with some light gameplay elements. Some are complaining that this barely qualifies as a game and is way too short for $20, but I disagree. This is the gold standard in VR storytelling–a truly unique experience that a lot of developers can learn from. It combines puzzle solving, story, interactive props, and immersive environments into a VR experience that makes you really feel like the Caped Crusader. This is the game I use to showcase PSVR and nobody has left disappointed.

cvb9h4uusae0dk4

Battlezone

Battlezone is my other favorite launch title right now, if I can find other people online (a definite problem given the small, but growing PSVR user base). This is a VR update to Atari’s coin-op classic in the form of a co-op multiplayer vehicle shooter. Guide a team of futuristic tank pilots over a randomly generated hexagonal map as you journey on a quest to destroy the enemy base. This game requires great teamwork and voice communication, which makes it all the more immersive. The positionally tracked DualShock 4 adds to the immersion in the cockpit as well.

Rigs

Guerilla does everything wrong (including uninterruptible tutorials) in VR here, defying all conventions. I have no problems with it, but this makes almost everyone I know violently ill. Apparently I am immune to VR sickness. Rigs is probably unplayable by the vast majority of players even with all the comfort modes turned on. If you want to test your so-called “VR Legs”, then try this game. If you can manage to play this without puking, you’re in for a great competitive online experience–that is, if you can find other players easily.

Wayward Sky

This game started out last year as a Gear VR launch title called Ikarus, which was pulled from the store shortly after its release. Uber’s small mobile VR demo has now reappeared on PSVR as the expanded and enhanced Wayward Sky–an innovative take on point-and-click adventure games in VR. The first stage is essentially a remixed and remastered version of the short Gear VR demo that came out last year. Once you complete this stage, the game opens up with a lot more levels and an all new story line. This is another gentle introduction to VR as it doesn’t involve a lot of movement or complicated mechanics. It’s largely point and click puzzle solving affair, with a few areas that require you to use your hands to manipulate objects.

In Conclusion

img_3678

My dream VR platform would be PSVR’s optics, Vive’s tracking, and Oculus’ controllers. Until that singularity happens, we’re stuck with all of these different systems. PSVR is incredibly compelling, and the platform I recommend to most people. It’s cheap and surprisingly good. Most of my current favorite VR games are on PSVR right now. I personally don’t find its limitations a problem–but it will be interesting to see how the average gaming public responds. Initial sales are promising, and there is way more high profile VR content on the horizon. Dare I say Sony has won this first round?

How To Demo HoloLens Apps In Public

Last week’s VRLA Summer Expo was the first time the public got a look at my current HoloLens project, Ether Wars. Tons of people lined up to try it. I must have done well over 100 demos over the two day event. Since then, I’ve showed it to a variety of developers, executives, and investors ranging from zero experience to those who have used HoloLens quite a bit. Combined with all the demoing done at HoloHacks a few months ago, I’ve learned a lot of common sense tips when demoing mixed reality apps. I figured I’d sum up some of my presentation tricks here.

Know Your Space

HoloLens can be a very temperamental device. Although it features the most robust tracking I’ve ever seen with an AR headset, areas with a lot of moving objects (pets, crowds of people), featureless walls, windows, and mirrors can really mess things up. Also, rooms that are too dark or too bright can make the display look not so great.

If you are travelling somewhere to show your app, try to find out ahead of time what the room is like that you are demoing in. It might be possible to ask for a few alternative rooms if the space they’ve got you in is inappropriate.

And, how do you know if the space is inappropriate? Scan the room before the demo starts. In the case of Ether Wars, you have to scan the room before you play the game. This scan is saved, so subsequent games don’t have to go through that process. When I demo the game, I scan the room myself to make sure the room works before I let others use it. This not only lets me know if the room works but allows the rest of the users to skip this sometimes lengthy step.

Consider building demo-specific safety features. For instance, Ether Drift needs ceilings to spawn space stations from. In the case of a room with a vaulted ceiling the HoloLens can’t scan, a safety feature would be one that automatically spawns the bases at ceiling height for demo purposes.

Teach The Air Tap

Microsoft’s mantra for HoloLens the interfaces is “Gaze, Gesture, and Voice“-essentially a conroller-free interface for all HoloLens apps. Very cool in concept, but I find at least half the people who try the device can’t reliably perform the air tap. It’s a tricky and unnatural gesture. Most people want to reach out and poke the holograms with their finger. It takes quite a bit of explanation to teach users that they must aim with their head and perform that weird air tap motion to click on whatever is highlighted by the cursor.

airtap

Teach the user how to perform the air tap before the demo–perhaps by having them actually launch and pin the app on a wall. It might help to put a training exercise in the app itself. For instance, to start Ether Wars you have to gaze and air tap on a button to start the experience. I use this moment to teach the player how to navigate menus and use the air tap.

Worst case scenario, you can stick your arm over the player’s shoulder in view of the HoloLens and perform the air tap yourself if the user just can’t figure it out.

Check The Color Stack

Unlike VR, it’s difficult to see what the user is viewing when demoing a HoloLens app. You can get a live video preview from the Windows Device Portal. However, this can affect the speed and resolution of the app. Thus, degrading the performance of your demo. One trick I’ve used to figure out where the user currently is in the demo is to learn what the colors of the stacked display look like on different screens.

IMG_2687

Each layer of the display shows different colors

If you look at the side of the HoloLens display you’ll see a stack of colored lights. These colors change depending on what is being shown on the screen. By observing this while people are playing Ether Wars, I’ve learned to figure out what screen people are on based on how the lights look on the side of the device. Now I don’t have to annoyingly ask “what are you seeing right now” during the demo.

None of this is rocket science–just some tips and tricks I’ve learned while demoing Hololens projects over the past month or so. Let me know if you’ve got any others to add to the list.

So, You Wanna Make A Pokemon Go Clone?

I told you not to do it.

IMG_3003

But suddenly my 2013 blog post about displaying maps in Unity3D is now my top page of the month. There are lots of Pokemon Go clones being built right now.

Well, if you absolutely insist, here’s how I’d go about it.

Step 1: Raise tons of money

You’re going to need it. And it’s not just for user acquisition. You’ll need a lot of dry powder for scaling costs in the unlikely event this game is as successful as you’ve claimed to your investors. For small apps, accessing something like the Foursquare API may be free–but it will require an expensive licensing deal to use it at the scale you’re thinking of and without restrictions.

Step 2: Buy every single location based game you can

Just having access to a places API such as Foursquare or Factual isn’t enough. You need location data relevant to a game–such as granular details about places inside of larger locations that are of interest to players. Pokemon Go has this from years of Ingress players submitting and verifying locations around the world.

Nearly 10 years ago, there was a frenzy of investment in location based games. The App Store is now littered with dead husks of old LBS games and ones that are on life support. With that pile of money you raised, it should be easy to go on a shopping spree and buy up these games. Not for their users, or even the technology, but for the data. Most of these games may have been fallow for years, making their location data stale. Yet, it may be possible with machine learning or old fashioned elbow grease to work that data into a layer of interesting sub-locations for your game to be designed around.

Step 3: Plan for Database Hell

Designing for scale at the start is a classic mistake for any startup. You’re effectively building a football stadium for a carload of people. That doesn’t mean you shouldn’t entertain the idea of scaling up a service once it’s successful.

Full disclosure, I’ve never built an app at the scale of Pokemon Go. Few people have. I suspect many of the server issues are related to scaling a geospatial database with that many users. It’s much harder to optimize your data around location than other usage patterns. Don’t take my word for it, check out this analysis.

It’s been years since I’ve looked at geospatial databases. Despite some announcements, it doesn’t look like a lot has changed. A cursory search suggests PostGIS is still a solid choice. Plus, there are a lot of Postgres experts out there that can help with scaling issues. MongoDB’s relatively new spatial features may also be an option.

As for fancier alternatives–Google App Engine is an easy way to “magically” scale an app. They have also started releasing really interesting new geospatial services. Not to mention some great support for mobile apps that may make integrating with Unity3D a bit easier. However, GAE  is very expensive at scale, and the location features are still in alpha. Choosing Google App Engine is a risky decision, but also may be an easy way to get started.

To avoid vendor lock-in, have a migration strategy in mind. One of which may be using your pile of money to recruit backend people from startups with large amounts of users.

Step 4: Get Ready for the Disappointing State of Mobile AR

Pokemon Go has sparked a lot of renewed interest in AR. Much like geospatial databases, not much has changed in the past 5 years as far as what your average smartphone can do. Sure, beefier processors and higher res cameras can get away with some limited SLAM functionality. But, these features are very finicky. Your best bet is to keep AR to a minimum, as Pokemon Go smartly did. Placing virtual objects on real world surfaces in precise locations, especially outdoors, is the realm of next generation hardware.

Step 5: ??????

Ok, this isn’t a precise recipe for a Pokemon Go clone. But hey, if you’ve completed step one, maybe you should contact me for more details?

There’s Nothing To Be Learned From Pokemon Go

Pokemon Go is a watershed moment in gaming. I’ve never seen a game have this much traction this fast. My neighborhood is filled with wandering players of all demographics, strolling around with phone in hand looking for Pokemon. Since the game’s launch, everyday has looked like Halloween without the costumes.

In general, the job of a venture capitalist is really easy. For most, you simply wait around for another firm to invest in something and then add to that round. Or, you can wait for something to be really successful and cultivate clones of it. I can guarantee there are now a few VCs with deals in motion to build a “fast follow” mimic of Pokemon Go.

Please don’t.

There is absolutely no way another developer can duplicate the success of this game. In fact, it remains to be seen if this game will be a success beyond its initial pop. No game has ever had an opening weekend of this scale–but still, remember Draw Something or maybe even Fallout Shelter? I’m enjoying Pokemon Go myself, but many of my colleagues are questioning whether it has legs. Regardless of that, any location-based game you may be thinking of making is probably missing a few key ingredients to Pokemon Go’s success.

IMG_2963

My pathetically low level character

Niantic has the Best Location Data in the Business

I’ve spent time building location-based service apps in the past. The biggest problem with making games that play over the real world is populating the map with interesting stuff to do. Firstly, there’s access to map data–on Pokemon Go’s scale, this is not cheap (although there are open source solutions). Simply having a map is one piece of the puzzle–you need to have information about how the locations are used. Which places are busiest? Where do players like to group up at?

Niantic has this data from years of running Ingress–pretty much the largest location-based game ever made. Over the years Ingress was running as a project fully funded and supported by Google, Niantic built an incredibly valuable data layer on top of the real world that has been repurposed for Pokemon Go.

You could possibly license similar information from other companies (Foursquare comes to mind), but Niantic’s data is probably more geared towards the activity patterns of mobile gamers than those who want to Instagram their lunch. (Granted, there’s a lot of overlap there)

Pokemon Is One of the Biggest IPs in the World

Previous to Pokemon Go, even prior to Ingress, there have been plenty of location-based games. Anyone remember Shadow Cities? Or Booyah? They may have just been too early–back then there weren’t enough smartphones to solve the density problem you have with location-based games. Now that smartphones are ubiquitous, how do you get enough players to fill up the world map? One way is to use one of the biggest video game IPs on the planet.

The demand for Nintendo IPs on other platforms is unprecedented.  The fervor for Pokemon in particular is huge–with lots of false Pokemon apps taken off Google Play and the App Store over the years. Investors have responded to this craze, with Nintendo’s stock jumping 25% since the release of Pokemon Go.

There really isn’t another IP as big as Pokemon that can be applied to a game of this scale. Sprinkle a little Pokemon on to a little Ingress and the results are explosive.

There’s nobody else on the planet that can do this. 

HoloHacks Is A Step Towards Mixed Reality Domination for Microsoft

Microsoft has been holding a series of hackathons for their new HoloLens platform in a number of cities across the US. I couldn’t make it to the original event in Seattle, but managed to compete in HoloHacks Los Angeles at the Creative Technology Center downtown.

IMG_2916

The event went from Friday evening to Sunday afternoon, concluding with final presentations and the judges awarding prizes to the winning apps. My team’s app, “A Day at the Museum,” won the visual design prize with a mixed reality replacement for museum audio tour earpieces.

The event worked like most hackathons I’ve attended–Come up with ideas, form teams, and get to hacking. Microsoft had us covered on the hardware front–not only did each team get to borrow two HoloLens devices, but you could even get a loaner Surface Book for the event if you don’t have a Windows PC to hack on. (As a MacBook Pro user, that option was a lifesaver)

I was lucky to sit at a table with Leone Ermer, Edward Dawson-Taylor, Chris Horton, Ed Hougardy, and Steven Winston. After brainstorming a few ideas we came up with the museum tour concept and got to work. We worked brilliantly as a team and everyone was critical in taking this project across the finish line.

image

HoloHacks isn’t just a promotional event. It’s an important step in building a community around the platform. By iterating with refreshing openness and allowing even complete novice developers to build apps to learn about HoloLens’ capabilities, Microsoft is placing themselves way ahead of the competition not just in technology but in the ecosystem that supports it.

No other augmented reality platform can operate at this scale. By the time other platforms can catch up to Hololens’ features, Microsoft will have a thriving ecosystem of Windows Holographic developers that other hardware vendors just can’t compete with. Why use some other platform when you can easily find developers and tools for HoloLens to get the job done? If the competition were smart, they’d focus on the developer community aspect just as much as the technology.