Starfighter 4K Github Poster

Shoot 'em up game utilizing motion recognition with Kinect and Wiimotes for spaceship movement, inclination, and shooting.
C++, Qt, OpenCV, Kinect SDK, Wiimotes API

This project has been divided into two parts: in the first one, we developed a complete shoot-'em-up game. In the second part, we integrated movement recognition using Kinect and utilized Wiimotes for inclination and shooting. The game takes place in space, where the objective is to destroy the other spaceships. Players navigate in a dynamic environment where various obstacles can appear, such as supernovas, asteroids, mother spaceships, and enemy squads. Satellites may emerge, providing bonuses to players who destroy them. These bonuses can include life/shield regeneration, new types of projectiles, or increased speed. Initially, players can choose their spaceship, each with specific characteristics. Subsequently, they can select a superpower that can be triggered at their discretion once it is reloaded.

The Project

New way to play

Utilizing the keyboard to maneuver the spaceship and initiate various actions constitutes the fundamental gameplay in a game. However, we desired to embark on a distinctive approach! We opted to project the game onto a wall using a projector and employed hand recognition via Kinect to determine the spaceship's position. Additionally, we utilized a Wiimote to control the spaceship's orientation and execute actions like activating bonuses or shooting.

A dynamic environment

Players evolve in a dynamic environment where they may encounter obstacles like asteroids, satellites containing bonuses, or enemy spaceships. All these elements compel the players to move and react swiftly to avoid destruction, while simultaneously being targeted by the adversary's shots. The bonuses can assist the player in various ways, such as obtaining a new type of projectile, acquiring a shield, or interacting with the environment, such as reversing gravity, and more.

Advanced specification and design

Taking time to design the application and explain the technical specifications is very important in a project. It might take some time and can be frustrating to perform this step, but it ultimately saves time and prevents problems during development. In this project, the entire process took approximately 50% of the total project time, and we encountered no issues during development


Type Course project
Degree B.Sc. HE-Arc, 3rd year
Course Summer project
Duration ~100 hours
Supervisor Prof. Aïcha Rizzotti, Prof. Olivier Hüsser
Co-developers Alexandre Perez, Sébastien Vauchez