The History of a Future Platform, Part 2: Stunt Island

Part 1: Why Part 2: Stunt Island I'm a late 80s to late 90s gamer: some of my most imprinted memories come from that period. I remember vividly two incredible WOW! moments that changed my life. The first was seeing the DOOM screen melt on one of my dad's school's library machines: With a Master System at home as my only point of reference, DOOM was so many worlds apart


The History of a Future Platform, Part 1: Why

My attempt to rethink the way games are made In 2012, after shipping Fable 3 on Xbox 360 and PC, supporting some DLCs, creating Fable Heroes with some funky new rendering research and helping the team understand the workflows and transition to Unreal Engine 3.... (phew)... I was completely worn down and demoralised. As a team we did some amazing things. I made some life-long friends and was immensely satisfied with the journey we'd taken (no, not that one).


Fast, Constant Time Sphere Indexing, Part 1

The problem statement is: Assuming a triangle-subdivided sphere, map any 3D point on or above it to a triangle index in constant-time, without using recursion, table lookups or complicated branching logic. Even better; make it so simple you can use it in a pixel shader. This is useful for when your playing field is on/above a sphere and you have some lookup tables you want to reference based on player/camera position.

20 Years since Terminal Pacity

Around the age of 15 I started to code after a family friend gave me a BBC Microcomputer Model B that his local army barracks were throwing away. Though primitive, it was a wonderful machine that showed me where my future lay. I learned BBC BASIC and a smattering of 6502 Assembly to gain performance and then moved on to PC. I bought a second-hand 286 PC for something like £20 and migrated to QBasic and x86 Assembly using Gavin Estey's tutorials.

Replacing Disqus with Github Comments

I've been considering removing comments from this blog for a while; mainly because the site doesn't trigger much discussion and I didn't like keeping the overhead of Disqus around. After looking into Disqus load-time behaviour I was pretty shocked what I was forcing on people loading the site (although you really should be using the likes of Privacy Badger and uBlock Origin).


Three Methods to Extract Frustum Points

Getting frustum points in world-space can be useful in a number of scenarios, such as debug visualisation or building a coarse volume around a partition in your frustum. Each method can be used depending what information you have available to you and what you want to avoid recalculating.


Mixed Precision GPU Noise with HLSL

I posted an article a while back, entitled Very Fast, High-Precision SIMD/GPU Gradient Noise, where I outlined a technique for achieving double-resolution noise at speeds close to that when using float arithmetic. The key observation was that floor could be used on cell boundaries to mask off the ranges that require double arithmetic, allowing the bulk of the work to use float arithmetic.

   noise, gpu

A New Host, Server and Site Generator

And we are back! It must be a year now since my old site went dark for many reasons, including being busy working on my own game. There's some big changes with this new setup: I own the domain this time round. I've gone through a bunch of domains --,, etc. -- that I used to pay somebody else to manage for me. That was obviously not the right way of going about this as I no longer own them.