Version 12 (modified by jesteves, 3 years ago) (diff)


Screencast Multiplayer Game - Control

Project Details

Purpose of this project

In this project we will develop a multiplayer game, Kayacast, that uses Android phones (1 per player) as motion sensors and a Google Cast device, such as a Chromecast or Nexus Player. This kind of game reduces the need for a Video Game Console such as Nintendo Wii.

Project Description

Kayacast is an oportunity to gain knowledge about the Google Cast APIs and Android motion sensors.

The Screen Cast Multiplayer Game project is divided into two components: the Control and the View, where the latter is the graphical component of the game (found here).

In this project, we focus on the Control component of Kayacast, where the two main tasks are:

  • extract relevant information from the smartphone's motion sensors and translate it into game actions;
  • establish and manage the communication between devices, in order to have access to the player information, game status and exchange action requests.

Project Source Code

Source Code


Phase 1 - Research and Planning [July 12 to July 18] (5 days)

  • Tutor meeting and goals definition;
  • Creation of project wiki;
  • Project planning;
  • Research the project technologies and similar applications;
  • Initial Presentation;
  • Design overall architecture of Kayacast;
  • Creation of SVN repository.

Phase 2 - Set up and initial Structure Design [July 18 to August 1] (10 days)

  • Set up work environment;
  • Develop simple Sender and Receiver Google Cast applications to be used as a base for further development;
  • Develop Motion Sensor data extractor for Android;
  • Develop a Motion Detector to recognize a simple (specific) smartphone Motion Sequence, such as up/down motion;
  • Translate the user Motion Sequence into a game action message;
  • Develop the communication of game action messages between Sender and Receiver applications.

Phase 3 - Development [August 2 to August 26] (19 days)

Motion Capture Development

  • Dive deeper into Android Motion Sensors:
    1. Coordinate Systems manipulation;
    2. Sensors range, resolution and sampling frequency;
    3. Abilities and limitations of the sensors;
    4. Already implemented Filters;
  • Develop alternative Motion Detector for more complex user motion:
    1. Gather sensor data about several desired user motions and export them to text files;
    2. Prepare sensor data for analysis: import data into Matlab and catalogue the sensor data into specific motions;
    3. Learn to recognize specific motions (in Matlab);
    4. Select which motions to use in the game by choosing which are more user friendly and can be recognized with robustness;
    5. Implement the Motion Detector for the chosen motions in Android.
    6. Translate the user Motion Sequences recognized by the Motion Detector into game action messages;

Multiplayer Game Manager

  • Expand the Sender and Receiver Google Cast applications developed in Phase 2:
    1. Develop user requests, such as join/start/pause/end game;
    2. Improve user game action messages;
    3. Improve any issue that is found to be relevant.

Phase 4 - Tests and Documentation [August 29 to September 9] (10 days)

Weekly Reports

Trainee details

Trainee Name

José Pedro Esteves

Past Experience

Experience with Inertial Measurement Unit (IMU) sensors on an indoor localization project for Unmanned Aerial Vehicles (UAVs).

Current Situation

Recently finished Masters Degree in Electrical and Computer Engineering at Instituto Superior Técnico - University of Lisbon, with Major in Control Systems and Robotics and Minor in Computer Science.

Motivation for the Project

  • Turn Android devices into Video Game Remotes and Consoles;
  • Learn about Motion Capture using Android smartphones;
  • Learn the Google Cast APIs for multiplayer games;
  • 25M+ Chromecast devices sold (Source 2016);
  • Less than 300 Cast-enabled apps available (Source 2016);
  • Improve programming skills;
  • Develop a fun and interesting application.


Mentor : Rui Cardoso

Co-mentor : Vitor Martins