# tfps

`tfps` is a Rust terminal LAN FPS prototype. It renders a Wolfenstein-style
raycaster entirely with terminal characters and synchronizes a small deathmatch
over UDP.

## Run

Install from crates.io:

```bash
cargo install tfps
```

Start a server:

```bash
tfps server
```

Join from the same machine:

```bash
tfps join local --name A
```

Join from another machine on the same LAN:

```bash
tfps join 192.168.x.x:4000 --name B
```

Use the server machine's real Wi-Fi/LAN IPv4 address. It is usually `192.168.x.x`,
`10.x.x.x`, or `172.16.x.x`-`172.31.x.x`; do not use `198.18.x.x` hints from VPN
or virtual adapters.

If a firewall prompts for UDP port `4000`, allow it for LAN play.

## Controls

- `W` / `S`: move forward/back
- `A` / `D`: strafe
- `Q` / `E` or left/right arrows: turn
- `Space`: fire
- `Esc`: quit

## V0.1 Rules

- Up to 4 players.
- One pistol, hitscan, 34 damage per shot.
- 350ms fire cooldown.
- 100 health.
- 3 second respawn.
- Kill grants 1 score.

## Checks

```bash
cargo fmt --check
cargo clippy -- -D warnings
cargo test
tfps --help
```
