Jedi Tetris Logo
Developed by Stefan Freund, Claudia Ruch, Daniel Wolf

Game Description


The problem with creating a multiplayer puzzle as a standard table-top-like puzzle is that interaction between multiple users is helpful but not really necessary. A puzzle can easily be solved alone. In addition, a table-top-like puzzle shows no need for new ways of interaction. Of course it would be helpful to have a way to move pieces over great distance, but when doing a normal puzzle you have time to walk around and move the pieces.

So we decided to create a szenario where you would have to interact with other users in order to solve the puzzle. The pieces should also depend on their absolut position on the wall and the user should not have unlimited time to arrange them. With these limitations the user would have to use the new forms of interactions provided to solve the puzzle.

The Tetris game meets all these requirements. This is why we decided to invent "Jedi Tetris". The idea is that the whole wall is one big Tetris field and pieces are raining down at random. Because the playing field is so big, the two players have to split up to cover the whole area. Two players will have to arrange the dropping pieces or exchange them quickly between each other in order to win the game.

User Interaction

There will be three ways of user interaction with the tetris pieces.

  1. The pieces can be dragged by touching into them and moving them sideways and downwards.
  2. The pieces can be rotated by making a rotation movement around the center of a tetris piece.
  3. If a piece is not close to the user, he can use the "force" to move it towards or away from him. By drawing a diagonal line towards a tetris piece, the piece will be selected from the user. Than he could perform the same gestures as mentioned in 1 and 2. Depending on the distance between the gesture and the piece, the tetris pieces will move with different speeds. This way they can be passed between players, too.

Timeline and Current Development

Date Status Task
03.05.2006 Done (Start) Analysis (Idea generation, project definition)
10.05.2006 Done Start on the separate tasks for the chat client homework
14.05.2006 Done Hand in chat client parts
15.05.2006 Done Chat client debugging, test and submit
23.05.2006 Done Motivation presentation
24.05.2006 Done (End) Analysis
24.05.2006 Done (Start) Planning (graphical layout, system design)
03.06.2006 Done (End) Planning
03.06.2006 Done (Start) Implementation (game logic, graphic, gestures, misc)
15.06.2006 Done (Start) Testing (unit test)
15.06.2006 Done (Start) Integration (model - view - controler)
23.06.2006 Done (End) Integration
25.06.2006 Done (End) Testing (unit test)
25.06.2006 Done (End) Implementation
26.06.2006 Done (Start) Testing (system test) and solving problems
12.07.2006 Done (End) Testing
19.07.2006   Final project presentation



The first version of the game will have the following features:
  • restart/exit game
  • manipulate pieces by
    • pointing and moving them sideways
    • rotating them
    • moving them sideways using the "force"

The end version has additional features:
  • levels and scores
  • using the force in other directions than sideways (rotate pieces, moving them down)
  • graphical effects when using gestures
  • rows vanishing
    • by range (full rows in one Display vanish)
    • by number of blocks (number of n blocks in one row vanish)
    • by a number of blocks in one range
  • hide unvisible areas at the display wall
  • sounds to give the user feedback

User Interface Design

As soon as the program is started, a new game begins. By clicking on the screen after a few seconds after game over the program can be restarted.

User interface draft for the first version:
User interface draft for the first version

System Design


  • One piece consists of four blocks.
  • The origin of the game coordinate system is in the lower-left corner of the game area. The positive x-axis extends to the right, the positive y-axis points upwards.

Game Cycles

The system operates in time-fixed cycles. For each cycle, the following steps are performed:
  • move all pieces in mid-air one level lower
  • check if pieces touch the ground / lying pieces -> attach them
  • check if one or more full rows are present -> mark them as filled
  • if at least one row is marked as filled: remove the bottom-most one, move all others
  • check if the game is over

This clock-cycle approach allows for easy collision checking using integer coordinates. To hide this simplicity, the graphics engine can apply temporal interpolation.

Communication Model - View

The view subscribes for model events. The model sends update events to its receivers whenever there are changes, like:
  • game starts
  • piece is added to the game field
  • piece falls down
  • piece rotates, shifts left, shifts right, shifts down
  • piece connects to pieces lying on the ground
  • row is full and vanishes
  • score is updated
  • game is over

Communication View - Controller

The view sends finger or mouse events to controller who interprets them and calls methods in model. Following events must be sended:
  • mouse down / display wall is touched
  • mouse draged / move finger at the wall
  • mouse released / display wall is released
Topic attachments
I Attachment Action Size Date Who Comment
Jedi-Tetris.pngpng Jedi-Tetris.png manage 9.5 K 01 Jun 2006 - 13:14 DanielWolf User interface draft for the first version
JediTetris.pngpng JediTetris.png manage 22.7 K 11 Jun 2006 - 11:30 DanielWolf Jedi Tetris Logo
Topic revision: r10 - 18 Jul 2006, ClaudiaRuch
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Medieninformatik-Wiki? Send feedback