Breitband, Gruppe: Deutsche Telefon APP
This is the Deutsche Telefon APP's version of Breitband. On top of following the Breitband Preset, it sports a beautiful, performant GUI and our own custom sound effects.
The entry point of Breitband is the main method.
Configuration
The game can be configured by passing arguments to it, which will be evaluated by the
ArgumentParser
from the Breitband Preset. Game configuration XML files are loaded via the
Config class. This class is instantiated at the start of the game, by
the main function, as well as the individual players.
Game logic
The game logic is handled by the players and the board. The players each have their own boards where game logic is evaluated. The players interact with the board to construct, validate and evaluate moves on it. In the main game loop, the boards of other players are continuously updated to reflect the current state of the game after a player made their move. The GUI is also informed about the state of the game. It constructs moves and sends them to the player by implementing the PlayerGUIAccess interface.
GUI
The GUI is a standout feature of our implementation. It displays the polygons in a stylized way, thanks to our polygon optimizer, which uses convolution to simplify the region borders and improve the performance of our GUI. Different levels of simplification are swapped out dynamically depending on the current zoom level. The UI also uses a functional approach for event handling, encapsulating behavior that is local to its components and exposing event handlers for higher-level behavior. Its SVG assets are loaded as variants of the Asset enum that preloads them. Through heavy use of assets, and a consistent Styles system, the GUI looks organized, consistent, and quite fun.
See the GUI documentation for more information.
Sound
The game uses sounds to enhance the user experience. Our implementation of this feature is based on a globally available enum that, for each variant, preloads the sound files and provides a method to play them. The sounds are played using the SoundFile enum. Sounds are played using Java's Clip class.
All graphical and sound assets were created by Luna Otte of the Deutsche Telefon APP and thus fall under this project's license.
Package | Description |
---|---|
breitband |
Base package of the Breitband game.
|
breitband.game.board |
Provides the board logic of the game.
|
breitband.game.players |
Provides the player logic of the game.
|
breitband.GUI |
Provides the GUI of the game.
|
breitband.GUI.elements |
All main elements that make up the GUI.
|
breitband.GUI.ui |
All main components that make up the GUI.
|
breitband.GUI.util |
Utility classes for the GUI.
|
breitband.util |
Utility classes that are used in the game.
|
test |
Test classes for the game.
|
test.gameTest |
Basic tests for the board and player logic.
|