Alex Dixon

Welcome to my programming blog and portfolio, I have worked in gamedev for over 10 years and I am currently principal programmer at Flavourworks. I enjoy shuffling bytes and swizzling vectors...

Not so modern c++

27 March 2021

There have been a lot of changes and additions to the c++ standard since I started using c++ in the early 2000’s, the language itself has started to look quite different. Yet I am still using a very stripped down subset of c++ actually more c-style and only reaching for c++ and modern c++ with careful consideration. Why is this? Because I have never really coveted new language features, I have always been more focused on the ‘details’ like the maths behind graphics effects or physics mechanics and not so much about the ‘glue’ of how it all fits together. I worked on and shipped games pre c++11 and saw effective techniques that worked well and stuck with them, these techniques provide good performance even in debug builds.

Read More

Hot reloading c++ for rapid development with the help of fungos/cr

06 February 2021

It has been almost a year of living with covid-19 lockdown restrictions and during this period I have been productively coding at home and having a lot of fun with hot reloadable c++ to aid rapid development. When the first lockdown measures began the first task I undertook was getting this system working and integrated into my game engine, it had been on my to-do list for a while, but with nowhere to go and not much else to do I created a workflow which has been enjoyable to use for the past year and has managed to produce some decent output. I’ll go through some details of how it works in this blog and show some of the things I’ve created so far.

Read More

Data oriented design is not about SoA and ECS

04 October 2020

There has been a lot of discussion coming to my attention recently regarding data oriented design (DOD) or data oriented architecture (DOA). It is something very close to my heart because I love optimisation; I have to do it for all the products I work on as a software engineer and so I am always thinking about the data first. Being data oriented is thinking about the data you have and the transformations you need to make, to get the output you desire on the hardware you are targeting.

Read More

A quick solution for OpenGLES lack of wireframe fill mode

24 September 2020

If you have ever worked with OpenGL you might be familiar with glPolygonMode. It allows you to specify GL_LINE, GL_POINT or GL_FILL, where fill is typically what we use to rasterise solid triangles, using lines allows us to achieve a wireframe effect. If you have ever then switched to OpenGLES (mobile or web platforms) you may have encountered GL_LINE being undefined and there is no way to get a wireframe fill mode.

Read More

Porting a c++ game engine to the web with emscripten

20 September 2020

I embarked on this journey because I wanted to make my c++ game engine pmtech runnable in a browser for quick and easily accessible live demos. Overall the process took about 5 weeks of work, totalling 20 days, I spent some weekend days and a few hours in the evenings. Nothing too intense and the process was quite enjoyable, relaxing dare I say!

Read More

First post

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.

Read More