finds.dev← search

// the find

JacobLinCool/Bang-C

★ 26 · C · updated Jun 2026

Bang! the board game C implementation, including game manager, computer player, backend websocket server, and frontend web client.

A full-stack C implementation of the Bang! card game with a WebSocket backend and Vue 3 frontend. It's a complete multiplayer game server with computer players, not just a toy — but it's clearly a university project (the PDF in the repo root is a dead giveaway). For C learners who want to see a non-trivial multi-threaded server with a real frontend, this is a decent reference.

The 4-layer architecture (utils → core → transport → view) is cleanly separated for a C project, which usually devolves into one giant file. Using libwebsockets for the transport layer instead of rolling raw sockets is a sensible choice that saves real pain. The Docker setup and GitHub Actions CI mean someone actually thought about reproducibility. The Vue 3 frontend with proper TypeScript and i18n (en/zh) is more polished than you'd expect from a game backend written in C.

The AI player lives in ai.h with no accompanying .c file visible — header-only C logic is a code smell that suggests the 'computer player' might be thin. No test coverage beyond a single room.c test file; the game logic itself appears untested. The multithreading model (main → server thread → game manager thread) has no visible synchronization primitives in the headers, which means races are likely lurking. Last real activity is 2022 under the hood despite recent pings — 37 forks suggest it's being assigned as coursework, not maintained.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →