Dominic Szablewski
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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