The world around us has come to a standstill. Especially if you are from India. All gatherings of any kind have been suspended indefinitely and we are stuck in the confines of our home. We have to find new ways of fun or find alternatives to the things we used to do for fun. As a child, I used to enjoy going to carnivals around town (we call it melas or Ram Lila). Like me, many people who loved going to a gallery to shoot an air rifle are stuck with nothing but sour taste. So, this weekend I thought to re-create the experience of shooting balloons, bottles, glasses, and other stuff in a physical shooting gallery with the help of Augmented Reality in Unity.
What it does
It is a game that maps your floors and other horizontal surfaces which is visible to the camera of your smartphone. You begin the game by hitting the play button. Once, in-game you will have to move your camera around for the game to actually detect planes. You will be able to see all the planes generated this way. (The reason why these planes are visible is to allow you to see whether or not this game is supported on your device. Also, to help you understand where the Targets might spawn from.) Once happy with the amount of mapping hit the button and then you are good to go. You will see targets spawning in real life and by tapping on a shoot they would be destroyed with a bang. There are also a couple of different game modes. If you choose so, you can head over to Training where you will be doing all of that and all your targets will instantly re-spawn. There is also a gallery mode. It is just added to present you with a mode in which you can see what AR is doing under the hood. You can place all the in-game assets and then interact with them as if they are present in the real world.
How I built it
The game is built using Unity Engine and AR Foundations. I have only used ARCore (which is google's AR engine) in this project. Since I do not have a mac or an iPhone there was no way for me to test it out hence I had to omit the iOS side of things.
Challenges we ran into
There were many challenges that I faced during the creation of this project. Before this, I had never made an app that could not be playtested (to some degree) in the Unity Editor. Since it relies on AR I had to build and run it natively on my android device every time. One cool thing about Unity Editor is the debug functionality. So, having no help in debugging the application was a major issue. There were issues with compatibility (mainly with Occlusion) and hence had to find a way to counter that. Demo, recoding, and presentation are something I am bad at, and hence finding a way to successfully present my work also was an issue.
Accomplishments that I am proud of
I am proud of the fact that I was able to do all that on time and make it all work. If played properly in ideal conditions this game can recreate the same feeling in me which I used to have when shooting in a gallery. I am also proud of the fact that despite being sick I was able to work, finish and submit the project.
What we learned
There was a lot of learning. Before beginning this project I had no knowledge of AR or working with any AR app. The last AR experience I had was from Pokemon go. So, learning everything that AR Foundation has to offer was a steep curve. I also was able to understand a lot of common game coding patterns like a singleton, etc. I also was able to learn how to debug my games better and make better project structures to avoid confusion later on and help in debugging. There were a lot of small tit-bits which I was able to take away from this project which definitely improved my game development skills. Not to mention, I also made a few models in a blender to test out with my game. 3D modeling was one thing I always wanted to get started with.
What's next for ShootAR Gallery
Adding more levels. Polishing the game. Adding more character by post-processing. Publish on playstore.