What started as a capstone project for an online Unity course has turned into an addictive mini game that merges physical and digital worlds through mobile AR. My goals throughout the project were to expand my C# knowledge while creating a fully functional app with an intuitive user experience.
Although I'm still putting the finishing touches on the experience, I'm excited to share the progress I've made and the process I've followed to get there.
Although I was starting with a desktop game, I knew early on that I wanted to eventually bring it into the real world with AR, so my early concepts all revolved around relatively stationary gameplay that would work well in a mixed reality environment.
I landed on a space-themed airplane game where the player battles against the clock to score as many points as possible, while avoiding enemy missiles. The plane itself only moves side to side based on player input, while the other game objects move towards the player to create the illusion that the player is moving forward.
The first major milestone of this project was the desktop build. Although a relatively simple game, it was very rewarding to see the polished game come together. If you're interested in playing it yourself, feel free to do so here on Unity Play.
To move from desktop to mobile AR, I needed to rework a number of things.
While it was easy on desktop to work in world coordinates, a mobile game placed in the real world with augmented reality would need to use a local coordinate system to function because its position would vary from game to game.
In addition, I needed to work with a framework that I could build on top of to implement basic AR features like object placement and tracking. Although I had used AR Foundation for previous projects, I decided to work with Niantic's Lightship ARDK for this project.
So far, I'm really happy with the mobile build, although I plan to continue to fine tune the post processing and refine the scripts. I will post a link here to the code when it is ready.
As exciting as it is to see this prototype come to life, I'm looking forward to building it out as a finished product in the near future.
I plan on exploring options for hosting the experience on the web as well as building a standalone app in the app store.
As I push towards that goal, I hope to do some user testing to refine the user experience and learn where I can improve the next time around.