status

November 20, 2019 ยท View on GitHub

Join the chat at DiscordApp

My name is r-lyeh and I code videogames :neckbeard:

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.

TagsRepository
ioApathy (C++03)
lightweight path/file/mstream/mmap IO library.
debugAssume (C++03)
smarter assert replacement for LHS/RHS values.
tool, imageAttila (Win32) :star2:
tiny atlas texture/image packer tool.
securityAuth (C++03)
simple, lightweight and safe client-server authentication system.
encodingBase (C++03)
base91/base85/base64 de/encoders.
serialBourne (C++11)
lightweight JSON de/serializer.
user-interfaceBubble (C++11)
simple and lightweight dialog library for Windows.
compressionBundle (C++03,C++11):star2:
an embeddable compression library that supports 23 algorithms and 2 archivers.
compression,toolBundler (Win32,OSX)
command-line archiver that supports 23 compression algorithms.
data-structuresBurg (C++11)
simple burg linear predictor.
hashingCocoa (C++11):star2:
hashing library that provides interface for CRC32, CRC64, GCRC, RS, JS, PJW, ELF, BKDR, SBDM, DJB, DJB2, BP, FNV, AP, BJ1, MH2, SHA1, SFH.
encodingCollage (C++03)
lightweight library to diff and patch arbitrary data.
unit-testingDessert (C++11):star2:
lightweight unit-testing framework.
debugDollar (C++11)
portable/generic CPU profiler with chrome://tracing support.
debugDrEcho (C++11)
DrEcho spices your terminal up.
debugError64 (C,C++)
Handle custom 64-bit error codes, with extended meta-info
gameplayFlare (C++03)
lightweight C++ API to deal with digital signals/logical buttons.
networkFlow (C++11)
lightweight network downloader with native fallbacks aimed to gamedev.
textFmt11 (C++11)
tiny format/mustache templating library.
gameplayFrodo (C++11)
lightweight ring dependency framework.
gameplayFSM (C++11)
lightweight Hierarchical/Finite-State Machine (H/FSM) class.
ioGetOpt (C++11)
simple command-line options handler.
ioGiant (C++11)
tiny library to handle little/big endianness.
debugHeal (C++03)
lightweight library to aid and debug applications.
renderHertz (C++11)
simple framerate locker.
inputHyde (C++03)
lightweight and simple Human Inferface Device (HID) library.
hashingID (C++11)
simple compile-time hasher and sequential ID generator.
mesh, toolImg2Sky (Win32)
vertex-color mesh builder tool for skyboxes and static geometry.
ioJourney (C++11)
lightweight append-only, header-less, journaling file format.
specJXML
loss-less representation of JSON in XML.
specJXMLex
expressive representation of JSON in XML.
networkKnot (C++03)
lightweight and simple TCP networking C++ library.
gameplayKult (C++11):star2:
lightweight entity/component/system library.
gameplayLive (C++11)
automatic reloader of variables, featuring type inference.
data-structuresLRU (C++11)
lightweight LRU cache structure for list and map<K,V> containers.
gameplayMemo (C++11)
simple and lightweight factory class, featuring automatic type casting.
statsMetrics (C++11)
table metrics w/ benchmarking, unit conversions in CSV,TSV,ASCII,markdown.
iomINI (C++11)
very minimal .INI reader/writer.
data-structuresOak (C++03)
simple and lightweight tree container.
designPitch (Markdown)
forkable game pitch template.
spec,tool,imagePug
pug, png with a twist: lossy image format.
networkRoute66 (C++03)
lightweight embeddable HTTP server.
ioQuant (C++03)
quantization suite to/from half-floats, s/unorm bytes, quats and vec3s.
timeSand (C++11)
lightweight timer controller.
scriptScriptorium:star:
Game Scripting Languages benchmarked.
dataSentry (C++11)
lightweight data monitor.
hashingSole (C++11):star2:
lightweight library to generate universally unique identificators (UUID) both v1 and v4.
imageSpot (C++11):star2:
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.
databasesSQLight (C++11)
lightweight MySQL client.
miscTinyBits (C,C++)
tiny bits and useful snippets.
debugTracey (C++11):star2:
lightweight and simple C++ memory leak finder with no dependencies.
data-structuresTrie (C++11)
lightweight and simple autocompletion data structure.
animationTween (C++03)
lightweight easing library.
data-structuresUnordered_map (C++11)
portable header for std::unordered_map<K,V> template.
debugUnifont (C++11)
embeddable console 1bpp font.
spec, ioUnify (C++11)
a function to normalize resouce identificators.
networkVLE (C99, C++03)
simple variable-length encoder/decoder.
audioWave (C++11)
lightweight 3D sound wrapper for OpenAL that supports OGG and MusePack decoding.
utilsWarp (C++11):star2:
a handy string interpolator.
textWire (C++11):star2:
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.