You are on page 1of 3

Group M

Initial plan
For this project, the aim is to design and develop a successfully working implementation of
the popular board game Settlers of Catan over the course of two semesters. A working
demo of the game with core functionality should be produced by the end of the first semester.
The development of this program will be facilitated by the use of various software
engineering tools such as version control systems(Bitbucket) and communication
software(Trello) to assign tasks and monitor current progress. The game will be developed
using the Java programming language.
This implementation should provide all the functionality of the game and its features,
including a board with terrain hexes, players, game state, development cards, resource
cards, cities, settlements, robber and roads. Gameplay should be similar to the original base
version, following the rules specified in the official Catan almanac, with functionality for
trading cards and resources, in addition to building roads, houses and settlements. The
game will support four players, each of which will possess development cards, resource
cards, victory points and any achievements (such as). Extensions to the game to support
expansions such as Seafarers and Traders & Barbarians will be considered dependant on
progress. The structure of how these features will be implemented in classes is shown below
in Figure 1.

Figure 1
There will be several distinct modules within the program-namely, the GUI (which will be
responsible for the user interaction and presentation of current game state), the Board (which
will hold information about current game state, and used as reference by the GUI) and the

Master (which will process updates on the game issued by the GUI and update the Board as
appropriate after validation). AIs will also be developed, for single-player gameplay and for
testing purposes. The interaction between these modules is visualised in Figure 2 below.

Figure 2
The implementation should provide support for single-player use (against AIs) in addition to
multi-player use(to be carried out in collaboration with other CS3099 students). Multiplayer
use will be possible through use of a shared communications protocol. Development of this
will be shared between the participating teams, with the goal of facilitating games between
different groups software.
A graphical user interface will be developed using JavaFX in order for the user to view the
current state of the board(including users deck of cards, resources and buildings) and a log
of previously taken moves, as well as submit game moves to make. This should follow the
layout below (Figure 3) closely.

Figure 3
The board should be constructed of distinct terrain hexes, each of which will store
information on neighbouring nodes, paths along its borders, resource type, its number, and
whether or not a robber is present. Hexes that possess one or more sea borders must
account for a different resource yield and the potential existence of harbours.
The specification set by the module co-ordinator was left open-ended, so as for the team to
be responsible for determining the games important characteristics, and how to implement