A cross-platform, top-down 2D space shooter written in C using only system libraries.
- Window management: Win32 (Windows), Xlib (Linux)
- Rendering: OpenGL
- Audio: XAudio2 (Windows), ALSA/pthread (Linux)
- Gamepad: XInput (Windows), evdev (Linux)
space-shooter.c
is a cross-platform, top-down 2D space shooter written in standard C11 using only system libraries (with system libraries defined as anything included in the C standard library or supported operating systems). space-shooter.c
has been tested on Windows 10 and Ubuntu Linux 16.04. This project drew heavy inspiration from Handmade Hero and pacman.c.
The design and architecture of space-shooter.c
is described here [WIP].
I am not a professional game developer, nor a professional C programmer, so the design may be unconventional or sub-optimal in many ways. Happy to take feedback from any pros out there!
Windows
- In a shell with cl set up, run
build.bat
for a debug build orbuild.bat release
for an optimized build. - Run
space-shooter.exe
from thebuild/
directory.
Linux
- Make sure development headers for the Linux kernel, Xlib, glx and ALSA are installed.
- E.g. on Ubuntu, run the following:
sudo apt install linux-libc-dev libx11-dev mesa-common-dev libasound2-dev
- E.g. on Ubuntu, run the following:
- Run
make
for a debug build ormake release
for an optimized build. - Run
./space-shooter
from thebuild/
directory.
I hope to work on a Mac platform layer as soon as I have a Mac machine to work on.
Since this project is intended as a personal challenge, I am not accepting external contributions at this time. I am very open to feedback, however, so feel free to open an issue for anything that needs fixing.