Dominic Szablewski

  1. Synthesizing Music from JSON

    tl;dr: pl_synth is a tiny music synthesizer for C & JS and an editor (“tracker”) to create instruments and arrangements. You can try it out at phoboslab.org/synth/ The song Microscope by Ferris / Youth Uprising playing in pl_synth Sonant is a brilliant piece of software. It gives you 8 tracks, where…

    Published

  2. A Simple Archive Format for Self-Contained Executables

    The build/run instructions for the example games for high_impact were subtly wrong: make sokol ./build/game_sokol make sokol compiles the Sokol version, converts all assets and puts the results (executable and converted assets) into the build/ directory. So far so good. Where it falls apart is in the…

    Published

  3. Porting my JavaScript Game Engine to C for No Reason

    high_impact tl;dr: high_impact is small game engine for 2D action games. It's written in C, compiles to Windows, Mac and Linux as well as to WASM for the Web. It's “inspired by” my original Impact JavaScript game engine from 2010. The name high_impact is a nod to a time when C was considered a high level…

    Published

  4. Rewriting wipEout

    The source code for the classic PSX launch title wipEout was leaked in 2022. A few month ago I finally sat down to take a look at it. The result is a (nearly) complete rewrite that compiles to Windows, Linux, macOS and WASM. Thanks to WASM and WebGL you can play wipEout right in your browser! I'm not…

    Published

  5. QOA Benchmark Results and File Format Specification

    The specification for the Quite OK Audio Format, announced in a previous blog post, is now finalized. QOA is a lossy audio compression format. Typical audio signals (44100hz, stereo) are encoded into 278 kbits/s, or more precisely 3.2 bits per sample – exactly 1/5 of the bits needed for an uncompressed…

    Published

  6. Time Domain Audio Compression at 3.2 bits per Sample

    Audio formats typically fall into one of three categories: “lossless”, “complicated” or “bad”. After developing a simple image format last year, I tried to come up with an audio format that fits neither of these categories. In other words: a format that is lossy, simple and quite ok. Naturally, it's…

    Published

  7. The QOI File Format Specification

    Last month I announced a toy project called QOI — the Quite OK Image Format. It losslessly compresses RGB and RGBA images to a similar size of PNG, while offering a 20x-50x speedup in compression and 3x-4x speedup in decompression. With the help of countless passionate people on Github, we have refined…

    Published

  8. Lossless Image Compression in O(n) Time

    Introducing QOI — the Quite OK Image Format. It losslessly compresses RGB and RGBA images to a similar size of PNG, while offering a 20x-50x speedup in compression and 3x-4x speedup in decompression. All single-threaded, no SIMD. It's also stupidly simple. tl;dr: 300 lines of C, single header, source…

    Published

  9. Q1K3 – Making Of

    This was my third time participating in the js13kGames contest. I won in 2018 with Underrun and utterly failed to deliver any compelling gameplay with my 2019 entry Voidcall. This year's theme was “Space” – I chose to completely ignore it and instead decided to pay tribute to one of my all time favorite…

    Published

  10. Voidcall – Making Of

    Like last year with Underrun, I participated in this year's js13kGames – a JavaScript game development competition with a file size limit of 13kb, including code, assets and everything else. My entry was Voidcall, a Real-time Strategy game. Play Voidcall – A WebGL Real-time Strategy game in 13kb of JavaScript…

    Published