My Week With Project Tango

A few weeks back I got into Google’s exclusive Project Tango developers program. I’ve had a Tango tablet for about a week and have been experimenting with the available apps and Unity3D SDK.

Project Tango uses Movidius’ Myriad 1 Vision Processor chip (or “VPU”), paired with a depth camera not too unlike the original Kinect for the XBOX 360. Except instead of being a giant hideous block, it’s small enough to stick in a phone or tablet.

I’m excited about Tango because it’s an important step in solving many of the problems I have with current Augmented Reality technology. What issues can Tango solve?

POSITIONAL TRACKING

First, the Tango tablet has the ability to determine the tablet’s pose. Sure, pretty much every mobile device out there can detect its precise orientation by fusing together compass and gyro information. But by using the Tango’s array of sensors, the Myriad 1 processor can detect position and translation. You can walk around with the tablet and it knows how far and where you’ve moved. This makes SLAM algorithms much easier to develop and more precise than strictly optical solutions.

Also, another problem with AR as it exists now is that there’s no way to know whether you or the image target moved. Rendering-wise, there’s no difference. But, this poses a problem with game physics. If you smash your head (while wearing AR glasses) into a virtual box, the box should go flying. If the box is thrown at you, it should bounce off your head–big distinction!

Pose and position tracking has the potential to factor out the user’s movement and determine the motion of both the observer and the objects that are being tracked. This can then be fed into a game engine’s physics system to get accurate physics interactions between the observer and virtual objects.

OCCLUDING VIRTUAL CHARACTERS WITH THE REAL WORLD

Anyway, that’s kind of an esoteric problem. The biggest issue with AR is most solutions can only overlay graphics on top of a scene. As you can see in my Ether Drift project, the characters appear on top of specially designed trading cards. However, wave your hand in front of the characters, and they will still draw on top of everything.

Ether Drift uses Vuforia to superimpose virtual characters on top of trading cards.

Ether Drift uses Vuforia to superimpose virtual characters on top of trading cards.

With Tango, it is possible to reconstruct the 3D geometry of your surroundings using point cloud data received from the depth camera. Matterport already has an impressive demo of this running on the Tango. It allows the user to scan an area with the tablet (very slowly) and it will build a textured mesh out of what it sees. When meshing is turned off the tablet can detect precisely where it is in the saved environment mesh.

This geometry can possibly be used in Unity3D as a mesh collider which is also rendered to the depth buffer of the scene’s camera while displaying the tablet camera’s video feed. This means superimposed augmented reality characters can accurately collide with the static environment, as well as be occluded by real world objects. Characters can now not only appear on top of your table, but behind it–obscured by a chair leg.

ENVIRONMENTAL LIGHTING

Finally, this solves the challenge of how to properly light AR objects. Most AR apps assume there’s a light source on the ceiling and place a directional light pointing down. With a mesh built from local point cloud data, you can generate a panoramic render of where the observer is standing in the real world. This image can be used as a cube map for Image-based lighting systems like Marmoset Skyshop. This produces accurate lighting on 3D objects which when combined with environmental occlusion makes this truly a next generation AR experience.

A QUICK TEST

The first thing I did with the Unity SDK is drop the Tango camera in a Camera Birds scene. One of the most common requests for Camera Birds was to be able to walk through the forest instead of just rotating in place. It took no programming at all for me to make this happen with Tango.

This technology still has a long way to go–it has to become faster and more precise. Luckily, Movidius has already produced the Myriad 2, which is reportedly 3-5X faster and 20X more power efficient than the chip currently in the Tango prototypes. Vision Processing technology is a supremely nerdy topic–after all it’s literally rocket science. But it has far reaching implications for wearable platforms.

Samsung Gear VR Development Challenges with Unity3D

As you may know, I’m a huge fan of Oculus and Samsung’s Gear VR headset. The reason isn’t about the opportunity Gear VR presents today. It’s about the future of wearables–specifically of self-contained wearable devices. In this category, Gear VR is really the first of its kind. The lessons you learn developing for Gear VR will carry over into the bright future of compact, self-contained, wearable displays and platforms. Many of which we’ve already started to see.

The Gear VR in the flesh (plastic).

The Gear VR in the flesh (plastic).


Gear VR development can be a challenge. Rendering two cameras and a distortion mesh on a mobile device at a rock solid 60fps requires a lot of optimization and development discipline. Now that Oculus’ mobile SDK is public and having worked on a few launch titles (including my own original title recently covered in Vice), I figured I’d share some Unity3D development challenges I’ve dealt with.

THERMAL ISSUES

The biggest challenge with making VR performant on a mobile devices is throttling due to heat produced by the chipset. Use too much power and the entire device will slow itself down to cool off and avoid damaging the hardware. Although the Note 4 approaches the XBOX 360 in performance characteristics, you only have a fraction of its power available. This is because the phone must take power and heat considerations in mind when keeping the CPU and GPU running at full speed.

With the Gear VR SDK you can independently tell the device how fast the GPU and CPU should run. This prevents you from eating up battery when you don’t need the extra cycles, as well as tune your game for performance at lower clock speeds. Still, you have to be aware of what types of things eat up GPU cycles or consume GPU resources. Ultimately, you must choose which to allocate more power for.

GRAPHICAL DETAIL

The obvious optimization is lowering graphical detail. Keep your polycount under 50k triangles. Avoid as much per pixel and per vertex processing as possible. Since you have tons of RAM but relatively little GPU power available–opt for more texture detail over geometry. This includes using lightmaps instead of dynamic lighting. Of course, restrict your usage of alpha channel to a minimum–preferably for quick particle effects, not for things that stay on the screen for a long period of time.

Effects you take for granted on modern mobile platforms, like skyboxes and fog, should be avoided on Gear VR. Find alternatives or design an art style that doesn’t need them. A lot of these restrictions can be made up for with texture detail.

A lot of standard optimizations apply here–for instance, use texture atlasing and batching to reduce draw calls. The target is under 100 draw calls, which is achievable if you plan your assets correctly. Naturally, there are plenty of resources in the Asset Store to get you there. Check out Pro Draw Call Optimizer for a good texture atlasing tool.

CPU OPTIMIZATIONS

There are less obvious optimizations you might not be familiar with until you’ve gone to extreme lengths to optimize a Gear VR application. This includes removing as many Update methods as possible. Most update code spent waiting for stuff to happen (like an AI that waits 5 seconds to pick a new target) can be changed to a coroutine that is scheduled to happen in the future. Converting Update loops to coroutines will take the burden of waiting off the CPU. Even empty Update functions can drain the CPU–death by a thousand cuts. Go through your code base and remove all unnecessary Update methods.

As in any mobile game, you should be pooling prefabs. I use Path-o-Logical’s PoolManager, however it’s not too hard to write your own. Either way, by recycling pre-created instances of prefabs, you save memory and reduce hiccups due to instantiation.

IN CONCLUSION

There’s nothing really new here to most mobile developers, but Gear VR is definitely one of the bigger optimization challenges I’ve had in recent years. The fun part about it is we’re kind of at the level of Dreamcast-era poly counts and effects but using modern tools to create content. It’s better than the good old days!

It’s wise to build for the ground up for Gear VR than to port existing applications. This is because making a VR experience that is immersive and performant with these parameters requires all disciplines (programming, art, and design) to build around these restrictions from the start of the project.

A Weekend at Oculus Connect

I spent this past weekend at Oculus Connect and have just now had the time to process what I saw. For Oculus to go from a humble Kickstarter project a few years ago to a capacity filled conference rife with amazing demos and prototypes by countless developers is mind-boggling. I know I said VR in 2014 is like Mobile in 2002, but the pace of progress is staggering. The maturation path for VR is going to be MUCH quicker. Is it 2005 already?

...and all I got was this lousy t-shirt.

…and all I got was this lousy t-shirt.

As I stated before, Gear VR is the most important wearable platform in the universe. I’ve been developing Gear VR games for a while and am thoroughly convinced this wireless, lightweight platform will have far more reach than VR tethered to your desktop.

The GearVR demo area.

The GearVR demo area.

The apps on display were great, but I even saw a few Gear VR demos from random developers in the hotel hallways that blew away what were officially shown in Samsung’s display area. Developer interest for Gear VR is very high. Once it’s commercially available, a flood of content is soon upon us.

Despite the intense interest in the platform, I spoke to a few desktop and console developers who dismissed Gear VR as a distraction and are ignoring it–which I think is really short-sighted.

It’s true that there may be a division in audiences. Gear VR may be the larger, casual audience while apps built around Oculus’ astounding Crescent Bay platform could be for a highly monetizable market of core enthusiasts. Either route is smart business. Depending on how long you can hold out for customer traction, that is.

Oh, and Crescent Bay…was a revolution. There’s probably not much more to be said about it that hasn’t already–but the ridiculous momentum behind Oculus’ path from the DK1 to Crescent Bay makes me question the competition. Oculus has hired all of the smartest people I know and have billions of dollars to spend on VR R&D–which is their main business, not a side project. Will competitors like Sony really commit enough resources to compete with the relentless pace of Oculus’ progress?

VR in 2014 = Mobile Games in 2002?

The first VRLA Meetup last week was awesome.  The performance capture studio at Digital Domain in Marina Del Rey hosted a series of impressive demos as well as live presentations on the current state and future of VR applications.  The venue could only hold 100 people, but 300 registered.  Mobs of interested VR consumers, developers, and producers had to be turned away at the door.

VRLA winding down. (Photo via John Root)

VRLA winding down. (Photo via John Root)

After this event, it struck me that VR in 2014 is reminiscent of mobile in the early 2000s.  Back in 2002 I attended the first GDC Mobile Gaming Summit.  It was at a jam-packed lecture hall in San Jose where presenters demoed the latest in technology and gave their thoughts on where the industry was heading.

At that point, mobile phone hardware was clunky and primitive.  Most phones were still sporting 80×50 monochrome screens with maybe 100k of RAM available for programs to run.  Even if you were ‘lucky’ enough to have one of these devices, it was nearly impossible to figure out how to download games.

In 2002 almost nobody knew how to monetize mobile games.  The hardware could barely run games anyway.  Yet, these people knew it was going to be a big deal.  The room was filled with excitement and anything could happen.

Since then, mobile gaming has created a huge new audience for games that has disrupted the traditional game industry, forcing a shift in how console games are designed and delivered.  Now mobile gaming is obvious, but back in 2002 there were many naysayers–despite the fact that in Japan iMode had been successfully delivering mobile games since the late ‘90s.

To me, VR in its current state feels the same way.  The hardware is huge and clumsy.  There is some precedent for VR applications stretching way back to the 1990s with Virtuality and Battletech Centers.  And there’s a lot of consumer interest–evidenced by all the successful VR and AR hardware kickstarters in addition to the attendance of VRLA this month.

The top question on everyone’s mind is “how do I make money in VR?”  This was the same question asked by many about mobile in 2002.  Back then, the path was more obvious.  Qualcomm’s BREW and Japan’s iMode already had established billing models for mobile content.  Right now, it’s unknown who will pay for VR experiences and what form they will take. A lot of this is a hardware question. Nobody really knows what the iPhone of wearable gaming will be like–but when it arrives, it will be revolutionary.

These definitely are uncertain and exciting times for this new medium–which makes it much more fun to develop for than established platforms.

From Bits to Atoms: Creating A Game In The Physical World

Some of you may recall last year’s post about 3D printing and my general disappointment with consumer-grade additive manufacturing technology. This was the start of my year-long quest to turn bits into atoms. Since that time there has been much progress in the technology and I’ve learned a lot about manufacturing. But first, a little about why I’m doing this, and my new project titled: Ether Drift.

Ether Drift AR App

A little over a year ago, I met a small team of developers who had a jaw-dropping trailer for a property they tried to get funded as a AAA console game. After failing to get the game off the ground it was mothballed until I accidentally saw their video one fateful afternoon.

With the incredible success of wargaming miniatures and miniature-based board game campaigns on Kickstarter, I thought one way to launch this awesome concept would be to turn the existing game assets into figurines. These toys would work with an augmented reality app that introduces the world and the characters as well as light gameplay elements. This would be a way to gauge interest in the property before going ahead with a full game production.

A lot of this was based on my erroneous assumption that I could just 3D print game models and ship them as toys. I really knew nothing about manufacturing. Vague memories of Ed Fries’ 3D printing service that made figurines out of World of Warcraft avatars guided my first steps.

3D printers are great prototyping tools. Still, printing the existing game model took over 20 hours and cost hundreds of dollars in materials and machine time. Plus, 3D prints are fragile and require a lot of hand-finishing to smooth out. When manufacturing in quantity, you need to go back to old-school molding.

You can 3D print just about any shape, but molding and casting has strict limitations. You have to minimize undercut by breaking the model up into smaller pieces that can be molded and assembled. The game model I printed out was way too complicated to be broken down into a manageable set of parts.

Most of these little bits on the back and underside would have to be individual molded parts to be re-assembled later--An expensive process!

Most of these little bits on the back and underside would have to be individual molded parts to be re-assembled later–An expensive process!

So I scrapped the idea of using an existing game property. Instead, I developed an entirely new production process. I now create new characters from scratch that are designed to be molded. This starts as a high detail 3D model that is printed out in parts that molds are made from. Then, I have that 3D model turned into something that can be textured and rigged for Unity3D. There are some sacrifices made in character design since the more pieces there are, the more expensive it is to manufacture. Same goes for the painting process–the more detailed the game texture is, the more costly it becomes to duplicate in paint on a plastic toy.

We're working on getting a simple paint job that matches the in-game texture.

We’re working on getting a simple paint job that matches the in-game texture.

So, what is Ether Drift? In short: it’s Skylanders for nerds. I love the concept of Skylanders–but, grown adult geeks like toys too. The first version of this project features a limited set of figures and an augmented reality companion app.

The app uses augmented reality trading cards packed with each figure to display your toy in real-time 3D as well as allowing you to use your characters with a simple card battle game. I’m using Qualcomm’s Vuforia for this feature–the gold standard in AR.

The app lets you add characters to your collection via a unique code on the card. These characters will be available in the eventual Ether Drift game, as well as others. I’ve secured a deal to have these characters available in at least one other game.

If you are building a new IP today, it’s extremely important to think about your physical goods strategy. Smart indies have already figured this out. The workflow I created for physical to digital can be applied to any IP, but planning it in advance can make the process much simpler.

In essence, I’m financing the development of a new IP by selling individual assets as toys while it is being built. For me, it’s also a throwback to the days before everything was licensed from movies or comic books and toy store shelves were stocked with all kinds of crazy stuff. Will it work? We’ll see next month! I am planning a Kickstarter for the first series in mid-March. Stay Tuned to the Ether Drift site, Facebook page, or Twitter account. Selling atoms instead of bits is totally new ground for me. I’m open to all feedback on the project, as well as people who want to collaborate.

How to survive the mobile gaming apocalypse

I was listening to the latest Walled Garden podcast and towards the end they stopped just short of stating what many developers I talk to have been saying–mobile gaming is dead.

Ok, not actually dead. After all, mobile gaming revenue is higher than it’s ever been, and mobile consumption of everything is eating the planet. However, mobile gaming is completely dead as a business model for independent developers and undercapitalized startups.

IAP has become so dominant that there’s really only one somewhat reproducible way to make money in the AppStore: make a hamster wheel f2p game in a handful of established genres and spend tens of thousands of dollars a day on user acquisition to drive traffic to it. Despite many bold experiments, the charts increasingly bear this out.

Republique

This means that some companies with top charting mobile games aren’t actually making a profit as UA costs can eat up most of the revenue. Surely this will produce a shakeout and consolidation in 2014. This is similar to what happened to Facebook games circa 2010 causing a mass exodus to mobile.

Now that mobile is dead, where should you escape to? There are several options.

PC

The PC, and more specifically Steam, remains the platform of choice for those who actually want to charge money for content. There’s a large market for premium games and Steam has loosened their gate with the advent of Greenlight. Some prominent developers have been abandoning mobile for PC with their new projects. Despite PC sales declining in the face of tablets, it makes sense. This is where the paying customers are.

Consoles

A lot has been written here about the impending demise of consoles, but Sony and Microsoft managed to change up their business model and product strategy enough to have early success with both the PS4 and XBOX One. One of the big changes has been the thawing of the gated ecosystem and allowing independent developers to self-publish. Oh yeah, and on the Wii U also.

Next generation console owners are starved for content. There will be many independent successes over the next few years before the channel becomes completely saturated.

VR

On one hand VR is merely a peripheral for existing games, on the other it’s part of an entirely new category of wearable computing and an emerging platform. Oculus Rift is the clear leader with a huge round of investment and development kits widespread. However a glut of VR headsets is on the horizon.

Oculus is building an ecosystem out of their device, but VR content can be distributed through any PC gaming channel. Although, supporting every single headset may be a nightmare for developers–isn’t it time for some kind of standard VR API?

Board games

Board games are a cottage industry yet a hot category on Kickstarter. As an example, Sandy Peteresen’s Cuthulu World Combat iOS game Kickstarter failed miserably, but when re-pitched as a board game, it blew past its funding goal. Going from digital to physical presents a lot of new challenges for developers, but does have a dedicated fan base of paying customers. Plus, you can’t pirate a board game!

Facebook / Web

Facebook games ‘died’ in 2010, but are ironically becoming an increasingly common alternative platform for mobile developers. Especially if you have a working web client already, why not put it on Facebook? The problem is the audience is decidedly non-hardcore. Facebook games can still make some money, but for a very specific audience. However, for hardcore games, the open web still remains a viable place to find an audience of paying gamers. Kongregate proves this.

What needs to change in mobile?

The supremacy of f2p and the very few options for user acquisition make the momentum towards free and the companies with enough money to compete in the mobile UA wars insurmountable. Apple could make some changes to the App Store to help support premium games and other alternative business models, however there really isn’t any incentive to do so–Either way, Apple sells phones. It’s difficult to foresee anything but the continuing dominance of f2p and mega-publishers on mobile in 2014. If you have a ton of cash and resources, solving this problem is hard, and thus very lucrative. For the rest of us, plan your strategy accordingly.

Game Developers: Don’t Compete, Disrupt.

In the old boxed retail model of games, publishers often waited for an “off year” to capture a hit title’s audience. For instance, a publisher would release a competing open world game the year after a Grand Theft Auto installment to monetize GTA fans who are looking for a similar experience. This successful strategy spawned many hit original properties despite its “fast follow” basis.

Today’s hit games such as League of Legends are constantly updated services and thus never have an “off year.” As discussed in a previous post, we’re in a winner-take-all game economy. Top games consume all of the time and money of their players.

It’s exceedingly expensive to go toe-to-toe with a leading game-as-a-service. Not only do you have to compete with the top game’s deluge of content and social network, but you must overcome the switching cost users bear to move to a new game. A player could have thousands of dollars invested in his League of Legends character. Now you want him to start all over on your new, unproven MOBA?

Competition is possible, but only with deep pockets. The only company posing a distant threat to League of Legends is Valve with DOTA2. Not only have they made an excellent game, but are lavishing massive development and marketing budgets to compete with the frontrunner.

What can you do if you’re not among the most financially successful developers in the world? Don’t compete, disrupt.

READ THIS BOOK.

As described in my bible, Clayton Christensen’s Innovator’s Dilemma, disruptive innovation typically arrives in a form that’s lower quality than the established player, but cheaper or more convenient to use for a low-end customer.

This low end customer is not as profitable, and thus not very interesting to big companies. The disruptive product’s quality improves steadily. By the time the threat is noticed by the incumbent, it’s too late. The disruptive competitor is attracting the old guard’s high-end customers.

A modern example might be what the tablet did to the netbook and is now apparently doing to notebooks.

How does one develop a game disruptive to the established players? Is it even possible to do so? After all, there are flaws when you apply the low-end disruption theory to consumer products. Let’s look at few vectors of disruption and how they may work in games.

Cost

World of Warcraft’s plunging subscriber numbers may be showing that Blizzard has fallen victim to Innovator’s Dilemma in the form of free2play competition.

F2p originally meant lower quality, lower commitment, and (supposedly) cheaper-to-play MMOs. Now, all major releases from Western companies inevitably become f2p. The quality bar has risen to where it’s possible to match or surpass the incumbent combined with a dramatically different business model.

Convenience

How about making a game more convenient to access? One way developers are trying is by bringing established PC f2p genres to mobile. The idea is that by making a MOBA simple to play on a tablet, it’s possible to capture a segment of the desktop customer. This ignores the fact that tablet-owning hardcore LoL players are still looking for an experience uniquely crafted for mobile–Not simply a long-session MOBA plopped into an iPad.

The problem when applying business model advice to the games industry is that most are based around solving a problem. The only problem games (and entertainment in general) may solve is boredom. When you aren’t solving a problem or “pain point”, you are selling based on other emotional qualities such a branding or user experience.

Lessons can be applied–but perhaps not literally. Which is fine. Slavishly following any business model or development methodology ends up in the creation of a process cult.