ABCDEFGHIJKLMNOPQRSTUVWXYZ
1
2
EpicTaskDescriptionPoints
3
Game Main MenuSingle Player modeAllow user to select Single Player mode in the Main menu by pressing keyboard keys or by mouse input. In Single Player mode game is run on local computer WITHOUT connecting to DAR tanks server0.5
4
Multiplayer modeAllow user to select Multiplayer mode in the game Main menu by pressing keyboard keys or by mouse input. In Multiplayer mode game connects to DAR tanks server. Human player controls the tank0.5
5
Multiplayer AI modeAllow user to select Multiplayer AI mode in the Main menu by pressing keyboard keys or by mouse input. In Multiplayer AI mode game connects to DAR tanks server and tank is controled by program, NOT by a human player0.5epic total1.5
6
Single Player modeDraw player tankA tank moves (time base movement). If there is no user input, tank keeps moving1
7
Draw bulletsTank can shoot. When the tank shoots, a bullet is emitted that moves in the direction of the movement of the tank. Bullet moves faster than tank1
8
Infinite fieldWhen tank reaches right border of the screen it should continue movement and appear at left border (same for up, down, right borders of screen) 1
9
WallsAdd random walls to the game. Tank can hit the wall bricks and destroy bricks with a bullet. 1
10
Tank healthA tank has 3 health points. When a tank hits the wall, tanks’s health points decreas by 1 and bricks that were hit by the tank are destroyed. If tank's health is positive, it keeps moving. If tank's health decreases to zero, game over1.5
11
Super powerAt random time intervals create food on the game field. If tank eats food, the tank and its bullets move 2 times faster for 5 seconds 2
12
VisualizationMake the game visually appealing and user-friendly. Add sprites, add sounds, add information, provide pleasing gaming experience, etc.1epic total8.5
13
Multiplayer modeCreate RPC client queueCreate a RabbitMQ queue for consuming responses from DAR tanks server. Queue must have the following settings: auto-delete = true, exclusive = true
14
RegistrationWhen Multiplayer mode start, register on DAR tanks server and save the received tankId and token1
15
Turn TankWhen user presses: LEFT, UP, RIGHT, DOWN arrow keyboard keys, send Turn request to DAR tanks server and handle response0.5
16
FireWhen human player presses SPACE keyboard key, send Fire request to DAR tanks server and handle response0.5
17
Create consumer queue for eventsCreate a RabbitMQ queue for consuming games state events. Consumer queue must have the following settings: auto-delete = true, exclusive = true. This queue must be different from RPC client queue1
18
Subscribe to game state eventsSubscribe to game state events of room, where the client registered. Consume events from RabbitMQ consumer queue and deserialize JSON body1
19
Draw player's tankMatch tankId that was received during registration and draw tank sprite using data in game state event0.5
20
Draw opponentsUse player's tankId to identify opponent tanks and draw opponent tanks (sprite) on the screen. Use data that is received in game state event0.5
21
Draw player bulletsMatch tankId that was received during registration and draw bullets that were fired by player's tank1
22
Draw opponents' bulletsUse player's tankId to identify opponents' bullets and draw these bullets on the screen. Use data that is received in game state event1
23
Draw information panelAllocate some area on the screen and draw information panel there. Information panel should be visually distinguishable from game field1
24
Information panel: player health and scoreShow player's current health points and score points on the information panel1
25
Information panel: opponents' health and score and remaining timeShow opponents' current health points and score points on the information panel. Show remainig time of the round0.5
26
Information panel: sort opponents' health and scoreShow opponents' current health points and score points on the information panel. Entries should be sorted by opponent score descendingly, i.e. opponents with higher score should be shown higher on the information panel0.5
27
Game overWhen a player wins, loses or is kicked from the game, show final screen to player with information if s/he won, lost or was kicked. Show player's score0.5
28
Restart the gameWhen game is over, on the final inform the player that s/he can replay the game by pressing 'R' keyboard key or by mouse input. Allow the player to close the game too. If player chooses to restart the game, restart the game: start process of registration to the DAR tanks server and allow player to play again0.5
29
VisualizationMake the game visually appealing and user-friendly. Add sprites, add sounds, add information, provide pleasing gaming experience, etc.1epic total12
30
Multiplayer AI modeMultiplayer mode supportImplement same tasks from Multiplayer mode, except Turn Tank and Fire1
31
Turn TankAI sends Turn request to DAR tanks server (there is NO user input from keyboard/mouse)1
32
FireAI sends Fire request to DAR tanks server (there is NO user input from keyboard/mouse)1
33
AIImplement AI that tries to win the game. AI should avoid being hit by opponents' bullets. AI should fire bullets and try to hit opponent tanks5epic total8
34
total points30
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100