I like systems programming and functional languages. Professionally, I've worked on compilers, web services, SPAs, static analyzers, and other miscellany.
Outside of my day job, I'm currently working on:
- The Kiesel JavaScript engine.
- Jam – a high performance JS toolchain built from the ground up.
- Improving the Zig Language Server.
Interests:
- Game dev, compilers, type systems, databases.
- Pixel art
- Shin Honkaku
- Functional programming
I am slowly migrating my code from here to codeberg.
A list of thoughts that aren't not elaborate enough to warrant a blog post, but interesting enough to be written down.
Click to read
I find it very interesting that video games today often try to emulate artifacts of the past that
older developers would kill to get rid of.
The CRT screen shader is one of them.
I wrote one for one of my (now abandoned) side projects, and was happy with how it turned out.
Here is an old GIF of the effect:
The above shader displays two of my favorite effects that nail the "retro" feel when done well:
- The CRT screen bend.
- Chromatic Abberation.
It also has a scanline effect, but that's off topic.
CRT screens would shoot a cathode ray that would traverse the screen row-by-row. If the screens weren't curved in shape, different points on the surface would be at different distances from the origin of the cathode ray, resulting in a distorted image. The screens had to be curved at very precise angles to perfectly offset the distortion.
Since It's getting pretty late in the night at the time of me writing this, I'll leave this great explanation on chromatic aberration by an underrated youtuber, Pixel Prophecy:
If you're wondering how it's implemented in the gif I showed above, I just offset the Red, Green, and Blue channels for every on-screen pixel. As for the scanlines, they're just periodically occuring horizontal lines timed with a sine wave.