Code Notes
This is my page of miscellaneous notes, mostly relating to code — a list of open source c++ compatible libraries, blog roll, and so forth.
C(++) Compatible Libraries
This is my list of C & C++ libraries, that I either have already used or think I could be using one day. What most of them have in common is that they are released under some sort of permissive license that allows me to use them in games, mostly BSD and MIT. Definitely no GPL or LGPL.
Compression
- brotli - Added on 3 July 2020 - Not used
- lz4 - Added on 3 July 2020 - Not used
- snappy - Added on 3 July 2020 - Not used
- zstd - Added on 3 July 2020 - Not used
Data Structures
- c-ringbuf - Added on 30 September 2019 - Not used - ringbuffer implementation in c
- CTPL - Added on 25 May 2020 - Not used - C++ Thread pool library
GPU
- stdgpu - Added on 10 September 2020 - Not used - standard std lib utils on the gpu
GUI
- Dear ImGUI - Added on 20 September 2019 - Used for Fugl
- ImGuizmo - Added on 30 September 2019 - Not used
- ImGUI_markdown - Added on 21 November 2019 - Not used
- libUI - Added on 27 November - Not used 1* wxWidgets - Added on 27 November - Used many years ago
Logging
- Log.c - Added on 26 April - Not used - Simple logger implemented in C99
- SPDLog - Added on 26 April - Not used
Math
- Armadillo - Added on 28 September 2019 - Not used
- Eigen - Added on 28 September 2019 - Not used
- GLM - Added on 20 September 2019 - Used for Fugl
- Spherical Harmonics - Added on 25 October 2019 -
Meshes and 3D Shapes
- Assimp - Added on 18 June 2020 - Not used
- MeshOptimizer - Added 24 October 2019 - Not used
- Mesh Processing Library - Added on 25 October 2019 - Not used - C++ library and programs that demonstrate mesh processing techniques in computer graphics published at ACM SIGGRAPH in 1992–1998
- Tiny OBJ Loader - Added on 25 October 2019 - Not used
Misc
- CrossGuid - Added on 27 September 2019 - Used for Fugl
- Entt - Added on 27 October 2019 - Not used - C++ Entity system
- Meow Hash - Added on 16 August 2020 - Hash used for assets
- SimpleTest - Added on 23 September 2019 - As a minimal unit testing library with one header and one implementation file, this is definitely on my list of future things to test out.
- Single file libs - Added on 3 November 2019 - Nothings giant list of singlefile libs
- STB - Added on 23 September 2019 - Used for Fugl - A fantastic collection of one file libraries. For Fugl we are using the ogg vorbis decoder and the image loader.
- XBox Live Samples - Added on 25 October - Not used
- UTest - Added on 3 November 2019 - Not used - Single file unit test
- Wav2letter - Added on 30 September 2019 - Not used - Facebook’s speech to text library
Network
- CPP Rest SDK - Added on 25 October 2019 - Used on unnamed project as contractor - C++ Rest SDK
- Rollback Network SDK - Added on 1 November 2019 - Not used
Neural Networks
OS Abstractions
- DMon - Added on 25 October 2019 - Not used - Monitor directory changes
- SDL - Added on 20 September 2019 - Used for Fugl and M.U.L.E. Returns
Physics
- Physacs - Added on 16 August 2020 - 2D physics
Profiling
- Easy Profiler - Added on 31 October 2019 - Not used
- Optick - Added on 30 September 2019 - Not used
- Tracy - Added on 30 September 2019 - Not used
Rendering
- Angle - Added on 24 October 2019 - Not used
- Awesome Vulkan - Added on 17 March 2020
- Directx Graphics Samples - Added on 25 October 2019 - Samples for getting started with DirectX
- Directx Shader Compiler - Added on 25 October 2019 - Not used
- Shaders - Added on 12 November 2019 - Not used
- Swift Shader - Added on 24 October 2019 - Not used
- Volk - Added on 25 May - Used in Fugl - Library for dynamically loading vulkan functions
- Vulkan Guide - Added on 7 September 2019 - Vulkan Guide
- Vulkan Headers - Added on 26 September 2019 - Not used
- Vulkan Samples Repository - Added on 3 November 2019 - Not used
Scripting
- V8PP - Added on 21 November 2019 - Not used - Bind C++ functions and classes into V8 JavaScript engine
Serialization
- Cereal - Added on 19 September 2019 - Not used
- FlatBuffers - Added on 26 September 2019 - Not used
- Json - Added on 18 June 2020 - Not used - Json for c++
- Json.h - Added on 3 November 2019 - Not used
- LibExpad - Added on 7 November 2019 - Not used - XML parser
- ProtoBuffers - Added on 26 September 2019 - Not used
- NanoPB - Added 30 September 2019 - Protocol buffers implementation with minimal memory footprint
- RapidJSON - Added on 25 September 2019 - Used for Fugl
- TinyXML2 - Added on 7 November 2019 - Not used - XML parser
Shading Languages
- HLSL Parser - Added on 26 September 2020 - Not used - Parses a HLSL dialect and parses into GLSL, HLSL and MSL.
Sound
- Dr Libs - Added on 3 November 2019 - Not used - Simple flac, mp3 and wav players
- Jar - Added on 3 November 2019 - Not used - Simple Xm and Mod sound players
- MiniAudio - Added on 3 November 2019 - Not used - Simple audio playback library
- mojoAL - Added on 26 September 2019 - Not used - SDL based sound library with an OpenAL compatible interface
- Openal-soft - Added 23 September 2019 - Used for Fugl on Windows, Mac and Linux. Very powerful feature set, including sound effects, HRTFs, etc Under LGPL license, so cannot be used on more closed platforms.
- Tonic - Added 4 September 2019 - C++ library for procedural audio
Tools
- Jsfxr - Added on 1 April 2020 - Not used - Tool for generating sound effects
- MTuner - Added on 17 October 2019 - Not used - Memory profile for Windows and other platforms
- RenderDoc - Added on 28 July 2020 - Invaluable tool for graphics debugging
- ShaderEd - Added on 28 July 2020 - Not used
Video
- PopH264 - Added on 12 November 2020 - Not used
Github
I am keeping my own repo of singlefile libraries. Some of the libraries are kept dependency free, but generally they are not kept as dependency free as for example STB.
Blog Roll
- Arabesque - Added on 26 April 2020 - Commandline and unix-like hackery
- Coding Adventures - Added on 16 August 2020 - Graphics blog with a large reverse engineering of the rendering of Witcher 3
- CPP Reference - Added on 27 October 2019 - A pretty comprehensive list* Demo Fox - Added on 27 October 2019 of c++ open source software
- Mike Dailly - Added on 3 March 2023
- Demo Fox - Added on 27 October 2019
- Feresignum - Added on 3 June 2020 - Blog with info on extension to debug VK_ERROR_DEVICE_LOST
- Michael Fogelman - Added on 27 October 2019 - Not often updated, but has some interesting graphics projects
- Nicholas Frechette - Added on 23 October 2019 - Advanced programming insights
- Nick’s Blog - Added 1 August 2020 -
- Kyle Halladay - Added on 8 May 2020 - Graphics Programming
- Hikiko - Added on 17 November 2019 - Graphics programming
- Games From Within - Added on 30 September 2019 - Lots of interesting info still, but the last update is from 23 May 2019.
- Arseny Kapoulkine - Bits, pixels, cycles and more - Added on 16 August 2020 - Mainly graphics blog
- Ke-Sen Huang’s Home Page - Added on 27 September 2019 - Great list of graphics papers from conferences
- Iquilezles - Added on 2 October 2019 - Lots of algorithms and programming tutorials. Especially for computer graphics.
- Arseny Kapoulkine - Added on 30 December 2019 - Blog from the author of pugixml, meshoptimizer and others.
- Max Liani - Added on 4 September 2020 - Tech and games blog
- Alexandre Mutel - Added on 4 September 2020 - Tech blog
- Nine Points - Jeremy Ong - Added on 17 March 2020
- Physics-Based Animation - Added on 27 October 2019 - Academic website dedicated to physics-based animation
- RayTracing In One Weekend - Added on 10 October 2019 - Raytracing books, originally by Peter Shirley and now available for free online.
- Realtime Rendering Porta - Added on 30 December 2019 - Collection of links to computer graphics resources
- Redblob Games from Amit Patel - Added on 2 October 2020 - Graphics Tutorials
- Peter Shirley - Added on 25 May 2020 - The blog of a graphics god
- Simon’s Tech Blog - Added on 14 July 2020
- Single file libs - Added on 3 November 2019 - Nothings giant list of singlefile libs
- The Thousand Scars’s Muse - Added on 20 October 2020
- Our Machinery - Added on 18 October 2020
- Jake Wharton - Added on 1 November 2019 - Mostly about Android
- Sascha Willems - Added on 27 September 2019 - Vulkan Guru
Funding Opportunities (Mostly Academic)
- The Big Artists Opportunities List - Added on 24 November 2019
- Harvard Postdoc Funding List - Added on 24 November 2019
- Rabin Ezra Scholarship Trust - Added on 27 October 2019 - Mostly directed towards graphics programming
- SuperHOT Presents Pitching Template - Added on 28 My 2020
Nostalgia
- Amiga Game Dev - Added on 27 November 2019 - Amiga assembly coding tutorials
- Ultimate /|\ ATARI 4nd d3m0 coding page - Added on 3 July 2020 - Demo coding and oldschool graphics coding techniques
- Flipcode - Addded on 10 May 2023 - Lists a lot of old-school coding techniques. The website is unfortunately not active anymore, but the archived articles are still there.
PhD
- Deep Learning - Added on 16 August 2020 - Free deep learning book
- Mathemathics for Machine Lerning - Added on 16 August 2020 - Free book
Virtual Creatures
- Learning to Control Self-Assembling Morphologies - Added on 21 February 2019 - Code for paper
- VoxCAD - Added on 21 November 2019 - The GUI component of the Voxelyze soft-body physics engine
- Voxelyze - Added on 30 December 2019 - The underlying physics engine for VoxCAD.
- Watchmaker Suite - Added on 9 July 2020 - Java Port of Richard Dawkins' biomorphs code
Nostalgia
- Amiga Game Dev - Added on 27 November 2019 - Amiga assembly coding tutorials
- SizeCoding - Added on 4 September 2020 - How to make tiny executables
- Ultimate /|\ ATARI 4nd d3m0 coding page - Added on 3 July 2020 - Demo coding and oldschool graphics coding techniques
Things I always Forget
- The BBC R Cookbook - Added on 4 September 2020 - Advice on makign good graphs with R
- C++11 Guide - Added on 9 July 2020
- Game Data sets - Added on 3 July 2020
- Intel Driver Symbol Server - Added on 13 Jul 2020
- Keeping iGPU activated when booting into Windows using apple_set_os.efi - Added on 13 July 2020
- Mac Notarization Guidelines - Added on 5 April 2020 - Handy commandlines for mac
- SDL2 Metal Example - Added on 7 June 2020 - Example of how to setup a metal layer with SDL2
- Researchers Active in Technical Games Research - Added on 15 September 2020 -