explaingit

niiightmarexd/golab

17RustAudience · developerComplexity · 4/5ActiveLicenseSetup · hard

TLDR

Goofy first-person multiplayer arena shooter written in Rust on the Bevy engine, with Avian3D physics and Lightyear networking.

Mindmap

mindmap
  root((golab))
    Inputs
      WASD movement
      Mouse aim and shoot
      Server address
    Outputs
      Multiplayer matches
      First or third person view
      In-game HUD
    Use Cases
      Run offline practice match
      Host a LAN multiplayer game
      Study Bevy and Lightyear together
    Tech Stack
      Rust nightly
      Bevy engine
      Avian3D physics
      Lightyear netcode
      wgpu

Things people build with this

USE CASE 1

Run cargo run -p client --release for an offline arena practice match

USE CASE 2

Run both client and server crates for LAN multiplayer with friends

USE CASE 3

Study a real Bevy plus Lightyear multiplayer codebase as a template

USE CASE 4

Open a pull request adding new weapons, maps, or networking polish

Tech stack

RustBevyAvian3DLightyearwgpu

Getting it running

Difficulty · hard Time to first run · 1h+

Needs the nightly Rust toolchain and a wgpu-compatible GPU, and external hosting requires editing a SERVER_ADDR constant in shared/src/lib.rs.

MIT for the source code, so you can use, modify, and ship it commercially with attribution, while third-party assets keep their own listed licenses.

In plain English

Golab is a small, cartoonish multiplayer shooter written in Rust. The author describes it as a goofy arena game where everything is round and blobby, with low poly cute characters and tiny glowing red blob bullets. The name comes from a playful chain of word association involving blobs and Persian rose water, which sets the tone for the project. The gameplay features listed in the README cover first person shooting with classic movement extras like jump, crouch, and dash, plus a key to toggle between first and third person view. There is a heads up display with health, respawn, ping, and player name tags. An in game settings menu exposes mouse sensitivity, audio, graphics quality, shadows, antialiasing, and motion blur. The control table is the standard WASD, mouse aim, left click to shoot, right click to dash, space to jump, and Escape to open the menu. Under the hood the game uses the Bevy engine, which is a Rust game engine built around an entity component system pattern. Physics and collisions come from Avian3D, and the multiplayer netcode comes from a library called Lightyear. The README notes that the project needs the nightly Rust toolchain and a graphics capable machine that Bevy and wgpu support. To try it, you clone the repo and run cargo run -p client --release for an offline practice mode, or also start cargo run -p server --release in another terminal for multiplayer. The default server address is 127.0.0.1 on port 5000. To host for LAN or external players, the README tells you to edit a SERVER_ADDR constant in shared/src/lib.rs to bind 0.0.0.0:5000 and to share the host machine's actual LAN or public IP with joiners. The project is laid out as a Cargo workspace with separate client, server, and shared crates, plus an assets folder. The source code is MIT licensed, while third party assets keep their own licenses listed in a CREDITS file. The author invites pull requests for bugs, art, sound, gameplay tuning, networking polish, and documentation, and links to a GitHub Sponsors page for support.

Copy-paste prompts

Prompt 1
Walk me through running golab in multiplayer mode across two machines on a LAN
Prompt 2
Explain how the client, server, and shared crates split responsibilities in this Cargo workspace
Prompt 3
Show how Lightyear and Avian3D plug into a Bevy app inside golab
Prompt 4
Edit SERVER_ADDR in shared/src/lib.rs to bind 0.0.0.0:5000 for external players
Open on GitHub → Explain another repo

Generated 2026-05-22 · Model: sonnet-4-6 · Verify against the repo before relying on details.