SusTankability
An AGI19 project at KTH
About
Goal and Motivation
One of the requirements of this project was to in some way interact with AR. We thought it would be fun to create a PvP game, where each player controls a mobile phone to destroy the opponent. The purpose is to defend your land and conquer your foe's.
What is it?
It's an interactive AR game. To destroy your opponent you need ammunition to shoot. You gain ammunition by extracting resources from your land by placing a harvester that is recognized by your phone. Blast through your opponent's defenses to leave no cover. You may win, but at what cost? Both you and your opponents resources will have been used in order to defend yourselves, leaving nothing behind to rebuild.
How it works:
The ARcore platform reads a tag from the gameboard, rendering the virtual playing field on top as well as each players tank. When you need more resources, replace your harvester and make sure it is scanned by the phone to confirm its new position.
Challenges & Obstacles
By far the biggest problem was the networking. Unity isn't made to network from start and if one wants to handle it multi threaded, it needs to be done through the main thread of unity, which lead to concurrency issues.
The scale in AR has also been a huge problem. Phyisics and graphics are reliant on using a certain scale in unity. When scaling down to AR we recieved several errors and precision was lower due to floating point precision.
Performance we knew from the start was going to be very limited on our phones. We there fore had to optimize most drawcalls, to make use of texture atlases with seperate nornals and occlusion maps instead of using several materials per 3D object, we limited ourselves to one.
Technologies
Unity Game Engine
The game was made using Unity as it is a very versitile and easy to deal with when building to mobile devices. We all had used it before and thought it would suit us good for this project as well.
Blender
Blender was used for graphical asset creation. This choice was easily made, as Blender is widely known as one of the most effective free to use tools for 3D asset creation. The textures for the 3D assets were drawn in Photoshop.
ARCore
ARCore is highly available on multiple platform and the supported by Unity.
"Very cool!"
"Nice short rounds, easy to understand!"
"I enjoyed it a lot!"