status
My name is r-lyeh and I code videogames
This repo is meant to be a semi-conclusive list of projects in which the author is / has participated in.
- The list below is archived. A newer list can be found here.
- The tools below are Public Domain.
- The specifications below are Public Domain (or CC0 licensed), written in Markdown.
- The libraries below are Public Domain (or ZLIB/LibPNG licensed), written in C++.
- Most of my source code is (where possible) cross-platform, header-only and self-contained, and have been used in commercial games. It is therefore pretty much battle-tested, but use it at your own risk. No warranties provided.
- Extension convention:
.md
for documents,.hpp/.cpp
for sources,.cc
for samples and.cxx
for tests and benchmarks.
Released
Fully released / tested; more features may be incoming, but these are considered to be in a 'stable' state.
Tags | Repository |
---|---|
io | Apathy (C++03) lightweight path/file/mstream/mmap IO library. |
debug | Assume (C++03) smarter assert replacement for LHS/RHS values. |
tool, image | Attila (Win32) tiny atlas texture/image packer tool. |
security | Auth (C++03) simple, lightweight and safe client-server authentication system. |
encoding | Base (C++03) base91/base85/base64 de/encoders. |
serial | Bourne (C++11) lightweight JSON de/serializer. |
user-interface | Bubble (C++11) simple and lightweight dialog library for Windows. |
compression | Bundle (C++03,C++11) an embeddable compression library that supports 23 algorithms and 2 archivers. |
compression,tool | Bundler (Win32,OSX) command-line archiver that supports 23 compression algorithms. |
data-structures | Burg (C++11) simple burg linear predictor. |
hashing | Cocoa (C++11) hashing library that provides interface for CRC32, CRC64, GCRC, RS, JS, PJW, ELF, BKDR, SBDM, DJB, DJB2, BP, FNV, AP, BJ1, MH2, SHA1, SFH. |
encoding | Collage (C++03) lightweight library to diff and patch arbitrary data. |
unit-testing | Dessert (C++11)🌟 lightweight unit-testing framework. |
debug | Dollar (C++11) portable/generic CPU profiler with chrome://tracing support. |
debug | DrEcho (C++11) DrEcho spices your terminal up. |
debug | Error64 (C,C++) Handle custom 64-bit error codes, with extended meta-info |
gameplay | Flare (C++03) lightweight C++ API to deal with digital signals/logical buttons. |
network | Flow (C++11) lightweight network downloader with native fallbacks aimed to gamedev. |
text | Fmt11 (C++11) tiny format/mustache templating library. |
gameplay | Frodo (C++11) lightweight ring dependency framework. |
gameplay | FSM (C++11) lightweight Hierarchical/Finite-State Machine (H/FSM) class. |
io | GetOpt (C++11) simple command-line options handler. |
io | Giant (C++11) tiny library to handle little/big endianness. |
debug | Heal (C++03) lightweight library to aid and debug applications. |
render | Hertz (C++11) simple framerate locker. |
input | Hyde (C++03) lightweight and simple Human Inferface Device (HID) library. |
hashing | ID (C++11) simple compile-time hasher and sequential ID generator. |
mesh, tool | Img2Sky (Win32) vertex-color mesh builder tool for skyboxes and static geometry. |
io | Journey (C++11) lightweight append-only, header-less, journaling file format. |
spec | JXML loss-less representation of JSON in XML. |
spec | JXMLex expressive representation of JSON in XML. |
network | Knot (C++03) lightweight and simple TCP networking C++ library. |
gameplay | Kult (C++11) lightweight entity/component/system library. |
gameplay | Live (C++11) automatic reloader of variables, featuring type inference. |
data-structures | LRU (C++11) lightweight LRU cache structure for list and map<K,V> containers. |
gameplay | Memo (C++11) simple and lightweight factory class, featuring automatic type casting. |
stats | Metrics (C++11) table metrics w/ benchmarking, unit conversions in CSV,TSV,ASCII,markdown. |
io | mINI (C++11) very minimal .INI reader/writer. |
data-structures | Oak (C++03) simple and lightweight tree container. |
design | Pitch (Markdown) forkable game pitch template. |
spec,tool,image | Pug pug, png with a twist: lossy image format. |
network | Route66 (C++03) lightweight embeddable HTTP server. |
io | Quant (C++03) quantization suite to/from half-floats, s/unorm bytes, quats and vec3s. |
time | Sand (C++11) lightweight timer controller. |
script | Scriptorium⭐ Game Scripting Languages benchmarked. |
data | Sentry (C++11) lightweight data monitor. |
hashing | Sole (C++11) lightweight library to generate universally unique identificators (UUID) both v1 and v4. |
image | Spot (C++11)🌟 compact and embeddable RGBA/HSLA library that supports WEBP, JPG, progressive JPG, PNG, TGA, DDS DXT1/2/3/4/5, BMP, PSD, GIF, PVR2/3 (ETC1/PVRTC), KTX (ETC1/PVRTC), PKM (ETC1), HDR, PIC, PNM (PPM/PGM), CRN, PUG, FLIF, CCZ, EXR and vectorial SVG files. |
databases | SQLight (C++11) lightweight MySQL client. |
misc | TinyBits (C,C++) tiny bits and useful snippets. |
debug | Tracey (C++11) lightweight and simple C++ memory leak finder with no dependencies. |
data-structures | Trie (C++11) lightweight and simple autocompletion data structure. |
animation | Tween (C++03) lightweight easing library. |
data-structures | Unordered_map (C++11) portable header for std::unordered_map<K,V> template. |
debug | Unifont (C++11) embeddable console 1bpp font. |
spec, io | Unify (C++11) a function to normalize resouce identificators. |
network | VLE (C99, C++03) simple variable-length encoder/decoder. |
audio | Wave (C++11) lightweight 3D sound wrapper for OpenAL that supports OGG and MusePack decoding. |
utils | Warp (C++11) a handy string interpolator. |
text | Wire (C++11)🌟 a drop-in std::string replacement with extended functionality and safe C/C++ formatters. |
Contributions
Forked projects or in collaboration with other coders.
- jsonxx -- lightweight JSON parser written in C++.
- IMGUI -- OpenGL 2/3 Immediate Mode GUI toolkit.
- units -- numerical quantities with units (C++03).
- unlzma -- A very compact LZMA decoder (C++03).
- eval -- very simple expression evaluator using shunting-yard algorithm and RPN (C++11).
Personal
These are mostly released experiments, but are geared towards personal use; as such, they may be of very limited use during development.
- Bridge -- a standard C++/boost compatibility layer, plus a few utils (C++11/C++03).
- Cash-of-clans -- a free re-implementation of a working game economy system.
- Crawler -- a quick prototiping platform for Windows (C++11).
- CLDR -- compact data from the Unicode Common Locale Data Repository.
- Codex -- lightweight and simple C++ library to escape, unescape, read, write and convert from/to different encoding charsets.
- Duty -- lightweight task manager for parallel coroutines and serial jobs (C++11).
- Emojis -- emojis, atlased and indexed.
- RGB332 (tool) -- custom uniform RGB332 palette.
- Variant -- varying class that clones javascript behaviour as much as possible (C++11).
- Malloc-survey -- benchmark for different memory allocators.
- Test-physics -- benchmark for different physics integrators.
In Progress
Proof-of-concepts until stabilised, currently in mid/active development.
- AVA -- tiny 3D game engine in C++, with C and Lua interfaces.
- Jabba -- (C++11).
- Play -- easy alternative to scripting in gameplay code.
- Solace -- modern console replacement.
- Wake -- a no-brainer asset build system. Designed for zombies.
- Watchmen -- asset dependency system for games in run-time.
- Juice --
- Graybox --
- Drop --
- Checklist --
Planned
Yet to be committed, removed and/or finished. Someday.
On Hold / Abandoned
These are either fully abandoned, or are suffering from an existential crisis.
- FortFont -- collection of western, CJK and iconographic fonts free for commercial usage.
- Eve -- deprecated game engine where graphics are low priority (C++11).
- Moon9 -- old game engine.
- Stringbase -- collaborative effort aimed to translate common texts found in videogames and regular apps.
- Wood -- old tree data structure.
Resume
For completeness.
- Vitae -- my self-compilable C++ resume.