Nov 6, 2019
So. This is a post that I wanted to write earlier in the year, before the relevant wave landed and with enough time for anybody affected to make whatever decisions they needed to make regarding their computer usage or their approach to supporting my games.
As it is, MacOS 10.15 (also known as "Catalina") shipped during October, bringing (among other things) a couple of changes that I'm not comfortable with aimed at changing/shaping the Mac software ecosystem.
After a lot of thinking, I've decided to no longer support newer versions of MacOS, and instead focus on shipping builds that run on older versions of the operating system.
This isn't a decision I've made lightly, nor is it a decision that is a knee jerk reaction to something that's surprised me. I've known that this was coming for a while, but it's been very difficult to find time to put yet more effort into dealing with/addressing the fallout from Apple's policies. I've felt uncomfortable with Apple's attitudes and direction for a long time, and while it's easy to say "these are the straws that broke the camel's back," these are some fairly hefty straws.
First up, 10.15 drops support for 32 bit applications. If I remember correctly, the last version of MacOS to support 32 bit hardware was 10.6, and while I found that disappointing (broadly speaking, the longer we can keep old hardware relevant and usable, the less wasteful we are, and the way that dominant cultures deal with that waste is pretty darned awful in most cases), it was a move I was comfortable accepting so long as the ability to continue to run older software - to have access to tools and cultural artefacts from as long ago as the ancient times of earlier this decade - wasn't impeded.
The transition has been ungraceful and disrespectful of the rich and diverse history of Mac application development. In the game development world in particular, updating old/EOL software is just not viable, and now developers whose livelihood can depend on the "long tail" of their work (thanks to race-to-the-bottom price culture that's dominated the industry over the past decade) have been left in the cold.
Secondly, 10.15 further tightens restrictions on running software under the guise of security. For many years, successive versions of MacOS have made running software that hasn't been distributed via the Mac App Store or isn't from an "identified developer" require users to go through more steps to bypass "security" features in order to run software. Here's a progression of Gatekeeper configuration options over the years:
On the surface this might sound OK (in general, security options are positive), but it's enormously difficult to not recognise that the steps to becoming an "identified developer" are about getting developers to jump through the hoops they'd need to jump through to distribute their software via the Mac App Store (the notarization[sic] requirements needed for 10.15 go well beyond just having an Apple Developer ID).
Apple are progressively moving toward operating a vendor moderated platform, one where users can only run software that Apple have approved. In my eyes, any computer that you can't make or run whatever software you want on is a broken one, and the closed ecosystem that Apple are building is one that I refuse to participate in.
I've been an Apple user since the late 90s because I wanted to make games that ran on MacOS. At the time I also found a lot of value in not being tied down to a single operating system, and in supporting there being some diversity in processors/architecture. Since then, there have been a lot of other things that I've found unsettling about Apple's behaviour. Here's a small selection:
- Doubling down on promoting/growing elitism within the user community (that's just gross)
- Switching to x86 processors without really acknowledging or reconciling the "PowerPC is better/the future" narrative that they'd been feeding users for so long (nothing wrong with change, but when that fundamentally undermines the things you've been telling people to value, that needs to be addressed)
- Reducing default warranty periods from 3 years to 1 year (it's hard to have confidence in a vendor who's lose confidence in their own products)
- Moving away from user serviceable batteries specifically and components in general (part of a strategy to support what's covered in the next point)
- Leaning into hardware churn and presenting their products as consumable (on a planet with dwindling resources, this is massively irresponsible)
- Consistently being behind in driver support for open standards like OpenGL (for those of us trying to make games on MacOS, this has long been a problem, and not addressing it is developer-hostile behaviour)
- Choosing to push ahead with proprietary platform-specific APIs like Metal instead of embracing open APIs like Vulkan (it's difficult to not see this as an effort to make cross platform development harder/to exercise more control over developers, and from that perspective is developer-hostile)
- Having terms and conditions that effectively forbid cross compiling (if I want to produce software for MacOS in the way that I produce software for all the other platforms I support, I have to break Apple's rules - this is developer-hostile)
- Retiring support for open standards such as OpenGL (like breaking backwards compatibility with 32 bit apps, this cuts us off from most Mac gaming history and is developer-hostile)
- Preventing .app bundles with a .sh script as its executable target from running (reducing the flexibility of how developers can ship and run their applications is developer-hostile)
A while back, I decided that my current Mac would be my last one, and when it dies, so will my ability to ship Mac builds (as mentioned, I'm not willing to break Apple's rules to do builds for their platforms).
I was hoping that that would give me a quiet, graceful exit from the Mac scene without having to be a grumble bum, but Apple's contempt for their users and for the developers who work hard to make the software that allows their platforms to be relevant has tipped my hand.
So, what does all this mean?
I don't have any real interest in stopping Mac builds entirely - I still have my Macs and I still want to be able to run my games on them. The MacBook Air that I use as my dev machine when travelling is running 10.12 and I have no plans to update it. For the lifespan of this device, I'll continue to ship and support builds that are compatible with it.
Obviously, this affects all past projects that aren't getting regular updates. It also goes for future projects. For current projects, this affects:
- In the Snowy Winter's Wake
- The Spicy Meatball Finds A Way
- Colossal Cave Adventure - Icicle Edition
- Hive Time
- Hidden Star
For now, this also applies to The Away Team, but I'm not the only person working on that, and if someone else wants to take on supporting newer versions of MacOS, then it's not my place to stop them.
It's an awkward and awful thing to have to say, but if you want to run my games on a Mac, don't update 10.15.
It's likely not relevant to most current Mac users, but I am considering unpacking my G4 PowerMac and putting in some time to get PowerPC versions of some of my games up and running. This feels like a much better use of my time than jumping through notarization[sic] hoops, and it helps make the world a bit better by keeping older hardware more relevant for longer <3
I'm disappointed to be in a position where I feel like I need to say this stuff/make these decisions, but the world is the shape that it is right now, and my heart goes out to anybody who's inconvenienced. Sorry to take so long to get this written up.
If anybody feels like they need Patreon pledges refunded because of this, please get in touch and I'll see what I can work out.