Awesome
Gunslinger is a header-only c99 framework for multimedia applications.
Features
- 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, Immediate Mode GUI, Graphics Extensions, and a Meta Data Reflection Utility.
- Supports a growing list of platforms:
Windows
,OSX
,Linux
,Android
, andHTML5
currently with plans to addUWP
,RPI
,IOS
. - Graphics pipeline follows an explicit rendering framework, making it easier to write for modern backends, such as
Vulkan
/DX12
/Metal
. - 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.
Documentation
Basic Example
A simple c99 'Hello World' example using gunslinger:
#define GS_IMPL
#include <gs.h>
gs_app_desc_t gs_main(int32_t argc, char** argv)
{
return (gs_app_desc_t){0};
}
Projects using GS
Drop Down Terminal Util
https://github.com/Samdal/gs_ddt_ex
Roadmap
- Support iOS/RPI/UWP backends
- Support Vulkan/Metal/DX12 backends
- Language Ports: (Python, JS, Rust, C#)
- Add platform-independent threading utils to framework
- Job System Util
- Write more docs for github
- Hot-reload util
- Remove all externals from core framework
- Add more texture formats