invadAR is a project for the course Advanced Graphics and Interaction (AGI14) at the Royal Institute of Technology (KTH) in Stockholm, Sweden. The project is developed by five students (Carl, Johan, Anton, Ludwig and Christoffer) and is an AR implementation of the classical game Space Invaders.

The game is developed in Unity3D and Blender. We program the different components of the game using C# in Unity's IDE MonoDevelop. We also use the open source API Vuforia for the image tracking.

Interaction with the game is made possible via the Epson Moverio BT-200 AR glasses and a Playstation 3 controller. The controller allows you to shoot by pressing the round button and aim by moving the left analog stick. You shoot a laser beam at the invaders from your eyes. You can of course aim by moving your head freely as well.


Before we started developing for the Epson Moverio BT-200 we knew that the processing power of the device was limited (since it’s a wearable) and thus we didn’t aspire to implement very heavy graphical components (e.g. heavy shaders and complex particle systems). We also spent about a week’s worth of work trying to steer the aim of the laser beam (the crosshair) with the gyro in the handheld controller of the BT-200. However, we weren’t satisfied with the result (although it worked better on a regular Android device) so we scratched that idea and decided to use a Playstation 3 controller instead. This required that we had the BT-200 rooted and that we got access to an Android app called Sixaxis Controller. This worked like a charm!


Early in the process we wanted to use the Wikitude SDK for image tracking, and we spent a lot of time and effort into it. Unfortunately time was of the essence and setting up a new Android project that implemented the Wikitude functionality turned out to be quite the challenge. We simply weren’t able to get the ADE and the architect view to work in both the BT-200 and a web browser. Therefore we decided to move on by using the Vuforia API and Unity3D.


We spent a lot of time getting the interaction with the crosshair feel as intuitive as possible. It was a challenge to get the crosshair to follow the endpoint of the laser beam (which consists of two line renderers), since the endpoint is 100 meters in front of the crosshair. This was solved by converting the endpoint from world coordinates to screen coordinates. We also spent some time on making the mother ship move around the “earth” whilst always looking at the center of the earth. This was solved by implementing spherical coordinates and having static waypoints that the mothership should move between, while at the same time spawning invaders.


Creating a fun game

First and foremost: While a bit outside the course description (it is not about game design), we had the primary ambition of creating something that was fun to play.


We wanted to create a world where you interact by moving around in the physical world, as to augment the reality.


We want to learn about modern graphics and interaction technologies and how you implement them according to best practice.

We also want to create a fun and immersive gaming experience for the players. We want to understand how AR can and should be implemented in a game environment.

This game will for sure make the world a better place. Who wouldn't want to play this game?

  • Setting up a new environment for developing always takes more time than you think
  • Getting to know a third party plugin/API can be tricky at times
  • It is important to divide the work load evenly within the team
  • Collecting real user feedback is crucial for the development of a product
  • Taking the hardware processing power into consideration early on is crucial
  • When the time is limited, as in this project, you have to know when it's time to move on from an idea that didn't quite work as you hoped
  • Explaining your work to the unenlightened requires that you possess detailed knowledge about your work and that you are able to explain it in both a simplified and an advanced way