Java Tactical Card Game
This assignment has a weighting totalling 100% in your grade for the course. Further details are provided on the Moodle
Online collectable card games are a popular type of multiplayer video game. Collectable card games were originally
physical card games played between people. The first collectable card game was Magic the Gathering, developed by
Richard Garfield for Wizards of the Coast in 1993, and is still one of the most popular collectable card games today.
Various online variants of these physical games were developed and tested in the 90’s and 2000’s, but failed to get
significant traction (usually due to poor UI design). This changed in 2014, with the release of Hearthstone by Blizzard
Entertainment, which was a smash hit, primarily because it was not attempting to directly translate a physical game
to the online medium, but was built for that online medium from the outset. Since the release of Hearthstone, there
have been a large number of other successful collectable card games, such as Magic the Gathering Arena and
Most online collectable card games are heavily inspired by the innovations brought by Hearthstone. In particular, they
are configured as a 2-player card battle game. Each player has a ‘deck’ of cards that they can customise, where they
draw cards from during the game (usually one at the start of each turn), forming the player’s ‘hand’. During each turn,
players can spend a regenerating resource to play cards from their hand, which either ‘summon’ units into the game
board or have some other (beneficial) effect. Units on the board tend to have two core statistics, attack and
defence/health. If a unit started the turn on the board, they can typically be used to attack the opponents’ units or
the opposing player directly. Each player has a health total, and when that health total reaches 0 they lose the game.
One of the more unique online collectable card games to be developed was Duelyst, released in 2016 and is now
discontinued. What makes Duelyst different to other collectable card games is that it utilizes a more complex board.
Most collectable board games use a simple x by 2 layout, where each player has x slots into which they can summon
units. Duelyst instead uses a 9 by 5 layout, adding depth in gameplay by enabling units to move and gain positional
advantages. Duelyst also places a player’s avatar on the board, rather than having them sit at a board edge.
You will be implementing a simplified version of back-end logic needed to play a single Duelyst match.
The aim is to design and build a computer program to allow a user to play a simplified single Duelyst match following
the game rules against an AI opponent given a deck. You will only be required to build the back-end game components
in Java (game logic, game state tracking, card logic implementations and the AI player logic). You will be provided with
a Java template project (after you have finished your system design) that implements the user interface logic for the
The solution you are to develop needs to enable only a single game to be played. You do not need to implement any
of the surrounding systems that usually accompany a collectable card game (e.g. menus, deck creation or match
making), You also do not need to implement the user interface for playing the game. That will be provided for you in
the form of a Java template project. Instead, your solution needs to monitor ‘event’ messages that the user interface
sends to your solution indicating the user has interacted with the UI, and send commands to the UI to display game
state changes to the user. From a high-level perspective, the core functions that you need to develop are:
• Core Game Loop Logic: A set of classes that implement the game rules (see the ‘Game Rules Description’ Slides
on the Moodle) and are able to interact with the provided UI application programming interface to enable a
game to be played (see the ‘Messaging and the Provided API Specification for Commands and Events’ Slides
on the Moodle).
• Game State Tracking: As the game progresses you need to write classes to store and update the state of the
various elements of the game (e.g. the board state, player states, cards, etc.)
• Card Logic: You will need to extend the Card base-class to implement the logic and rules associated for 20
Duelyst cards (see the ‘Cards to be Implemented’ Slides on the Moodle).
• Player 2 AI: You need to implement a semi-intelligent AI that is able to follow the game rules and provide the
human player a basic level of challenge.
本网站支持淘宝 支付宝 微信支付 paypal等等交易。如果不放心可以用淘宝交易！
E-mail: firstname.lastname@example.org 微信:itcsdx