I tried to remember all the major systems/libraries I've programmed from 1990-2020. Of course there were lots of small tasks and small stb libraries as well, bugfixing stints and customer support, and I didn't include my indie videogames (which weren't major programming efforts). But I threw in a few bonus items. This was largely reconstructed purely from memory; I apologize to any projects I forgot or otherwise omitted. — Sean Barrett, 2021
~1990 | hobby | compiler/VM | from-scratch reimplementation of language-parser/VM for text adventure system (AdvSys) | |||||||
hobby | systems | invented & implemented sublinear scanner for regular expression matching (SGREP) | ||||||||
1991 | hobby | systems | implementation of malloc() for LPMud (smalloc) | |||||||
hobby | compiler/VM | implementation of language-parser VM for multi-user text adventures (Sludge) | ||||||||
1992 | geometry | generate polygonal outline around sequences of lines/curves for Postscript "strokepath" | ||||||||
compiler | part of 2-person team recompiling large Forth codebase to C-as-portable-assembly | |||||||||
SW graphics | Postscript rasterizer outputting run-length-encoded-bitmap format | |||||||||
1993-1994 | compiler/VM | Postscript level 2 parser/interpreter, unfinished (company closed) | ||||||||
hobby | SW graphics | simple 3d engines, multiple software texture mappers | ||||||||
1994 | education | "PC Game Programming Encyclopedia" texture mapping article | ||||||||
SW graphics | software "floor" texture mapper for Sega 32X (project cancelled) | |||||||||
SW graphics | misc software texture mappers, including colored-lighting & tile indirected | |||||||||
1995 | SW graphics | rewrite of floating horizon renderer w/fake texture mapping (Terra Nova) | ||||||||
1996 | designed and built tutorial missions for Terra Nova (only game design I did at LGS) | |||||||||
SW graphics | research: floating-horizon renderer w/correct texture mapping (post Terra Nova) | |||||||||
SW graphics | perspective-correct software texture mappers | |||||||||
geometry | arbitrarily connected 3D space rendering using portal vsibility | |||||||||
geometry | tool to compute above data using Constructive Solid Geometry on input "brushes" | |||||||||
geometry | complex object vs. portal/cell sorting analysis for rendering w/ painter's algorithm | |||||||||
systems | coverage tester (to analyze previous) | |||||||||
editor | part of 2-person team making "brush" editor for what became Thief: The Dark Project editor | |||||||||
1997 | hobby | SW graphics | multiple voxel rendering engines | |||||||
hobby | SW graphics | independently re-invented sphere tracing on voxel grids | ||||||||
1998 | hobby | education | paper on sublinear scanning for regular expressions (SGREP) | |||||||
hobby | HW graphics | hardware rendering research | ||||||||
1999 | hobby | education | intro talk how texture maps aren't just images at HardCore Technical Seminars | |||||||
HW graphics | part of 2-person rendering team on unfinished "Thief 3" engine (company closed) | |||||||||
2000 | hobby | education | talks about fringe/unusual-rendering technologies at Game Technology Seminars | |||||||
2003 | hobby | systems | "iprof" always-on interactive profiler with "call-stack" attribution | |||||||
geometry | build portal/cell visibility structure for a UE2 game (I think?), probably unused | |||||||||
2004-2005 | hobby | education | multiple "Inner Product" columns in Game Developer Magazine | |||||||
HW graphics | from-scratch HW-only renderer for Genesis3D engine (proprietary, not publically released) | |||||||||
2006 | hobby | systems | JPEG, PNG decoders from specification (stb_image.c) | |||||||
2007 | hobby | audio | Ogg Vorbis decoder from specification (stb_vorbis.c) | |||||||
2008 | hobby | HW graphics | education | ("Sparse") Virtual Texturing GDC talk | ||||||
optimize | HW graphics | some visual effects and optimization work for videogame Braid | ||||||||
2009 | SW graphics | TrueType font software decoder/rasterizer from specification (stb_truetype.h) | ||||||||
geometry | Flash 9 vector graphics handling (draw wide lines, convert concave shapes to triangles) | |||||||||
SW graphics | Flash 9 texture cache of rasterized characters from fonts | |||||||||
HW graphics | Flash 9 graphics back-end for OpenGL (other ports not by me) | |||||||||
general | Flash 9 scene graph management, state updating & animation | |||||||||
systems | multi-heap malloc() implementation | |||||||||
VM | ActionScript 3 VM implementation: interpreter, garbage collector, etc. | |||||||||
C implementation of most standard ActionScript 3 libraries (w/ manual GC markup) | ||||||||||
2011 | geometry | invented Herringbone Wang Tiles | ||||||||
compiler | generate library documentation by parsing C header and additional markup | |||||||||
gui | one of several IMGUI libraries (this one used in some versions of Telemetry) | |||||||||
2014 | gui | stb_textedit version adapted from Flash 9's text box functionality | ||||||||
2015 | hobby | SW graphics | truetype software rasterizer that measures 2d area (vs. sampling multiple 1d coverage) | |||||||
2015-2016 | hobby | HW graphics | multiple voxel engines (include stb_voxel_render.h) | |||||||
2015-2016 | hobby | education | OBBG: streamed development of a throwaway game using stb_voxel_render | |||||||
2016 | HW graphics | research drawing TrueType font characters by rasterizing quadratic beziers in pixel shader, unused (w/Fabian Giesen) | ||||||||
geometry | library for fast tesselation of common vector shapes to triangles | |||||||||
general | unfinished runtime for UI focused on performance, minimal draw calls, & dynamically-resizable elements | |||||||||
editor | unfinished editor for above runtime | |||||||||
gui | single-drawcall IMGUI library for above editor | |||||||||
2019 | compiler | compiler to convert HTML help file collection into single HTML file (replace MS Compiled help aka .chm) | ||||||||
2019 | audio | research, design & implement most of a new audio compresser format | ||||||||
2020 | compiler | unfinished C99 compiler |