Wrote the eBook "Understanding the Odin Programming Language". Made the game "CAT & ONION". Check out what I'm up to these days: https://zylinski.se
My friend @kflo.bsky.social made the music and sound for Silver Pines!!

@zylinski.se
Wrote the eBook "Understanding the Odin Programming Language". Made the game "CAT & ONION". Check out what I'm up to these days: https://zylinski.se
My friend @kflo.bsky.social made the music and sound for Silver Pines!!
New video where I show how the compile times improved with the latest Odin release www.youtube.com/watch?v=fgSr...
Det värsta med att vara sin egen chef är att chefen är dum i hela jävla huvudet.
Been awhile. Creating has been hard lately. Currently experimenting with combining pen and paper with digital painting. Also, perhaps im just stubborn, but I actually erase backgrounds manually. Magic background deletion always cuts things weirdly to me. There's prolly a better way to do this 😅
Made a video about getting started with writing about programming: www.youtube.com/watch?v=X5xz...
Render backends now take an explicit state pointer: github.com/karl-zylinsk...
Next up: Platform interfaces. At that point I will also add monitor queries. The monitor queries will not need any state pointer, so they can be used before window creation.
When you buy the HTML version, you get the whole book as a single HTML file. All fonts, images etc are embedded in it. It's self-contained like a PDF, but reads nicer on a computer.
The HTML version of my Odin book has gotten a surprising amount of praise.
The design is based on how I want to read books while on a computer: As one giant document, without any annoying PDF page breaks.
Have a look yourself: odinbook.com/sample.html
I'm thinking of doing videos on how to do technical writing. If there is any topic or question anyone wonders about, then do let me know! It can be about anything related to writing technical books or technical blog posts.
A lot of the interfaces-tweaking I've been done comes from what this PR enabled: github.com/odin-lang/Od... The interesting thing you can do is have an interface where the procs have `self` parameters that match type through a `using`. This removes lots of boilerplate casting.
More Karl2D audio backend interface tweaking... I learned that `using` works even when implicitly casting proc parameter types. This simplified creating interfaces that take a "self" parameter. Handy in my case, because I switch impl on failure:
github.com/karl-zylinsk...
WIP: making the Karl2D audio backends take explicit state pointers instead of using globals: github.com/karl-zylinsk...
The usage of a globals is OK in the main Karl2D public API, but it spread to the backends. I'll change all audio, rendering and platform code to work like this.
Doing a little redesign of Karl2D font cache stuff. My previous design could cause too many draw calls.
The new idea uses up to 4096x4096 texture and then compacts the atlas by trowing out the 50% least recently used glyphs.
How does that sound?
This reply sent me down a rabbit hole the last few days. I realized that my design was lacking in this aspect.
So I have redone how it works: github.com/karl-zylinsk...
Now there is one atlas. It can grow to 4096x4096. After that compaction kicks in: Rebuild the atlas, remove 50% LRU
I haven't written much #odin code yet but I have been devouring @zylinski.se book and find much I like. Whatever my next project that isn't a good fit for the BEAM is, I think I will be using Odin. I was hoping to get into the Jai beta but Odin+Raylib(+Clay I hope) feels like a powerful combination.
New dynamic font cache for Karl2D that fixes old font rendering issues, reduces font memory usage and runs faster.
wodin has a WASM backend that lets it emit WASM directly, without LLVM. The Playground runs wodin, which compiles the game and emits new WASM, which is then executed. Note that wodin's WASM backend is AI generated. Nevertheless, I am flabbergasted that this is even possible.
Technical details: The Odin compiler runs in your browser. Even on your phone! This is enabled by an experimental Odin compiler fork called wodin: github.com/karl-zylinsk...
Try Karl2D in the new Karl2D Playground: karl2d.com/playground
You can edit and recompile the examples, directly in your browser!