Log inSign up
Dominic Szablewski
2,391 posts
user avatar
Dominic Szablewski
@phoboslab
phoboslab.org
Joined March 2008
262
Following
7,669
Followers

New to X?

Sign up now to get your own personalized timeline!

Create account

By signing up, you agree to the Terms of Service and Privacy Policy, including Cookie Use.

Terms·Privacy·Cookies·Accessibility·Ads Info·© 2026 X Corp.
Don't miss what's happening
People on X are the first to know.
Log inSign up
  • user avatar
    Dominic Szablewski
    @phoboslab
    Sep 13, 2021
    Q1K3, an homage to Quake in 13kb of JavaScript: phoboslab.org/q1k3/ Thanks to @NoFateNet for the music <3
    00:00
  • user avatar
    Dominic Szablewski
    @phoboslab
    Nov 24, 2021
    Lossless Image Compression in O(n) Time — introducing QOI, the Quite OK Image Format. 300 lines of C, single header library: phoboslab.org/log/2021/11/qo…
  • user avatar
    Dominic Szablewski
    @phoboslab
    Aug 16, 2023
    My wipEout rewrite only works with OpenGL, but I set up the code in a way to potentially support other rendering backends. To test whether this actually works, I implemented a very bare-bones wireframe software renderer. Almost playable!
    00:00
    105K
  • user avatar
    Dominic Szablewski
    @phoboslab
    Jul 5, 2024
    I'm rewriting my 14 year old "Impact" JavaScript game engine... in C. No reason. Just a lot of fun.
    00:00
    84K
  • user avatar
    Dominic Szablewski
    @phoboslab
    May 3, 2023
    Fiddling with the leaked WipEout source. It may not look like much, but getting this thing to compile and run on x86-64 was a royal pain. Rendering is in OpenGL, but all transforms still in software, hence the wobbliness.
    00:00
    67K
  • user avatar
    Dominic Szablewski
    @phoboslab
    Aug 10, 2023
    Play the original wipEout in your browser: phoboslab.org/wipegame/ Also check out the in-depth "Making-of" in my blog: phoboslab.org/log/2023/08/re…
    00:00
    95K
  • user avatar
    Dominic Szablewski
    @phoboslab
    Aug 8, 2023
    Now running with buttery smooth 3800 fps. Still lot's of room for improvement, but I think I'll leave it at that.
    00:00
    67K
  • user avatar
    Dominic Szablewski
    @phoboslab
    Dec 20, 2021
    The specification for the QOI format for lossless image compression has been finalized! It fits on a single-page PDF. Thanks to everyone who helped to make this happen! phoboslab.org/log/2021/12/qo…
  • user avatar
    Dominic Szablewski
    @phoboslab
    Apr 26, 2023
    At last, here's the final specification of the Quite OK Audio Format, along with some benchmark results: phoboslab.org/log/2023/04/qo…
    66K
  • user avatar
    Dominic Szablewski
    @phoboslab
    Jul 14, 2023
    For a fixed size array of objects, you can maintain two arrays of pointers to keep track of active/free ones. Seems a bit easier (and more efficient?) than a linked list and is always O(1) unlike a scan through the objects array. Does this pattern have a name?
    63K
  • user avatar
    Dominic Szablewski
    @phoboslab
    Feb 2, 2023
    Time Domain Audio Compression at 3.2 bits per Sample -- introducing QOA, the Quite OK Audio Format. 400 lines of C, single header library: phoboslab.org/log/2023/02/qo…
    41K
  • user avatar
    Dominic Szablewski
    @phoboslab
    Dec 31, 2024
    It's almost 2025 and this is still the best way to inline a WASM module in JS :/
    18K
  • user avatar
    Dominic Szablewski
    @phoboslab
    Aug 4, 2024
    At last, I published high_impact – a simple 2D game engine completely written in C. Please read “Porting my JavaScript Game Engine to C for No Reason” phoboslab.org/log/2024/08/hi…
    20K
  • user avatar
    Dominic Szablewski
    @phoboslab
    Jul 7, 2024
    My C game engine expects you to define your entity struct _before_ you include parts of the lib. The struct has some required fields (with types from the lib), so you have to do a little dance to include everything. Which would you prefer?
    47K