Articles, Code and Video Tutorials for ARKit, Sprite Kit & SceneKit

Tips for Making a Great Augmented Reality App

Or possibly just some random notes while they are fresh in my head. Let's find out together....

I’ll update this article whenever something new pops into my head regarding ARKit or augmented reality in general, but at the time of this initial thought-explosion, iOS11 is only a week old. So now that we’re starting to see the first wave of ARKit-infused apps, I feel like it’s worth compiling some notes on what’s out there.

Plane Detection Shouldn’t Make or Break Your AR Game

There’s already a lot of apps that require finding a flat surface to initiate their AR playing field or board. A common complaint is that requiring that flat surface really should NOT be a requirement at all. For example, let’s say you want to start an AR chess game while sitting on your couch. Where’s the flat surface? Worst case, it might not be anywhere. Best case, it’s the coffee table or some side table. That’s a big problem for the casual gamer that just wants to mix in some AR with their usual gaming habits. And it’s a completely unnecessary problem because any augmented board game can just as easily float in space. Its not like the ground plane is actually holding up the game board. It’s simply anchored to it, but developers can anchor things ANYWHERE.

So devs avoid this mistake! As great as your game might look on a table, just remember not everyone is sitting at their dinner table all day. Don’t make AR an awkward, neck bending experience. Unless that’s the point of your game: deep stretching.

Don't require your AR Game to be on a Table

These people would have been okay with a required plane

Augmented Reality: The Couch Divide

Before long, you’ll overhear a conversation that goes something like this…

Dude 1: “Hey you should check out this app”

Dude 2: “Do I have to get up to play it?”

Dude 1: “Well, yeah, but-“

Dude 2: “Pass”

Augmented reality games are going to divide people into two camps. Those that are willing to move their bodies to explore a game, and those that never will. But long-live the couch-potato gamers. Their money still spends. And to be honest, I know I’m in the latter camp. In my own AR app every time I built a level that required getting up, I was like “ugh, I’m getting too old for this shit” (then I’d go eat something in the kitchen and feel a lot better).

Secretly I've always wanted my hand to do that

Seriously though, exploration will be THE hook in many great AR games. As developers we can switch a negative number to a positive number and anchor game elements right behind the user (it’s really that easy). Or directly above them, below them, wherever. It’s truly immersive. Imagine a story book app where the villain is lurking behind you. Mix in a little CoreLocation code to check the user’s compass direction, and you’ve got countless possibilities for hide n’ seek apps.

To say that a good augmented reality game should play with the space around the user, isn’t a ground breaking tip. You might be thinking “yeah, no kidding”. I think what you need to decide is whether or not that actually IS the hook you want in your game or not. Plenty of users won’t play beyond the easily reachable spaces of their own couch. So do you appease them or just exit the stage like Marty McFly… “guess you guys aren’t ready for that yet… but your kids are gonna love it.”

SHOW ME THE AR!!

I’ve read a few people complaining they can’t even find the augmented reality in some of the games Apple has featured in the first week. Thomas the Train, I’m looking at you.  People WANT to try this out. And let’s face it, adults are impatient. We don’t really want to step through 5 minutes of track building tutorials to then have to find the practically-hidden AR functionality.  Sorry but good ol’ Tommy the Train might not have been the greatest app to feature first week, but I get it: it’s a recognized brand that was cool enough to crow-bar in some AR.

But perhaps this is a lesson for the rest of us. Right now, here in the Fall of 2017, AR is brand-new to a lot of people and it sells itself. It is darn cool. So I say lead off with it. Don’t wait until after-the-tutorials to let people enter the AR space.

If you’re making an AR game, then make an AR game.  Just require compatibility. In two years the lack of support will be a non-issue.

show me the augmented reality

Level Building – Can’t someone else do this for me?

One thing I stumbled onto in my own development with AR was that it really lent itself to letting the user build their own levels. Partly because as a developer, I’m my app’s own first user right? I would have to get up from desk, go find a better-lit space and start adding game elements to the space I was in and begin playing. Initially I wasn’t doing this as a potential feature of the game, I was doing it because I didn’t have much choice otherwise. Since my app was 2D-based, with Sprite Kit, the Scene Editor isn’t very useful for AR. All my GUI was still added via the Scene Editor, but to make my game’s Challenge levels, I really needed an entire interface just for level building. And once that was built, I was like “wait, this would be a stupid feature to keep to myself”. You can see that for yourself in the video to the right.

So I would encourage you potential developers to try something similar. You might have the same “why not” moment like I did. And in my upcoming ARKit Master Lessons series, I’ll be sure to show how I was able to build a level at runtime, then get that information back to use it in a hard-coded sense for a permanent level.

Don’t knock 2D until you try it

There are some really interesting things you can do with SpriteKit and ArtKit. 2D art in the AR space won’t change perspective as you move around. This is called billboarding (or the Mickey Mouse Ear Effect), so for example, a 4-sided piece of paper will always appear to face directly at you, and all 4 sides will stay the same length. If that sounds odd to you, take a look at how you can play with that…

Four 2D ring images arranged horizontally in AR space

The same 4 rings would appear as a tunnel if the user moved around them

Is your mind blown? Maybe not. But it might inspire some ideas. Puzzles perhaps. Clues for games that can only be solved by moving around. Mad Magazine Fold-In’s.

Get in Early, be Novel

That tip applies to just about everything and anything, but let’s go with it anyway. To me it feels like Apple has given us developers a new color to paint with. We can make old things fresh again by simply using that new color. Now that isn’t exactly the definition of “novel”, but it doesn’t hurt to be inspired by the past either. You might start a project thinking you’re making AR Space Invaders, and you end up with something completely different. You won’t know until you try.

And of course it never hurts to get in early. Apple loves to mention how many developers they have, and how many apps are in the store, but if you’re an active developer (keyword, active), it’s a pretty small world. And let’s suppose you’re focusing on AR games, okay, now you’re part of an even smaller community of developers.

I talk to people that think they need degrees in Mathematics to be a game developer. Not even close! Folks, I went to an art school for animation (’96 to ’00, so obviously there weren’t iOS programming classes). And to go further back, I hated math in high school. I think most 8th graders could out-math me right now.  So don’t think you need to be a genius at calculus to be a game developer. You don’t. It helps more to be creative and experiment with the tools. And ARKit is the latest tool in the sandbox.