Skip to content
Sven Krefeld edited this page Jan 28, 2018 · 3 revisions

Here you can find information about using the client

Lobby

In the lobby, the user can view the current list of players and register as a player or spectator. The user can also add AI players to the game.

At the bottom of the lobby window, the player can see the status of the game, his or her player name and the current number of coins, which is reduced when he or she joins the game.

Playground

The Playground is the main interaction element for the user. For easier usage it is spitted into four parts that contain the different GUI elements of the game.

GUI

Overview

The top of the Playground is dominated by a game overview. Here the player can see the pull and drop card stack. Also, he sees the normal phase cards with the different requirements for each phase. Additionally, there is a list of all players in the game with their name, current phase and amount of negative points gained so far.

Public cards

The next part of the GUI shows the different public card stacks that were created by laying down phases. Each phase element has its own card stack. It's possible to drag and drop cards onto these stacks to lay down cards after the completion of the current phase.

Player cards

The most complex GUI element is the player cards GUI. Here every player can see a list of his/her own cards. The other part of this GUI is designed to lay down cards for completing the phase. For this purpose there are two stacks where a player can drop cards for one phase element on. There is also a combo box for selecting the type of phase element like equal cards or a sequence of cards. The cards can be transferred using drag and drop and can be laid down via a button.

Status footer

At the bottom of the GUI is a status footer that contains useful information. Each player can find the current game status like who's playing or what is his/her next task to complete the round. Also, there is the name of the current player and his/her coin budget.

Implementation

Concept

The GUI is only a client to interact with the server side logic. No game logic is implemented locally. This design is supposed to minimize the complexity of the client. Unfortunately the GUI interaction of phase ten is very complex. This has lead to a much more complex client than intended.

Communication to server

All communication to server happens over the JAVA EE EJB components. This design leads to an unnecessary complex, impossible to debug and unstable connection. A fix for this is not possible as a part of the project.

GUI elements

The GUI uses the old JAVA Swing framework. The layout is mainly done with the box and flow layout that both tend to produce a broken layout. To prevent display errors each interaction forces the window to repaint. Luckily the CPU overhead of this is not significant.

Clone this wiki locally