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. ๐นโจ
๐ฌ Click to watch the gameplay clip
gameplay.mp4
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
| 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 |
- ๐ฆ Rust with the repository toolchain installed โ this project uses
nightly - ๐ฎ A graphics-capable machine supported by Bevy/wgpu
Clone the garden:
git clone https://github.com/NiiightmareXD/golab.git
cd golabWant to just vibe, run around, and test the game without a server? Launch the client by itself:
cargo run -p client --releaseYou can play offline locally โ the server is only needed when you want multiplayer blob chaos. ๐ซง
cargo run -p server --releaseThe default server address is:
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:
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, not0.0.0.0itself.
In another terminal:
cargo run -p client --releaseOpen 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.
| Piece | Tech |
|---|---|
| Engine | Bevy |
| Physics / collision | Avian3D |
| Networking | Lightyear |
| Language | Rust 2024 / nightly |
| License | MIT |
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 ๐น
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
If Golab made you smile, helped you learn, or gave you the sudden urge to duel cartoon blobs, you can support the project here:
Every little bit helps fuel more Rust, more Bevy, more blob polish, and more Claude Code credits. ๐ค๐ธ๐น
Golab uses lovely third-party assets from generous creators. See CREDITS.md for attribution and license details.
Golab's source code is released under the MIT License.
Third-party assets are licensed separately by their original creators. See CREDITS.md for attribution and asset license details.
Made with ๐ฆ Rust
