MultiCross – A programming Library for multi-party Collaborative Applications

Denis Lalanne
Matthias Schwaller
Silvan Troxler
Project status: 


The aim of my Bachelor Project is to write a collaborative application, most likely a game, which can be run on more than one platform (mobile phone, diamondTouch table, interactive wall...) simultaneously at the same time and allows multiuser interaction. That means more than one person can actually work with the application on one machine having its own mouse to interact with the software, as well as different persons on different spots can interact at the same time.
In order to achieve this, it is not only important to acquire the technical know-how, but also to learn how to design and implement such an application.

An Application Idea

Since the Application should be a good one to show the collaborative aspect, I thought of programming a card game. But the aim is not to implement a game in which the players have to play one after another, moreover they should play at the same time. Therefore I was thinking of the famous game „ligretto“, which is a card game in which speed and concentration are required. This is a good way to test the usability of the input devices. Maybe, I'm going to design a second application which would show the collaborative aspect even more.


Since the web is being developed further all the time, I decided to discover one of its fairly new approach, invented by Google - The Google Web Toolkit. The Google Web Toolkit is a development toolkit to create web-based browser-applications. One programs in Java, but the GWT will afterwards generate html and javascript files in order to make it work in all the modern browsers. My bachelor project is a good occasion to discover and test the Google Web Toolkit. There already exists a library written for multiuser-intensions as well as a Browser-instance implemented for the same purpose. For my project I am going to use this existing library as well as the browser to develop the described application.

Planned Tasks

The whole Project would be divided in three main parts (see time schedule for details):

  • acquire the knowledge / set up the hardware
    first of all I need to gain the technical know-how, means the basics of Google Web toolkit and repeat the design patterns.
    At the same time, I would set up the needed hardware, such as the diamond touch table as well as the „communication board“ which are located at the university. For this purpose, it is mandatory to get the diamond touch table working under linux.
  • designing the application
    In a second step, I'm going to design the whole application by creating the corresponding uml diagrams.
  • implementing, testing and debugging the application
    In a third step, probably in the second semester of the next year, I'm finally going to implement the application.

Detailed planning [pdf]

MultiCross on sourceforge [link]