Don Williamson's Avatar

Don Williamson

@donw.bsky.social

Head of Rendering @ Pacific Light & Hologram ~30 games/engines/platforms including Fable, Splinter Cell, Total War, Dauntless, No Mans Sky, DeepMind Lab. Lionhead/Microsft, Ubisoft, Google/DeepMind, SEGA, etc. https://donw.io https://github.com/Celtoys/

1,075 Followers  |  193 Following  |  155 Posts  |  Joined: 04.07.2023  |  2.2529

Latest posts by donw.bsky.social on Bluesky

blimey, my memory of that path is that eroded, is it?

23.10.2025 18:38 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

I'm frankly astonished that we still can't tell our x64 CPUs to not add entries to the BTB. We have millions of bounds checks, sanitiser guards, type checks, overflow checks, etc. polluting the BTB. When all we need is a "BTB says no" and a forward branch.

Xbox 360 PPC tw instruction be sad :(

23.10.2025 11:48 β€” πŸ‘ 5    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

Swarm is awful and so is any code review system that relies on post-review of code already submitted to main. Shelves are a poor model for pre-submit reviews as you can't stack them and end up waiting for reviews. Task branches are just too fiddly to have everybody on main. Perforce hurts :(

21.10.2025 10:10 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

Images are definitely going to the server. Probably my mix of PB, UB and Firefox.

20.10.2025 23:36 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

ohmygod they look like proper little murderers. Gotta accelerate my plans for wild camping in Scotland now!

20.10.2025 10:35 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Wow! That's special... shows fine in the client until after it's posted...

vec3 cube_vertices_from_idx3(uint idx) {
return vec3(
(idx & 1) != 0 ? -16.0 : 16.0,
(idx & 2) != 0 ? -16.0 : 16.0,
(idx & 4) != 0 ? -16.0 : 16.0);
}

19.10.2025 20:51 β€” πŸ‘ 3    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Post image 19.10.2025 20:50 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Post image

The generated SPIR-V should be an OpSelect on this one, which is a V_CNDMASK_B32 on GCN.

19.10.2025 20:22 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

I'm definitely going to put Moonscript on top of Luau here. C# has been such a sunk cost and I want to ENCOURAGE coding.

Performance be damned: I shipped a game on a 33MHz PS1 where 70% of the entire codebase was our (slowly) interpreted scripting langauge. I can easily scale this shit.

17.10.2025 11:31 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

It must be every few months I become horrified at C# authors significantly ballooning the surface area of the language. Today I found Primary Constructors and I had to WTF. Each new generation of C# programmer must have fundamentally incompatible styles.

17.10.2025 11:27 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

Unfortunately some use-cases can't do that, either because voxelisation is not an option or you require too much precision than the dual approaches can give you.

09.10.2025 10:19 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Preview
A Portable Fortran Program to Find the Euclidean Norm of a Vector | ACM Transactions on Mathematical Software

For reference, it's called the "scaled sum of squares" and like ABSOLUTELY EVERYTHING in computer graphics, it was done before I was even born.

A Portable Fortran Program to Find the Euclidean Norm of a Vector: dl.acm.org/doi/10.1145/...

09.10.2025 10:02 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

I don't think it's that new. I think it's old (in younger generation terms) and I've been oblivious to its existence because *waves hands* stuff. But it does indeed feel very new, which is awesome!

09.10.2025 10:00 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

LAPACK/BLAS have a neat vector normalisation trick: find the max axis and divide each component by that before rsqrt and scale. Avoids overflow and gradual underflow due to squaring in the rsqrt. If the max axis is tiny then all axes are tiny so the components can be considered roughly proportional.

09.10.2025 09:58 β€” πŸ‘ 8    πŸ” 0    πŸ’¬ 2    πŸ“Œ 0

I have a realtime use-case for this that throws up (roughly) millions more edge-cases than a typical game engine. Nothing out there is either fast enough or bullet-proof so I wrote my own.

There are still edge-cases.

I have massive respect for the UE1 "realtime" CSG story now.

09.10.2025 09:55 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Post image

There are days when I look at colourful, cartoony models up close and get annoyed at the polygonal silhouettes. Mainly because a small team in Santa Monica solved this 25 years ago on a Playstation 2 and I love that technology so much (tfrags!) . Using Lisp.

07.10.2025 21:22 β€” πŸ‘ 7    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Preview
King of Meat on Steam Compete in a co-op party platformer, pitting up to 4 players against community-built dungeons filled with puzzles to solve, challenges to traverse, and ridiculous monsters to fight. Progress through c...

King Of Meat is currently

✨ VERY POSITIVE ✨

On Steam πŸ‘β€οΈπŸ‘β€οΈπŸ‘

store.steampowered.com/app/1926980/...

06.10.2025 10:36 β€” πŸ‘ 25    πŸ” 8    πŸ’¬ 1    πŸ“Œ 2
Preview
Donate to Community support for the arson-hit Peacehaven Mosque, organized by Lucy ~ Following the horrendous arson attack on the Peace Community Centre & Mos… Lucy ~ needs your support for Community support for the arson-hit Peacehaven Mosque

The local racists tried to burn down a place of worship. Please give generously ❀️

www.gofundme.com/f/community-...

05.10.2025 15:27 β€” πŸ‘ 7    πŸ” 4    πŸ’¬ 2    πŸ“Œ 0
Beat This Game, Win $250,000
YouTube video by MrBeast Gaming Beat This Game, Win $250,000

This game is all Glowmade, a crazy-talented team making a game they love. I played a small part on their custom engine, building lots since the WonderWorlds days (e.g. lighting model pretty much the same). This one has my own RHI across PC, Xbox and Playstaion too.

www.youtube.com/watch?v=KRr0...

04.10.2025 12:07 β€” πŸ‘ 4    πŸ” 1    πŸ’¬ 1    πŸ“Œ 0

loving the fast progress on all this

04.10.2025 11:54 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

So I just tried another one on my 32-bit app instead of Remotery and guess what? It crashes πŸ˜‚ I know, time to update to a 64-bit app, but it's nice to be reminded of how truly lightweight Remotery was.

03.10.2025 11:00 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

It's days like this I remember why I wrote Remotery. I'm building a 32-bit app and I recall Total War: Rome 2 being very tight on memory where no existing profiler would run without crashing. I had to write a custom one that ended up being the inspiration for Remotery.

03.10.2025 10:59 β€” πŸ‘ 4    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

My recall of 1-based simply triggered a recall of a whole slew of Lua complaints. It was like opening a jar of some promising condiment, only to be greeted by the smell of the mould that had developed over many years.

02.10.2025 10:34 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Today I remember Lua uses 1-based indexing and it threw me into mild depression. Remembering vividly when our industry decided Lua was better and custom languages needed to extinct themselves. Sigh, we could have had so much better.

02.10.2025 09:34 β€” πŸ‘ 5    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

Urge to build a Z80 console with Phaser on CRT rising.

29.09.2025 10:38 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Wow! Looks awesome.

29.09.2025 10:23 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

That flag has me seriously confused. And you look like you're in Croke Park. What's going on?

29.09.2025 10:13 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

After building a basic CPU and GPU a couple years ago on FPGA, I still wake up thinking how all modern software development is taking an "everything runs all the time everywhere" model and forcing it to serialise. Then slowly increasing parallelism but never quite returning to that original power.

29.09.2025 10:10 β€” πŸ‘ 4    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

Art is very easy for a non-artist -- even in the same industry -- to underestimate. Having this debate right now and you just can't communicate the depth of difference in many seemingly-similar disciplines.

24.09.2025 10:13 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

And it's code like V-Rally or Asterix on the GBA that really needs to be preserved in time for others to look at, learn from and develop an understanding of. These are not secrets to be guarded, they are achievements to celebrate. Unfortunately publishers.

24.09.2025 10:10 β€” πŸ‘ 3    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

@donw is following 20 prominent accounts