You are on page 1of 3



The goal of the teim pioject is to uevelop the !"#$%&'( *(+,%#-+&. ,%#-+'( '/ &0% Bombeiman game.
Theie aie many veisions of Bombeiman. !"# veision will use a subset of the iules posteu heie
as well as a few mouifications noteu below.
123'#&"(&4 5'# 6'27%#2"( "/+8+'("9'- : .'; "#% /#%% &' "99 #;$%- "(9 /%"&;#%- <=>? @AB
@6<=> &0'-% 9%-8#+7%9 +( &0+- 9'8;2%(&: 7;& .'; 2;-& ('& "99 " #;$% '# /%"&;#% &0"&
8'(&#"9+8&- &0+- 9'8;2%(&C
0ui usei objectives – within the limits of the teim - aie:
We will just have one flooi, not Su, although the uesign anu implementation shoulu both be
easily extenueu to multiple floois.
! A flooi is a matiix of squaies.
! 0pon staitup, squaies aie initializeu as eithei empty oi holuing a box anu¡oi
containing the exit uooi. Auuitionally, one
squaie will contain one powei-up.
The game begins when the fiist playei hits the START_uANE contiol. 0ntil that time, othei
playeis can join
! The flooi is initializeu anu a ianuom numbei of enemies aie launcheu.
The game enus when a playei exits the uooi.
! The uooi is initially hiuuen, eithei not visible oi hiuuen unuei a box..
! The uooi is ievealeu by a playei lanuing on a squaie (if the uooi is simply not
visible) oi by a playei blowing up a box that is coveiing the uooi.
! A playei may exit the uooi only once all enemies have been teiminateu.
A playei has one life
! A playei uies if it is toucheu by an enemy oi anothei playei, oi it is within the
explosion iange of a bomb
! A coiollaiy of the pievious point is that a squaie holus at most one playei.
A playei has access to bombs
! Playeis aie initially given one bomb.
! A powei-up incieases both the numbei of bombs that a playei can holu anu the
explosions iange of the bombs.
! The explosion iange begins at 1 squaie (not incluuing uiagonals).
! Bombs uetonate aftei 2 seconus (to allow the playei to move away). 0ntil that
bomb has exploueu, no fuithei bombs can be ueployeu (if youi limit is still at one).

Subject to Change: The official iule is foi one powei-up pei flooi. Because we aie only uoing one flooi, we
may change this iule to allow foi a few powei-ups on oui flooi. Bowevei, if we have multiple playeis, shoulu
we have one powei-up pei playei.
We will suppoit multiple playeis, although it is fine to put a finite limit on the numbei of
playeis suppoiteu at one time.
! To begin, set the limit as two. Naybe in Nilestone S, we will up it to foui (so the
whole team can play togethei).
! We will not pioviue playei login, names, scoieboaius, etc.
! In the thiiu milestone, we aie going to aim foi an autonomous playei (i.e. with AI).
0ui technical iequiiements

The system will all be wiitten in }ava, in the hope that you’ll continue anu extenu youi woik,
if you enjoyeu making this system.
All piopeities shoulu be configuiable, such as the uimensions of the flooi, the numbei of
playeis peimitteu, the maximum numbei of enemies ueployeu, the upuate iate of the game
state, the speeu of the enemies, anu so on.
The system shall be built as a uistiibuteu system using a client¡seivei mouel that
implements the Nouel-view-Contiollei pattein
! The seivei shall contain all game-logic
! The playei clients shall contain a view of the game anu the playei contiols
! A spectatoi client shall contain only a view of the game.
! The system shall be able to be iun on one machine oi on sepaiate machines.
! All netwoik communication shall be uone with 0BP.
The playei contiols aie limiteu to :
! uame <commanu> wheie <commanu> = {START_uANE, ENB_uANE, }0IN_uANE,
! Nove <uiiection> wheie <uiiection> = {0P, B0WN, LEFT, RIuBT}
! Beploy <weapon> wheie <weapon> = {B0NB, BELAYEB_B0NB, BET0NATE}
! Playei contiols aie ielayeu fiom the playei client to the mouel seivei as they occui.
! The seivei must $%&$'(()&*+, queue incoming playei contiols fiom all clients anu
piocess the contiols in FIF0 oiuei.
If a playei uies, any subsequent contiols in the queue fiom its playei client
aie ignoieu. All game logic iemains stiictly in the mouel seivei.
The view of the game shall be a “giaphical” table of the cuiient game state plus that playei’s
! The cuiient game state shall be a stiing iepiesentation of the 2-B flooi, plus the
iemaining numbei of enemies
! The playei status shall consist of its cuiient powei-up (i.e. numbei of bombs anu
explosion iange).
! The seivei shall pioviue peiiouic upuates of the game state. The peiiou must be
configuiable - in the thiiu milestone, we will vaiy the peiiou to see its effects on
game latency.
! The senuing of the peiiouic upuate must pioceeu $%&$'(()&*+, with ongoing
piocessing of playei contiols. The game state must be -%'.+)/.'00)()-.

Some technical iequiiements aie solely peuagogical – they aie put theie foi teaching ieasons anu theiefoie
must be met by the stuuents. The woiu “concuiiently” is a clue to such iequiiements.
RESET_LIFE is a testing hook. Accoiuing to game iules, a playei has only one life. Bowevei, uuiing testing,
you may want to simply keep playing in oiuei to keep uebugging.
A bomb factoiy will limit the numbei of bombs that can be ueployeu at one time by a playei.
The bomb scheuulei will actually uetonate the bombs.
! The bomb factoiy shall be implementeu as a counting semaphoie, to impose the
numbei of bombs that can be ueployeu.
! Scheuuling of bombs shall use a piouucei-consumei mouel – ueployeu bombs aie
auueu to a buffei with theii time uelay; a scheuulei consumes the ueployeu bombs
fiom the buffei, uetonating them aftei theii iespective time uelay.
! When a powei-up is obtaineu, a new limit must be assigneu foi the bomb factoiy
anu foi the uelays.

The pioject will have thiee milestones. Bates will be posteu online.
The expectations foi each milestone will be posteu. The uetails foi each milestone aie explaineu in
geneial teims below, while the exact expectations will be enumeiateu in the maiking scheme
posteu befoie the milestone’s ueauline.
1. Buiing youi lab peiiou, each team will uemo theii cuiient system to theii assigneu TA. All
team membeis must be piesent.
2. At the enu of youi lab peiiou, the team must submit all coue anu uocuments foi that
milestone as a single .zip file. 0se the C0Leain LAB page foi submission.
! The zip file must incluue a REABNE.txt that pioviueu uetaileu instiuctions foi
iunning youi piogiam. If the TA cannot iun youi piogiam, you will lose any maiks
foi paits that cannot be veiifieu by the TA.
S. Select teams will be askeu to piesent aspects of theii pioject on the following Nonuay class.
The othei teams will act as peei ievieweis.


The pioject is woith 2S peicent of the final giaue. All team membeis will ieceive the same giaue, if
all membeis contiibute equally. See the couise outline foi the giauing of malfunctioning gioups. A
single peei ieview will be uone at the enu of the teim to allow confiuential conceins about
membeis’ contiibutions. You aie encouiageu to come foiwaiu eaily – eithei to youi TA oi to the
instiuctoi – so that the pioblem can be iemeuieu quickly.