-
Notifications
You must be signed in to change notification settings - Fork 0
Client
Here you can find information about using the client
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.
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.
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.
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.
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.
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.
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.
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.
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.