Archive:
It dawned on me, after last week’s Dreamcast shenanigans, that if I’m porting the EH500 to 20 year old machines, then I probably don’t have an excuse not to port it to the Mac. Other than, I suspect, that it’s going to be a massive ball-ache at some point.
As much as I used to get on fine with XCode, 12 years ago, when I daily drove OS X, there is absolutely no way on God’s green earth that I'll put myself through the horror of setting it up in 2026. So I’ve done something far nicer: my DJing Mac is now a headless build machine:
The Mac build’s universal (although I’ve not been able to confirm that the Intel version actually works, yet. It seems to run fine in Rosetta, though…) and should be fine on anything from Big Sur up. But we’ll see. Rather than use the Homebrew version of SDL3, I’m building it from source. Mainly so I can pin it to the same version that I’m using on Windows and Linux.
The biggest problem was, of course, the shaders. I only have four, but they’ve been, by far, the area that’s needed the most plumbing. I wrote them as GLSL, which is then translated to SPIR-V for Vulkan via glslc on Linux, DXIL for Direct X on Windows, and now to Metal for the Mac, both via spirv-cross. SPIR-V and DXIL ship as precompiled byte code, and Metal as MSL source, cos SDL is lovely and handles all the things.
FML, etc. But it works, and it’s largely a fire and forget thing, once it’s been done the first time.
So now, as long as my Mac is awake, I can build, and upload, all SKUs to Steam at the push of a button. Bingo Bongo!
I fucking hate achievements. They’re a royal pain in the arse, they mess up the code, and they’re always the thing that breaks when you’re in QA, trying to ship. So I’ve got them in early this time. They’re mostly about killing that Egg, cos fuck that Egg, but I might do a few Global Stats type things as well. Not sure, need to see how they’re exposed, but it might be nice to set a couple of really stupid death targets, or something. Strokes Chin…
I've pushed the latest demo build up to the website, so if you're that way inclined you can have a run about and earn yourself some achievements. No leaderboards, though. I'm not a maniac.
Musings, random thoughts, work in progress screenshots, and occasional swears at Unreal Engine's lack of documentation -- this is a rare insight into what happens when a supposedly professional game developer plans very little up-front, and instead follows where the jokes lead them.
Journal IndexFriends:
If you like any of my work, please consider checking out some of the fantastic games made by the following super talented people: