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.

89 lines
3.3 KiB
Markdown

3 months ago
# Box Brawl
[![Donate via LiberaPay](https://img.shields.io/liberapay/receives/rocketnine.space.svg?logo=liberapay)](https://liberapay.com/rocketnine.space)
[![Donate via Patreon](https://img.shields.io/badge/dynamic/json?color=%23e85b46&label=Patreon&query=data.attributes.patron_count&suffix=%20patrons&url=https%3A%2F%2Fwww.patreon.com%2Fapi%2Fcampaigns%2F5252223)](https://www.patreon.com/rocketnine)
2 months ago
Multiplayer [fighting](https://en.wikipedia.org/wiki/Fighting_game) video game featuring [rollback](https://en.wikipedia.org/wiki/Netcode#Rollback) networking
3 months ago
2 months ago
This game was created for the [Fighting Jam #001](https://itch.io/jam/fight-jam-001) game jam.
3 months ago
## Play
2 months ago
### Browser
[**Play in your browser**](https://rocketnine.itch.io/box-brawl)
Networking is not available in the browser version.
### Download
[**Download for Windows and Linux**](https://rocketnine.itch.io/box-brawl#download)
To play against remote opponents, you will need to ensure UDP traffic is
allowed between both of your computers.
This usually involves port forwarding and ensuring firewalls are disabled on
both computers.
You can also use programs like [ZeroTier](https://www.zerotier.com) and [Hamachi](https://vpn.net)
to create virtual networks between you and an opponent. The network will appear
to the system as a local network. Because of this, most security restrictions
are bypassed, and port forwarding is usually not required.
Only multiplayer over a local network (whether truly local or virtual) has been
tested successfully.
2 months ago
#### Multiplayer guide
You and your opponent will need to choose a port on which you will accept UDP
traffic from the other person. This is referred to as your local port,
which can specified when playing Box Brawl using the `--local` argument.
In the following examples, user A has the IP address `1.1.1.1` and user B has
the IP address `2.2.2.2`. User A will listen for a connection on port `17000`.
User B will listen for a connection on port `19000`.
Simply replace the example IP addresses and ports with actual IP addresses and
ports, and run the command specified (depending on whether you are the host or
the guest).
User A (who has IP `1.1.1.1`) should run the following command:
```
boxbrawl --local 17000 --host 2.2.2.2:19000
```
User B (who has IP `2.2.2.2`) should run the following command:
```
boxbrawl --local 19000 --connect 1.1.1.1:17000
```
In the above commands, each user first specifies which port to listen for
connections from the opponent, then specifies the IP address and port where
their opponent is listening for connections.
3 months ago
### Compile
Install the dependencies listed for [your platform](https://github.com/hajimehoshi/ebiten/blob/main/README.md#platforms),
then run the following command:
`go install code.rocketnine.space/tslocum/boxbrawl@latest`
Run `~/go/bin/boxbrawl` to play.
## Support
Please share issues and suggestions [here](https://code.rocketnine.space/tslocum/boxbrawl/issues).
## Credits
- [Trevor Slocum](https://rocketnine.space) - Game design and programming
- [node punk](https://open.spotify.com/artist/15eFpWQPNRxB89PnFNWvjU?si=z-jfVwYHTxugaC-BGZiyNg) - Music
3 months ago
## Dependencies
- [ebitengine](https://github.com/hajimehoshi/ebiten) - Game engine
- [ggpo-go](https://github.com/assemblaj/ggpo) - Rollback networking library
3 months ago
- [gohan](https://code.rocketnine.space/tslocum/gohan) - Entity Component System framework