Browse Source

multiplayer_fps review

pull/822/head
OGordoo 3 years ago committed by Christopher Fremond
parent
commit
ed1e08359e
  1. 51
      subjects/multiplayer_fps/README.md
  2. 22
      subjects/multiplayer_fps/audit/README.md

51
subjects/multiplayer_fps/README.md

@ -2,57 +2,60 @@
### Instructions ### 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. 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: ### Objectives
- A mini map where the player can see he's own position and the whole "game world". #### User Interface
- The graphics of the game: the walls and the other players (see [maze_wars](https://www.youtube.com/watch?v=5V5X5SbSjns) for more details) The game should present a specific User Interface, in which the minimum requirements are:
- A mini map where the player can see his own position and the whole "game world".
- The graphics of the game (walls and other players) should be similar to the original game (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. - 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
#### Architecture of the application
- A peer-to-peer network that will allow other players to join your server and play against each other. - 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. - 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. - Use the UDP protocol to enable the communication between the clients and the server.
- The game should have at least 3 levels with increasing difficulty (with difficulty we mean, making the maze harder, with more dead ends).
#### You have to develop the game server and also a client application: You will 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). - The server must accept as much connections as possible (the minimum should be 10).
- When the client is initialized the game should ask for:
- When the client is initialized it should ask for:
- The IP address of the server, allowing the client application to connect to any server. - The IP address of the server, allowing the client application to connect to any server.
- A username in order to distinguish users.
- After this, it should ask also for a name. After providing the above information, the game should start and open the graphical interface, in which the player should join and start playing the game.
- Example: Example:
Assuming that you can to connect to a server in your same computer. Assuming that you can connect to a server in the same computer.
```console ```console
path/to/client $ cargo run $ cargo run
Enter IP Address: 198.1.1.34:34254 Enter IP Address: 198.1.1.34:34254
Enter Name: name Enter Name: name
Starting... Starting...
path/to/client $ $
``` ```
#### Performance Requirements #### Performance
- The game should always have a frame rate above 50 fps (frames per second). The game should always have a frame rate above 50 fps (frames per second).
#### Bonus ### Bonus
- Implement a level editor to allow player to create they're own mazes. As bonus for this project here are some ideas:
- Implement a level editor to allow player to create their own mazes.
- Implement an algorithm that generates automatically new 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. - 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. - 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.
This project will help you learn about:
- GUI applications
- Game mechanics
- [UDP protocol](https://searchnetworking.techtarget.com/definition/UDP-User-Datagram-Protocol)

22
subjects/multiplayer_fps/audit/README.md

@ -4,19 +4,19 @@
###### Does it compile and run without any warnings? ###### Does it compile and run without any warnings?
##### Try to run a client in the same computer as the sever ##### Try to run a client in the same computer as the server.
###### Does it compile and run without any warnings? ###### Does it compile and run without any warnings?
###### Does it ask for the IP address of the server? ###### Does it ask for the IP address of the server?
##### Introduce the IP address of the game server ##### Insert the IP address of the game server.
###### Does the client manage to connect to the server? ###### Does the client manages to connect to the server?
###### Does the client asks you for a name? ###### Does the client asks you for an username?
##### Introduce your name ##### Insert your username.
###### Does the client initiates the graphical interface? ###### Does the client initiates the graphical interface?
@ -24,7 +24,7 @@
###### Can you see your position in the mini map? ###### 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 in the world does your position updates in the mini map?
###### When you move around the maze does the view of the camera updates? ###### When you move around the maze does the view of the camera updates?
@ -32,11 +32,11 @@
###### Is the frame rate of the game higher higher than 50 fps? ###### Is the frame rate of the game higher higher than 50 fps?
##### Try to connect to from another computer ##### Try to connect to the server from another computer.
###### Are you able to connect to the server? ###### 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 ##### Connect simultaneosly with as much people as posible and play the game for at least 3 minutes.
###### Did the frame rate stayed over 50 fps? ###### Did the frame rate stayed over 50 fps?
@ -44,8 +44,8 @@
#### Bonus #### Bonus
###### +Is it posible to edit you're own maze? ###### +Is it posible to edit your own maze?
###### +Can you play against an A.I. player? ###### +Are levels created automatically by an algorithm?
###### +Can levels be created automatically by an algorithm? ###### +Can you play against an A.I. player?

Loading…
Cancel
Save