Puckr

Details

Final year project for the BSc Computer Science at the Universitat Pompeu Fabra. The project was developed for 6 months.

Puckr was a collaborative multi-player game that was simple and fast-moving. It was based on the popular game of air-hockey with added features from other games like Pinball and Arkanoid. The project’s aim was to take the utmost advantage of the opportunities provided by the Reactable tangible platform as an interactive leisure medium.

Up to four teams, composed by one or more people, could take part. Each team started with a fixed number of lives which were reduced every time the puck entered the team’s goal. The game included different levels, which became more advanced as the game went on.

For each level the background colour changed, the goal size grew and other functions were added. The game allowed the use fingers to draw ice walls that diverted the path of the puck, bumpers (normal, gravity or roulette) and power-ups that altered the puck’s properties.

The project was developed on top of the reactivision framework under Ubuntu 8.04.

An improved version of Puckr was presented at SonarMàtica within the 2009 edition of Barcelona’s International Festival of Advanced Music and Multimedia Art. This new version had a real-time musical composition system that was developed by Pablo Molina, Frederic Font and Francisco García.

Highlights

  • Model–view–controller software architectural pattern
  • Extensive study of use case scenarios
  • Finite-state machine to control the game states
  • Multithreaded; one game thread and another thread for the connexion with the reactivision framework
  • Physics engine with rigid body collisions, impulses and force integration using Runge-Kutta
  • Dynamic goal size and position depending on the number of teams
  • Configuration files parsing with TinyXML

Quicklook

  • Mixed physical and digital objectsPlayers could draw ice walls with their fingersCollaborative multi-player gameRemaining lives appeared near the goalsGoals were dynamically positioned depending on the number of players

Resources