A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | ||||||||||||||||||||||||||
2 | Epic | Task | Description | Points | ||||||||||||||||||||||
3 | Game Main Menu | Single Player mode | Allow 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 server | 0.5 | ||||||||||||||||||||||
4 | Multiplayer mode | Allow 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 tank | 0.5 | |||||||||||||||||||||||
5 | Multiplayer AI mode | Allow 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 player | 0.5 | epic total | 1.5 | |||||||||||||||||||||
6 | Single Player mode | Draw player tank | A tank moves (time base movement). If there is no user input, tank keeps moving | 1 | ||||||||||||||||||||||
7 | Draw bullets | Tank 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 tank | 1 | |||||||||||||||||||||||
8 | Infinite field | When 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 | Walls | Add random walls to the game. Tank can hit the wall bricks and destroy bricks with a bullet. | 1 | |||||||||||||||||||||||
10 | Tank health | A 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 over | 1.5 | |||||||||||||||||||||||
11 | Super power | At 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 | Visualization | Make the game visually appealing and user-friendly. Add sprites, add sounds, add information, provide pleasing gaming experience, etc. | 1 | epic total | 8.5 | |||||||||||||||||||||
13 | Multiplayer mode | Create RPC client queue | Create a RabbitMQ queue for consuming responses from DAR tanks server. Queue must have the following settings: auto-delete = true, exclusive = true | |||||||||||||||||||||||
14 | Registration | When Multiplayer mode start, register on DAR tanks server and save the received tankId and token | 1 | |||||||||||||||||||||||
15 | Turn Tank | When user presses: LEFT, UP, RIGHT, DOWN arrow keyboard keys, send Turn request to DAR tanks server and handle response | 0.5 | |||||||||||||||||||||||
16 | Fire | When human player presses SPACE keyboard key, send Fire request to DAR tanks server and handle response | 0.5 | |||||||||||||||||||||||
17 | Create consumer queue for events | Create 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 queue | 1 | |||||||||||||||||||||||
18 | Subscribe to game state events | Subscribe to game state events of room, where the client registered. Consume events from RabbitMQ consumer queue and deserialize JSON body | 1 | |||||||||||||||||||||||
19 | Draw player's tank | Match tankId that was received during registration and draw tank sprite using data in game state event | 0.5 | |||||||||||||||||||||||
20 | Draw opponents | Use player's tankId to identify opponent tanks and draw opponent tanks (sprite) on the screen. Use data that is received in game state event | 0.5 | |||||||||||||||||||||||
21 | Draw player bullets | Match tankId that was received during registration and draw bullets that were fired by player's tank | 1 | |||||||||||||||||||||||
22 | Draw opponents' bullets | Use player's tankId to identify opponents' bullets and draw these bullets on the screen. Use data that is received in game state event | 1 | |||||||||||||||||||||||
23 | Draw information panel | Allocate some area on the screen and draw information panel there. Information panel should be visually distinguishable from game field | 1 | |||||||||||||||||||||||
24 | Information panel: player health and score | Show player's current health points and score points on the information panel | 1 | |||||||||||||||||||||||
25 | Information panel: opponents' health and score and remaining time | Show opponents' current health points and score points on the information panel. Show remainig time of the round | 0.5 | |||||||||||||||||||||||
26 | Information panel: sort opponents' health and score | Show 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 panel | 0.5 | |||||||||||||||||||||||
27 | Game over | When 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 score | 0.5 | |||||||||||||||||||||||
28 | Restart the game | When 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 again | 0.5 | |||||||||||||||||||||||
29 | Visualization | Make the game visually appealing and user-friendly. Add sprites, add sounds, add information, provide pleasing gaming experience, etc. | 1 | epic total | 12 | |||||||||||||||||||||
30 | Multiplayer AI mode | Multiplayer mode support | Implement same tasks from Multiplayer mode, except Turn Tank and Fire | 1 | ||||||||||||||||||||||
31 | Turn Tank | AI sends Turn request to DAR tanks server (there is NO user input from keyboard/mouse) | 1 | |||||||||||||||||||||||
32 | Fire | AI sends Fire request to DAR tanks server (there is NO user input from keyboard/mouse) | 1 | |||||||||||||||||||||||
33 | AI | Implement AI that tries to win the game. AI should avoid being hit by opponents' bullets. AI should fire bullets and try to hit opponent tanks | 5 | epic total | 8 | |||||||||||||||||||||
34 | total points | 30 | ||||||||||||||||||||||||
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 |