Space Captain is a toy MMO project built in C as a technical exploration of Linux network programming, systems optimization and game design. The project will evolve from a foundational technical demo (v0.1.0) featuring CLI-based space combat with 1000's concurrent client connections, through platform-specific graphical clients (v0.2.0-0.4.0), to a persistent world with crew progression, economy, and manufacturing systems (v0.5.0+).
You can follow along at https://www.youtube.com/@SpaceCaptainDevLog
git clone https://github.com/mgreenly/space-captain.git
cd space-captian
make clean; PREFIX=$HOME/.local/bin make install
If you want everything to work the way it does for me you'll need these things installed.
- GNU coreutils package (assumed to be installed)
- Provides: mkdir, rm, ln, install, echo, cat, cut, date, readlink, basename, test/[ ]
- gcc - GNU C Compiler (used as CC)
- make - GNU Make build automation tool
- gdb - GNU Debugger (for debug-server and debug-client targets)
- clang-format - Code formatter (for fmt target)
- dot - Graphviz diagram generator (for generating arch.png)
- direnv - Environment variable management (.envrc file loads node_modules/.bin to PATH)
- npm - Node Package Manager (for install-tools and update-tools)
- find - File search utility (may be part of findutils)
- Shell built-ins: while, read, for loops
- HOME - User's home directory (via shell echo $$HOME)
- @google/gemini-cli
- @anthropic-ai/claude-code
- @openai/codex
To build Space Captain on Debian/Ubuntu systems, install these packages:
sudo apt update
sudo apt install build-essential gdb clang-format graphviz valgrind- build-essential - GCC compiler, make, and core build tools
- gdb - Debugger for debug targets
- clang-format - Code formatter for
make fmt - graphviz - Architecture diagram generation (
make dot) - valgrind - Memory leak detection (recommended)
