We've supported the Mac platform for 11 years now, but yesterday Apple released OSX 10.15 which removed support for 32-bit applications. Basically that means that our games (and probably tons of other games and apps) no longer work on the latest version of OSX. It's certainly possible to fix this on our part, but the following is why that's not feasible.
- 32 bit apps no longer supported - This is the initial, direct problem. This is mostly changing to compiling as 64-bit application, fixing any compile problems, and then lots of testing and fixing any problems that crop up. This part is probably not too bad.
- Apple's Carbon API is 32-bit only - Pretty much all of our Mac specific code is using the Carbon API. We would need to rewrite all of this to use Apple's newer Cocoa API.
- Other libraries - Going from 32-bit to 64-bit is likely to break some of the libraries we use. Hopefully this just means we would need to update to a newer version, but it's possible we would need to go to a completely new library or write it ourselves.
- Now required to be notarized by Apple or app won't run - This is basically just getting an automated tool to run against your app. The process itself is probably pretty easy, it's the requirements that would cause issues for us. These can be seen at here.
- Notarization requires OSX 10.13.6 - This requires a jump of multiple OS versions for my Mac. The reason why it's on an older OS version, is because, in my experience, every new version of OS X breaks something in my developer tool chain.
- Notarization requires signing the app - This should be relatively easy.
- Notarization requires XCode 10 - Just like an OS X upgrade, XCode upgrades tend to break something in my developer tool chain and again this would be a jump of multiple versions. Also XCode requires 10.13.6 (at least that is consistent).
- Notarization requires an app to link against the OSX 10.9 or later SDK - This would force us to make the min OS we support as 10.9, so this would screw over customers on older OSX builds or I would have to make 2 Mac builds.
- OpenGL is deprecated - Apple hasn't completely killed off OpenGL, support but they have announced that they are phasing it out to support their Apple only Metal API. We don't even support Microsoft's platform specific graphics API.
- My Mac computer - My current Mac computer max OS that I can install is 10.13 (2 behind the latest). So I can barely get to the min OS version needed by Notarization and XCode. How long until Apple forces me to buy a new computer?
- How long until Apple drops Objective C for Swift? - Given everything else in this list, how long until Apple completely drops Objective C for Swift. Currently all of our Mac specific code is in Apple's Objective C language. It's already annoying enough that the Mac specific code is in a different language (we use C++), but being forced from one Apple language to another Apple language would be worse. Considering I would already be rewriting most of the Mac specific code it would make some amount of sense to get this over with now. Note: learning a new programming language isn't that big of a deal, it's just one more thing added to the long list.
- Gatekeeper Path Randomization / App Translocation - This has already partially broken our games before 10.15. This makes it so our games can't access our own data because it's not included inside the app bundle. Fixing this isn't hard, but it's annoying to need to fix it in the first place.
So the final list of things needed to continue supporting the Mac: move to 64 bit, transition carbon API code to cocoa API, probably replace some of our libraries, sign the app, notarize the app, upgrade Mac to 10.13, upgrade to XCode 10, transition OpenGL to Metal, transition Objective C code to Swift, restructure directories, fix everything that broke in all of these upgrades, and probably buying a new Mac computer sooner than later (and Macs are expensive).
I'm sure Apple has a good reason for all of these things, but a company with $250 billion in cash pushing all of this work on much smaller developers is kind of a crappy thing to do.
All of this would take more time than the initial port to the Mac in the first place. While the initial porting turned out to worth it, our Mac revenue has gone down a lot since then. So doing all of the above would be a pretty big money sink and unfortunately that is not something that we can handle right now.
NOTE: All of our current games that get patched will continue to get Mac patches. They just won't work on 10.15 and above.