My name's Phill, and I'm a video game programmer.
Sometimes I write code (and a little bit of it even makes it onto GitHub). Sometimes I solder microcontrollers to LED strips. Sometimes (rarely - too rarely) I even write stuff here.
This site's a little broken right now. Sorry about that. As far as I can tell, my old hosting provider was, uh, unhappy to discover that they'd given me a really good indefinite promotional rate (or something like that) which I'd held onto for longer than they intended, so I'm rebuilding it bit by bit in my spare time on Azure. Good times.
No, none of this content was produced by LLM. Spelling mistakes and awkward sentences are my own. I don't have a proofreader and figuring out how to integrate a spell checker into the (somewhat clunky) workflow behind this site is still on my to-do list.
Contact
I can sometimes be reached at phill@vec3.net, but absolutely never on social media. LinkedIn exists in a superposition of being social media and being not social media.
Recent posts
Building Content: Parameter Packs and their C# Code Generators 04 Sep 2025
In an earlier post in this series I worte about content identity being tied to the parameters used to build that content. This means that the parameter packs which drive builders are one of the major load-bearing elements of the overall design. In this post I'll describe the C# compiler plugin which makes their implementation both easier and much more reliably correct.
Read more...This Website: Optimizing Resource Inclusion 02 Sep 2025
One of the perks of making your own stuff is that some days you get to make it do neat things. Yesterday was such a day. I've long been annoyed at having every page linking in every possible script (highlight.js, MathJax, etc) just in case there might be content on that page that needs it. But now that I'm in full control of the site's generator, it was easy to just fix it.
Read more...Rendering an Infinite Grid 01 Sep 2025
I've been working on a little VR project for a while, and one of the first things I needed at the start was something to stand on. So I made an infinite grid to be my floor. Here's how it works.
Read more...This Website: The Generator 31 Aug 2025
All of the code I'm going to discuss here is available on GitHub. Links to specific bits of code will point at what is currently the HEAD
commit - things will naturally move and change as time passes.
This Website: The Story So Far 31 Aug 2025
This site's source is now available on GitHub and the generator component is even open-source. To mark the occasion, I thought I'd write a bit about its history and the journey from WordPress to a fully static site.
Read more...$msCompile problemMatcher Woes 30 Aug 2025
I don't know why no one bothers to keep "problemMatcher": "$msCompile"
working as tools like dotnet
and MSBuild
evolve, but here we are. Every now and then an SDK update breaks the problem matcher, making it harder to get .NET work done in VS Code.
Building Content: Scripting With C# 10 Aug 2025
A few weeks ago I wrote about my toy content builder. Today, I'm writing a little bit more about it.
Read more...Camera Math 07 Aug 2025
Nothing special here, just stashing away some math I don't enjoy having to look up again and again.
Read more...