You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
33 lines
1.9 KiB
Markdown
33 lines
1.9 KiB
Markdown
## Netpong - A Pong game for the internet era
|
|
|
|
__Netpong__ is a network-enabled Pong game, written in C++. It enables two players to play against each other, provided an IP address and a port. It also supports a single-player mode.
|
|
|
|
## How it works
|
|
|
|
The game has only one runtime dependency: The [raylib](https://www.raylib.com/) graphics system. In order to write idiomatic C++, I chose to use the [raylib-cpp](https://robloach.github.io/raylib-cpp/) wrapper, which provides an object-oriented interface to the Raylib library. However, this wrapper is bundled with the project, and is thus not required to be installed.
|
|
|
|
## Building
|
|
|
|
This application uses [Meson](https://mesonbuild.com/) as a build system. To build the application:
|
|
1. Install __meson__ from the link above.
|
|
2. Install __raylib__ from the link above (THIS IS OPTIONAL, SEE STEP 5)
|
|
3. Set up the build directory with the `meson setup build` command.
|
|
4. Compile the application, with the existing raylib installation, using `meson compile -C build`.
|
|
5. If you don't have raylib installed, you can create a statically linked version of the library on Linux by running the following commands:
|
|
|
|
```
|
|
meson configure -Ddefault_library=static build/
|
|
meson compile -C build -Ddefault_library=static
|
|
```
|
|
|
|
## Running
|
|
|
|
- To run in single-player mode:
|
|
- Run the application with no arguments: `build/pong`
|
|
- Left paddle is controlled with `W` and `S` keys, right paddle is controlled with `Up` and `Down` arrow keys.
|
|
|
|
- To run in multi-player mode:
|
|
- One player runs the application in Server mode, specifying their IP address and a port: `build/pong -S <ip_address> <port>`
|
|
- The other player connects to the first player by running in Client mode, specifying the first player's IP address and port: `build/pong -C <ip_address> <port>`.
|
|
- The server controls the left paddle by default (WIP to allow the user to modify this), and the client controls the right paddle.
|