/pico_headers

Single-header, cross-platform libraries for game development

Primary LanguageC

pico_headers

A collection of cross-platform single header libraries written in C.

Library Docs Description Version
pico_b64 docs Base64 encoding/decoding library 0.1
pico_ecs docs Pure and simple ECS 2.3
pico_gfx docs Graphics library based on sokol_gfx 0.1
pico_gl docs Graphics library based on OpenGL 0.1
pico_hit docs 2D collision detection (SAT) and ray casting 0.2
pico_log docs Minimal and flexible logging framework 1.0
pico_math docs 2D math library for games 2.0
pico_qt docs A simple quadtree library 1.1
pico_time docs Simple time management library 0.1
pico_unit docs Bare-bones unit testing framework 1.1

These libraries are as-is, however, suggestions for improvements or bug fixes are appreciated. Please raise an issue before submitting a PR with new features. Bug fixes are always welcome!

The API of libraries with versions less than 1.0 are subject to changes without warning. These changes might crash your code or cause other problems. Libraries with versions equal to or greater than 1.0 are more stable and will generally only be changed when adding features or making bug fixes. Changes may still break the API, but will be limited in scope and should not introduce unpredictable behavior at runtime.

The examples and tests compile and run on Linux (GCC), Windows (MSYS2/MinGW64), and MacOS (Clang). The only exception is the Rogue demo, which only compiles/runs on Linux and MacOS.

Most libraries are licensed under your choice of zlib or the public domain. The remaining libraries are licensed under the MIT license.

Deprecated libraries (pico_sat and the old pico_math) can be found here

I give my thanks to Randy Gaul for inspiration, answering my questions, and the template for this project.