Need help with gunslinger?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

541 Stars 37 Forks BSD 3-Clause "New" or "Revised" License 605 Commits 12 Opened issues


C99, header-only framework for games and multimedia applications

Services available


Need anything else?

Contributors list

gunslinger GitHub Discord GitHub top language

Gunslinger is an stb-style, header-only c99 framework for multimedia applications.


  • Header-only: drag-drop into any project without any additional compiling required.
  • All externals included in the framework itself.
  • Simple API inspired by sokol headers.
  • Provides core framework for quickly developing multimedia applications: Platform, Graphics, Audio layers.
  • Provides custom utilities for math and generic data structures.
  • Optional helper utilties are provided, such as OpenGL 2.0-style immediate-mode rendering, asset management system, physics util, and a data reflection utility.
  • Supports a growing list of platforms:
    , and
    currently with plans to add
  • Graphics pipeline follows an explicit rendering framework, making it easier to write for modern backends, such as
  • All core layers can be fully swapped out with custom user implementations.
  • Large collection of examples for quickly getting started.
  • An available project template for various platforms and build systems to get started with a blank gunslinger project.
  • Official framework used for all Game Engineering YouTube videos.


Basic Example

A simple c99 'Hello World' example using gunslinger:

#define GS_IMPL

gs_app_desc_t gs_main(int32_t argc, char** argv) { return (gs_app_desc_t){0}; } </gs.h>


  • Support Android/iOS/RPI/UWP backends
  • Support Vulkan/Metal/DX12 backends
  • Add support for more texture sampler types: 1D, 3D, Cube Maps, Arrays
  • Material Asset utils
  • Language Ports: (Python, JS, Rust, C#)
  • Add platform-independent threading utils to framework
  • MRT
  • Job System Util
  • Write more docs for github
  • Hot-reload util
  • Remove all externals from core framework
  • Add more texture formats (including compressed)

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.