mirror of https://github.com/01-edu/public.git
augusto-mantilla
4 years ago
committed by
GitHub
2 changed files with 110 additions and 0 deletions
@ -0,0 +1,59 @@ |
|||||||
|
## multiplayer_fps |
||||||
|
|
||||||
|
### Instructions |
||||||
|
|
||||||
|
Write your own version of the game [maze wars](https://www.youtube.com/watch?v=5V5X5SbSjns) you should recreate all the elements of the game, but you have freedom to implement the user interface. |
||||||
|
|
||||||
|
#### Minimum Requirements for the User Interface: |
||||||
|
|
||||||
|
- A mini map where the player can see he's own position and the whole "game world". |
||||||
|
|
||||||
|
- The graphics of the game: the walls and the other players (see [maze_wars](https://www.youtube.com/watch?v=5V5X5SbSjns) for more details) |
||||||
|
|
||||||
|
- Finally you have to display the frame rate of the game on the screen. |
||||||
|
|
||||||
|
- The game should have at least 3 levels with increasing difficulty. |
||||||
|
|
||||||
|
#### Architecture of the application |
||||||
|
|
||||||
|
- A peer-to-peer network that will allow other players to join your server and play against each other. |
||||||
|
|
||||||
|
- Your implementation should allow one client and the server to run in the same machine and all the other clients to connect from different computers. |
||||||
|
|
||||||
|
- Use the UDP protocol to enable the communication between the clients and the server. |
||||||
|
|
||||||
|
|
||||||
|
#### You have to develop the game server and also a client application: |
||||||
|
|
||||||
|
- The server must accept as much connections as possible (the minimum should be 10). |
||||||
|
|
||||||
|
- When the client is initialized it should ask for: |
||||||
|
|
||||||
|
- The IP address of the server, allowing the client application to connect to any server. |
||||||
|
|
||||||
|
- After this, it should ask also for a name. |
||||||
|
|
||||||
|
- Example: |
||||||
|
Assuming that you can to connect to a server in your same computer. |
||||||
|
|
||||||
|
```console |
||||||
|
path/to/client $ cargo run |
||||||
|
Enter IP Address: 198.1.1.34:34254 |
||||||
|
Enter Name: name |
||||||
|
Starting... |
||||||
|
path/to/client $ |
||||||
|
``` |
||||||
|
|
||||||
|
#### Performance Requirements |
||||||
|
|
||||||
|
- The game should always have a frame rate above 50 fps (frames per second). |
||||||
|
|
||||||
|
#### Bonus |
||||||
|
|
||||||
|
- Implement a level editor to allow player to create they're own mazes. |
||||||
|
|
||||||
|
- Implement an algorithm that generates automatically new mazes. |
||||||
|
|
||||||
|
- Implement A.I. players to allow playing the game without having to wait for more people to join to the server. |
||||||
|
|
||||||
|
- For the basic implementation you can initialize the game from the command line. As a bonus you can implement the initialization of the game as part of the graphical interface and save a history of the hosts with an alias so it's easier to reconnect to known servers. |
@ -0,0 +1,51 @@ |
|||||||
|
#### Functional |
||||||
|
|
||||||
|
##### Try to run the game server |
||||||
|
|
||||||
|
###### Does it compile and run without any warnings? |
||||||
|
|
||||||
|
##### Try to run a client in the same computer as the sever |
||||||
|
|
||||||
|
###### Does it compile and run without any warnings? |
||||||
|
|
||||||
|
###### Does it ask for the IP address of the server? |
||||||
|
|
||||||
|
##### Introduce the IP address of the game server |
||||||
|
|
||||||
|
###### Does the client manage to connect to the server? |
||||||
|
|
||||||
|
###### Does the client asks you for a name? |
||||||
|
|
||||||
|
##### Introduce your name |
||||||
|
|
||||||
|
###### Does the client initiates the graphical interface? |
||||||
|
|
||||||
|
###### Are you presented with a mini map of the maze? |
||||||
|
|
||||||
|
###### Can you see your position in the mini map? |
||||||
|
|
||||||
|
###### When you move around the world does your position updates in the mini map? |
||||||
|
|
||||||
|
###### When you move around the maze does the view of the camera updates? |
||||||
|
|
||||||
|
###### Is the frame rate displayed in the interface? |
||||||
|
|
||||||
|
###### Is the frame rate of the game higher higher than 50 fps? |
||||||
|
|
||||||
|
##### Try to connect to from another computer |
||||||
|
|
||||||
|
###### Are you able to connect to the server? |
||||||
|
|
||||||
|
##### Connect simultaneosly with as much people as posible and play the game for at least 5 minutes |
||||||
|
|
||||||
|
###### Did the frame rate stayed over 50 fps? |
||||||
|
|
||||||
|
###### Independently of the frame rate displayed in the screen, does the game feels smooth? |
||||||
|
|
||||||
|
#### Bonus |
||||||
|
|
||||||
|
###### +Is it posible to edit you're own maze? |
||||||
|
|
||||||
|
###### +Can you play against an A.I. player? |
||||||
|
|
||||||
|
###### +Can levels be created automatically by an algorithm? |
Loading…
Reference in new issue