Skip to content

Latest commit

 

History

History
42 lines (27 loc) · 3.06 KB

README.md

File metadata and controls

42 lines (27 loc) · 3.06 KB

Team Pong

Description

This is a variant of the popular arcade game Pong which you can show on a projector or a large screen and play in larger groups, while not requiring everyone to participate all the time.

A board of the game Pong

People can join via the link on the top of the board and play against each other. Each player is assigned a random one of two teams. Every player can move the platform of their respective team. The catch is that for each move command sent by a player, the team platform only moves a little and that players can only send a move command every so often (which is every 1.5 seconds by default). This makes the game more about coordination of players.

Player controls with up and down arrow and Team B written on top Player controls with up and down arrow grayed out because they are on cooldown

Installation

See docs/installation.md for installation instructions.

Opening and Configuring Board

See docs/usage.md for instructions on how to open the board and configure it.

Game Mechanics

The game works a little different from the original Pong game:

  • The more people there are in a team, the better the team can move the platform. This is because the platform moves a little for each move command sent by a player and should encourage different people (e.g. at an event) to play together.
  • The balls and the platforms move a lot slower in order for players to be able to coordinate.
  • There can be multiple balls in the game.
  • The balls bounce off of platforms in similar fashion to the original Pong game, but they always keep their direction in y-direction. Otherwise, the bounce algorithm closely follows the ideas of this Stack Exchange post.
  • The game randomly decides the team of each joining player. However, it tries to keep the teams balanced by assigning players to the team with the fewest players with a probability of 80%.
  • After 60 seconds of inactivity, players will become inactive as indicated on the top of the clients. This means they are not counted towards the player count necessary to start a game. As soon as a player taps an arrow, they will be active again.

Demo

Here's a quick demo (if too many people use it, it won't work any more though, so please host it yourself): https://pong.pschwind.de

Contributing

If you want to contribute, you can open a pull request. If you want to add a new feature, please open an issue first to discuss it.

Translations

To add a new language, create a new file in frontend/src/translations with the language code as the filename (e.g. de.json for German). Then, copy the contents of en.json into the new file and translate the strings. You can then add the language to the frontend/src/translations/translationInit.js file.

License

This project is licensed under the MIT License. See the LICENSE file for details.