An open API service indexing awesome lists of open source software.

https://github.com/niiightmarexd/golab

Goofy, cartoonish, open-source multiplayer shooter written in Rust with Bevy ๐Ÿ‘ป
https://github.com/niiightmarexd/golab

3d 3d-game bevy bevy-game ecs game game-dev game-development gamedev games indie-game indiegame multiplayer multiplayer-game multiplayer-games multiplayer-online-game rust shooter shooter-game

Last synced: 11 days ago
JSON representation

Goofy, cartoonish, open-source multiplayer shooter written in Rust with Bevy ๐Ÿ‘ป

Awesome Lists containing this project

README

          

# ๐ŸŒน Golab โ€ƒ [![Licence]][Licence URL] [![Rust]][repository] [![Bevy]][Bevy URL] [![Multiplayer]][Lightyear URL] [![Sponsors]][Sponsors URL]

[Licence]: https://img.shields.io/github/license/NiiightmareXD/golab
[Licence URL]: https://github.com/NiiightmareXD/golab/blob/main/LICENSE
[Rust]: https://img.shields.io/badge/Rust-nightly-orange?logo=rust
[repository]: https://github.com/NiiightmareXD/golab
[Bevy]: https://img.shields.io/badge/Bevy-0.18.1-8A2BE2
[Bevy URL]: https://bevyengine.org/
[Multiplayer]: https://img.shields.io/badge/Multiplayer-Lightyear-blue
[Lightyear URL]: https://github.com/cBournhonesque/lightyear
[Sponsors]: https://img.shields.io/github/sponsors/NiiightmareXD
[Sponsors URL]: https://github.com/sponsors/NiiightmareXD

**Golab** is a goofy, cartoonish, open-source multiplayer shooter written in Rust with Bevy โ€” where everything is round, soft, blobby. ๐Ÿ”ซ๐Ÿซง๐ŸŒน

The name comes from a silly little chain of thoughts:

> Everything looks like a **blob** โ†’ blob sounds like **Golab** โ†’ Golab brings Persian rose water vibes โ†’ boom, tiny chaotic **Golab** shooter. ๐ŸŒนโœจ

![Golab preview](assets/Github/preview.jpg)

๐ŸŽฌ Click to watch the gameplay clip

https://github.com/user-attachments/assets/13641e96-2cb7-432f-8baf-5b4d6ce82ddd

---

## โœจ What is this?

Golab is a fast little arena shooter with squishy cartoon energy:

- ๐Ÿซง **Blob-like characters** with cute low-poly/cartoon styling
- ๐Ÿ”ซ **First-person shooting** with tiny glowing red blob bullets
- ๐Ÿƒ **Movement tech**: jump, crouch, dash, and zip around the arena
- ๐Ÿ‘€ **First-person / third-person toggle** for maximum blob appreciation
- ๐ŸŒ **Multiplayer client + dedicated server** powered by Lightyear
- โค๏ธ **Health, respawn, ping, name tags, and HUD indicators**
- โš™๏ธ **In-game settings** for mouse sensitivity, audio, graphics, shadows, AA, motion blur, and more
- ๐Ÿฆ€ **Built in Rust** because fearless concurrency pairs nicely with fearless blobbery

---

## ๐ŸŽฎ Controls

| Action | Input |
| --- | --- |
| Move | `W` `A` `S` `D` |
| Look around | Mouse |
| Shoot | Left mouse button |
| Dash | Right mouse button |
| Jump | `Space` |
| Crouch | `Left Ctrl` / `Right Ctrl` |
| Toggle first/third person | `R` |
| Open menu | `Esc` |
| Switch join fields | `Tab` |

---

## ๐Ÿš€ Quick start

### Prerequisites

- ๐Ÿฆ€ Rust with the repository toolchain installed โ€” this project uses `nightly`
- ๐ŸŽฎ A graphics-capable machine supported by Bevy/wgpu

Clone the garden:

```bash
git clone https://github.com/NiiightmareXD/golab.git
cd golab
```

### Offline blob mode

Want to just vibe, run around, and test the game without a server? Launch the client by itself:

```bash
cargo run -p client --release
```

You can play offline locally โ€” the server is only needed when you want multiplayer blob chaos. ๐Ÿซง

### Multiplayer blob mode

#### 1. Start the server

```bash
cargo run -p server --release
```

The default server address is:

```text
127.0.0.1:5000
```

Want to bind the server somewhere else, like `0.0.0.0:5000` for LAN/external connections? Change `SERVER_ADDR` in `shared/src/lib.rs`:

```rust
pub const SERVER_ADDR: SocketAddr = SocketAddr::new(IpAddr::V4(Ipv4Addr::UNSPECIFIED), 5000);
```

> When binding to `0.0.0.0`, remote clients should join using the host machine's LAN/public IP address, not `0.0.0.0` itself.

#### 2. Start the client

In another terminal:

```bash
cargo run -p client --release
```

Open the menu, join the server, choose your blob name, and enter arena. ๐ŸŒน๐Ÿซก

> Tip: run multiple clients locally if you want to test multiplayer chaos on one machine.

---

## ๐Ÿงฐ Tech stack

| Piece | Tech |
| --- | --- |
| Engine | [Bevy](https://bevyengine.org/) |
| Physics / collision | [Avian3D](https://github.com/Jondolf/avian) |
| Networking | [Lightyear](https://github.com/cBournhonesque/lightyear) |
| Language | Rust 2024 / nightly |
| License | MIT |

---

## ๐Ÿ“ Project layout

```text
golab/
โ”œโ”€โ”€ assets/ # Models, sounds, textures, environment maps, GitHub media
โ”œโ”€โ”€ client/ # Bevy game client
โ”œโ”€โ”€ server/ # Dedicated multiplayer server
โ”œโ”€โ”€ shared/ # Shared protocol, messages, constants
โ”œโ”€โ”€ Cargo.toml # Workspace config
โ”œโ”€โ”€ CREDITS.md # Third-party asset credits
โ””โ”€โ”€ README.md # You are here ๐ŸŒน
```

---

## ๐ŸŒฑ Contributing

Pull requests, issues, ideas, bug reports, balancing suggestions, and ridiculous blob-related feature requests are welcome.

If you want to help, good places to start are:

- ๐Ÿ› report bugs
- ๐ŸŽจ improve assets or animations
- ๐Ÿ”Š add satisfying blob sounds
- ๐Ÿ•น๏ธ tune gameplay feel
- ๐ŸŒ improve networking polish
- ๐Ÿ“š improve docs

---

## ๐Ÿฅค ~~Buy me a coffee~~ Buy me Claude

If Golab made you smile, helped you learn, or gave you the sudden urge to duel cartoon blobs, you can support the project here:

[![GitHub Sponsors](https://img.shields.io/badge/GitHub-Sponsor%20the%20blob-ff69b4?logo=github)](https://github.com/sponsors/NiiightmareXD)

Every little bit helps fuel more Rust, more Bevy, more blob polish, and more **Claude Code credits**. ๐Ÿค–๐Ÿ’ธ๐ŸŒน

---

## ๐Ÿ™ Credits

Golab uses lovely third-party assets from generous creators. See [CREDITS.md](CREDITS.md) for attribution and license details.

---

## ๐Ÿ“œ License

Golab's source code is released under the [MIT License](LICENSE).

Third-party assets are licensed separately by their original creators. See [CREDITS.md](CREDITS.md) for attribution and asset license details.

---


Made with ๐Ÿฆ€ Rust