Gamedev, graphics, open source. Shuffling bytes and swizzling vectors since 2004...
14 September 2020
This is my first blog post and it comes alongside a new website. I have long been a shadow lurker on various forums, hacker news and reader of other programming blogs, but until now I have never had the urge to write a blog myself.
I read other blogs and see the amazing work that people have achieved and hear their words delivered with assured confidence, making me feel that my advancements and insights were never that interesting or worth talking about. I still feel the same to a degree (call it impostor syndrome if you will), but on the other hand I have been coding for a long time now (15+ years) and I have shipped a lot of games (17 titles), with many different SKU’s and across all modern platforms; from game consoles starting with PS3 and Xbox360, to handhelds, mobile and desktop platforms. So I must be doing something right, right?!
I started publishing open source work on github around 2016 and this helped grow my confidence and give me a deeper sense of commitment to projects. It gave me a new found meticulous attention to detail, knowing that other people might read my code or even use it… best add some automated tests, and ci, give it that professional feeling. I have attained a few hundred stars on a couple of repositories and, while still fairly small in the grand scheme of things, it really gives me a sense of achievement to dedicate time and work to something to see it flourish. The more I put into coding and my own personal development into it, both in my spare time and my day job, the more it gives me back…and while other things in life may have ups and downs (I am definitely far too emotionally attached to Tottenham Hotspur and with it brings many crushing disappointments) programming is always a positive and productive outlet for me.
So with starting this blog, I want to write about some of the things I have been working on, mostly it isn’t groundbreaking stuff; I implement graphics techniques from siggraph papers and have similar game engine technologies to many other open source or commercial engines, but I have learned how to do this stuff efficiently to allow me, a single person to develop a code base which can target many platforms with minimal effort and allow me to effortlessly try out new techniques and algorithms. Along the way I have made lots of implementation decisions, and in sharing these and my approach other people may find them interesting.