Don Williamson
@donw.bsky.social
1.1K followers 190 following 140 posts
Head of Rendering @ Pacific Light & Hologram Past: ~30 games/engines/platforms including Fable, Splinter Cell, Total War, Dauntless, No Mans Sky, DeepMind Lab, etc. Lionhead/Microsft, Ubisoft, Google/DeepMind, SEGA, etc.
Posts Media Videos Starter Packs
donw.bsky.social
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.
donw.bsky.social
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...
Beat This Game, Win $250,000
YouTube video by MrBeast Gaming
www.youtube.com
donw.bsky.social
loving the fast progress on all this
donw.bsky.social
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.
donw.bsky.social
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.
donw.bsky.social
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.
donw.bsky.social
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.
donw.bsky.social
Urge to build a Z80 console with Phaser on CRT rising.
donw.bsky.social
Wow! Looks awesome.
donw.bsky.social
That flag has me seriously confused. And you look like you're in Croke Park. What's going on?
donw.bsky.social
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.
donw.bsky.social
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.
donw.bsky.social
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.
donw.bsky.social
TIL of VD-Dev, despite sharing past franchise titles with Guillaume Dubail and the late Fernando Velez. These guys were proper savants of their time, unlike those that tend to hit popular culture. I'm in complete awe of their work, Asterix & Obelix was mind-blowing.

www.youtube.com/watch?v=rfOR...
PW Hall of Fame: V.D.-Dev (aka Velez & Dubail) | Punching Weight [SSFF]
YouTube video by Stop Skeletons From Fighting
www.youtube.com
donw.bsky.social
Success!

Standard CRT finally bolted in and my custom CRT is no longer necessary.

I can now delete 1000s of LOC that have caused years of pain.

There's a new startup race-condition in there but I'll find that easily enough.
donw.bsky.social
It's just a learning process of many. It was probably my 5th or 6th reflection engine and I've done it all possible ways you can think of. It's still ridiculously powerful: it drives UI, serialisation, network replication, live C++ code editing and so much more. The pain point is LLVM.
donw.bsky.social
Oh, 3rd option is just pulling the whole thing into my game. But, ugh.
donw.bsky.social
The perfect example being the previous bleet: I need to call SetProcessValidCallTargets on my function database without breaking the multi-platform release of clReflect, which I no longer support. Pointless!
donw.bsky.social
Another target on my list is clReflect. Carrying Clang/LLVM as a dependency has been lunatic-fringe levels of dedication to the cause - a 100GB build folder! The worst part was maintaining a release copy and my own local enhancements.

I have to decide whether to retire it or build a custom parser.
donw.bsky.social
I could upload it with no support, I guess, but it's only really valid from MSVC 2005 to 2015.
donw.bsky.social
A long, long time ago, in a world far, far away; my engine used to run in the browser with a tiny download and no dependencies. For some reason, I justified its continued existence after that point due to its tiny size and fixed behaviour across platforms (e.g. musl). Madness.