01 May 2019
Void Vector is our first consumer-facing augmented reality (AR) app. Our product manager—Ibe—spoke about the excitement and potential of AR in his blog post: “general augmented reality for rookies.” Since then, we’ve continued devoting time and energy to experimenting with and building AR apps.
The idea for Void Vector came to life as we wanted to delve into what ARKit2 could offer (more on this later). After doing our own research, we knew that we could develop a simple game that would be both entertaining and showcase our style, approach, and abilities. So we did just that.
As a public-facing technology exploration project, we had four things we really wanted to accomplish: 1) build a 3D world powered by Apple’s SceneKit library with which users can interact; 2) leverage ARKit to detect and track device positions and orientations in relation to the real world; 3) conceive and embrace a sufficiently compelling game concept; and 4) achieve a look and feel that is simple, easy to use, and fitting for the genre.
Creating SceneKit 3D Models
Our team had to overcome several challenges early on in making the transition from 2D to 3D space. These challenges included, for example: assembling and manipulating dynamic geometry; applying and transforming textures; adding and tuning complementary scene lighting; tracking objects in 3D space; detecting collisions and other physics-based operations; as well as all the crazy math that goes along with all of that. SceneKit made this far easier for us, as we didn’t need to worry about switching languages, IDEs, or working in unfamiliar SDKs. Instead, we were able to continue building it like any other mobile app—only focusing on the 3D elements when and where they applied. And thanks to its tight integration with ARKit, bridging that gap was even easier still.
Apple’s ARKit is the backbone of Void Vector. It provided us with an easy means of detecting surfaces and placing 3D objects in the real world; and starting with version 2, we now have the ability to share those generated world maps with other connected devices. This—in combination with a custom network layer—allowed us to implement spectator mode: providing players the ability to have up to four friends watch gameplay using their own iOS devices. A technology which can be used to add collaborative functionality to nearly any AR app we build.
The ARKit requirements for building and testing an app on a device are: using Xcode 10.0 or later and iOS 11.3 or later. If you’d like to learn more about ARKit, here’s a video from Apple that we found helpful.
Concept of Void Vector
Since Void Vector was slated to be our first public AR release, we found it important that the experience itself be tailored to AR as thoroughly as possible. With that in mind, we explored different control schemes. We soon discovered that the best AR user interfaces (UIs) are those which obscure as little as possible, and the most intuitive UIs are those that require as little input possible. As little, in fact, as none at all! Our end result is a game in which the user simply moves their device to pilot their ship and aims their phone to fire. Nothing could be simpler than that.
Design of Void Vector
The design goal for Void Vector was to make something simple (to save time), yet iconic and (hopefully) cool. To that end, we’ve embraced simple color-tinted geometric shapes for each enemy type and placed most of the design emphasis on the player ship—which was sure to be featured most prominently both in the game and elsewhere. The ship is made up of similar geometric shapes—matching the overall aesthetic. When combined, they form a unique and striking, yet somewhat familiar appearance. We paid attention not only to the way it looks, but also the way it moves. It drags subtly as you move and bank your device, and it turns to face any target it fires upon. This provides both a sense of weight and responsiveness that helps to bring the game to life.
By focusing on these four goals, we’ve flexed our strengths and brought Void Vector to life. It was a challenging yet rewarding experience that has resulted in a shining new piece for our portfolio of apps.
We, mobileforming, can develop cool things. But more than that, we can create things that are effective and intrinsic. Augmented reality games are just the cusp of that. Download Void Vector 'Stop the Invasion!'