Years ago when Cogmind was first released, I kept an open mind about the future prospect of releasing an official Mac version. Cogmind is my first commercial game, after all, and having only previously released hobby projects as freeware, and only on Windows, I couldn’t be too sure what supporting additional platforms would entail. So I took a wait-and-see approach about whether to provide some form of official support for Macs.
In the meantime I’ve just ensured that Cogmind (and my other software) works perfectly via Wine and similar third-party solutions, but on Steam of course I could never mark it as having Mac support since it’s not a separate download that runs on its own, and whether or not to put together something that would fit that requirement stayed on the backburner as I worked towards 1.0.
Well, by now I’ve definitely waited long enough, and seen enough, to come to a reasonable decision: Officially supporting macOS is simply not feasible for me.
Regarding the timing of this decision, if you follow indie game developers, communities, or news, you might’ve heard a lot of noise lately about Apple, and sadly I’m here to add another voice to that chorus.
Clearly I was already on the fence about the whole Mac thing before, otherwise it might’ve happened earlier (I did spend a while researching and testing the potential for a solution on Macs, in preparation for a potential future public release), but Apple has time and again taken actions which are clearly hostile to developers as they continue the trend of building and reinforcing their own walled garden.
Among their latest moves, Apple’s newest OS drops support for 32-bit applications, which will unnecessarily render a huge library of software and games unusable on Macs, compared to Microsoft which does a great job of maintaining Windows backwards compatibility in that area even as most modern software tends to be 64-bit. This makes it far easier to hold together Cogmind’s existing tech so I can focus on things players actually care about, like more features.
More importantly, Apple will require developers to register, pay an annual fee, and notarize every build they want to distribute, altogether drawing devs yet closer into the tightly controlled black box of Apple’s world.
So not only would I have to buy, learn, and update their ridiculously expensive hardware, I’d also have keep paying them money, and force both myself and players to suffer a slower build turnaround time and other issues all so Apple can tighten their grip on their users and developers. Nope.
Unreasonable Burden
Making games is already challenging enough without platform holders adding to that burden without anything to offer for it.
The notarization requirement is especially terrible for games that get lots of updates (roguelikes! Early Access!), when I might even want to put out several builds in a single day. My normal release process? Simply compile a build here, copy the files into the Steam backend and *bam*, everyone has access just like that--I don’t need to insert a third-party black box into that arrangement.
(Note: My DRM-free release process is more or less the same: Simply zip up a new build and upload it to the release site.)
So yeah there are more hoops to jump through, but beyond the burden is something more worrisome: Basically I don’t trust Apple to care about my interests as a developer.
They have a history of dev-hostile actions that are pushing developers away from their ecosystem, which I guess is an inevitable side effect of having built a successful business around walled gardens and trying to lock everyone inside--some will stay, but those with good options elsewhere won’t.
Uncertainty is already a huge risk factor in game development, from design issues and technical hurdles to market forces and life in general, we don’t need more uncertainty coming from high places that we don’t have any hope of influencing, much less companies with a poor record in the first place.
Non-Apple Roadblocks
Apple aside, I should also cover the reasons that originally had me on the fence to begin with, one of which I’m sure the average Mac user will also be quite familiar with: economics.
Naturally there’s a non-negligible additional cost to developing and supporting an additional platform, one that varies depending on tech and know-how. Assuming time isn’t a factor, sufficient sales volume might make it worth the investment to support other platforms, although this is harder to do without a more mainstream game (that also sells well!) where the inevitably tiny ratio* of players using Macs is still a respectable number, as opposed to working on niche games like I do :P
(*Approximately 5% for your average roguelike, based on the data I have.)
To me, even more important are the non-financial calculations, since Mac players also tend to require a greater amount of post-release customer support, and I’m just one guy…
Of course Mac support request ratios will vary by game due to architecture and player base, but there’s little question that they’re higher in general, which for me is a problem because I’m only really familiar with Windows. Being able to remotely troubleshoot issues is already challenging enough on a system I’m quite familiar with, but at least the years of learning are behind me, that and I can manage a reasonable number of requests. I wouldn’t be able to offer the same level of help to those using other systems, in which case it’s better to not put myself in that position in the first place.
It’s somewhat easier for a team to handle multiplatform support, whereas I’m mostly on my own here doing all the design and programming (in my custom engine--this isn’t “push button to release to platform B” xD) and marketing and all sorts of other things.
What now?
What does this mean for the future? Unfortunately given Apple’s trajectory here, I can’t see doing anything official for macOS. I’m all for accessibility and making it possible for more people to enjoy the results of my work, but this one’s beyond me. Gotta stay sane, and Apple sure doesn’t make is easy!
I will continue to make sure Cogmind (etc.) is compatible with Wine itself, especially since it also works nicely on Linux (and Proton under Steam), so for as long as it’s possible to run it through Wine on a Mac that will still be an option.
Of course, you can also try to stay on an older macOS, though I guess that will only get you so far. It will, however, enable you to use all the other software that’s about to be deprecated as well xD
In any case, hopefully everyone can understand my choices here. Not easy choices to make, but it’s important to stay realistic…
Addendum: I originally wrote this post just as a collection of thoughts and data that I could refer to when asked about Mac support, but in sharing it on Twitter it ended up stirring up a fair amount of discussion!
34 Comments
The only reasonable solution to effectively sign your apps without having to macbook supported by the latest macOS version is MacinCloud pay-as-you-go (also maybe MacStadium) and just signing the app in terminal.
But the really horrible thing for macOS development is the $99/year license. It was the worst thing they could have done to their own desktop OS. And yeah Project Catalyst apps are “cool, and quirky” but it’s not actual desktop software. And Indie game and software companies/devs never have mobile version of their app/game. They have desktop one, because of course they do. It’s still main platform for everything! I love my old MacBook Air but on the hardware side the only sensible upgrade I see is either the highest specced 2014 macbook pro, and/or hackintosh PC. And on the software side it’s like actually depressing, because what is the best about macOS is the awesome native apps developers can create with apple’s tools and best practises. But then again and again they stampede over the actual developers that would want to create those apps. The only one’s still creating little bits of Indie software for macOS are almost exclusively just macOS users that post unsigned apps or have their apple dev license because they create software for iOS as their main job by themselves or for a company.
They killed it a long time ago, and now it’s just getting life support these past two years with dark mode and Project Catalyst. It won’t save it but it will make it breathe for like few more years. I really don’t want it to die, but can’t shake of the feeling that it will.
And yes the latest punch to the macOS gut being the 32 bit support drop. I have like 20+ apps that are only 32 bit, I’m not even sure Wine will work properly. The only reason I see them doing it if they were releasing ARM macbook (the base one they just cancelled) in 2021 and that chip wouldn’t know how to run 32bit. And if that’s so, then just great. I guess people browsing Facebook will be happy and medium to power users that stayed with macOS for all these years can just sod off.
Apple’s really working hard at building the kind of ecosystem they want, it’s just a question of whether that’s an ecosystem that more, or fewer, devs are going to want to be a part of, and we’re definitely seeing a trend in the latter direction, one that isn’t unwarranted :/
Regarding 32-bit support, it’s certainly going to be a turbulent time for Macs, will be interesting to see what the real impact is (i.e. action rather than just talk). I mean they did warn everyone a while back, but warning everyone and devs actually taking action (or being able to take action in the first place) are also two very different things. Valve’s own advice for Mac users is “don’t upgrade to Catalina, dual boot, or have a separate Windows/Linux machine for gaming” xD
I don’t know but you are try too hard to find any reason to leave platform. Notarization and store fees was existing for a long time. About the arch of your game if you say; “I’m developing 64 bit game but downgrading it to 32 bits is really hard” I can accept that but from 32 to 64 is just changing build target, nothing more. Why do people still develop software for 32 bit arch I really don’t understand. BTW most of the thing you say can be automatized using jenkins or something similar. So the whole article is about whining about “I don’t know how to do it, I don’t have 2012 or newer mac, I don’t have 99$ to spend for a year (a whole year c’mon)”. I’m sorry but none of these are real issue.
You’re absolutely right, it’s not any of those individually, I just don’t trust Apple because of their many past decisions and the trajectory they’re headed in. Any of these issues are fairly minor when taken alone, so no it’s not one thing, it’s a growing number of decisions I can’t agree with, and apparently I’m not alone on this given the huge number of devs I’ve talked to who share this opinion.
Although I think you’ve missed the fact that I’m not “leaving” any platform--I’ve only ever developed for Windows, since from the beginning I was a bit wary of Apple’s business practices and decided to see whether it would make sense to support macOS as a lone indie dev working full-time on commercial projects with a custom engine.
I know I have fans of my work who would prefer to use a Mac, so of course I would take a very serious look at it. Technically I even had a working Cogmind installer on Mac some years back, but didn’t want to make the final decision on releasing an official version until closer to 1.0 (which is coming up only now), after confirming that I wanted to deal with Apple in the long term. So I spent a lot of time researching, waiting, recording…
And in the end it’s pretty clear this year marks the end of macOS support from a lot of devs who have even previously released on that platform. Maybe they know something I don’t, or maybe it’s just all the same complaints we’re familiar with xD
Whatever it is, I’ve made my decision. Working with a company like Apple is not for me.
I feel the difference here is there are some developers who want to create and deploy without considering potential future security ramifications to users. That’s what Apple uniquely provides to end users through the Developer program and Software vetting programs. Essentially by using these services, you communicate to your user base that you also care about their security.
There are primary reason users continue to prefer Apple’s ecosystems over Microsoft’s or Google’s offerings:
1) Historically and to date, there are far less malware/spyware/virus implications using Apple’s ecosystem, and
2) The adage “It just works” continues to be the case. Most of us don’t have the same kind of time we had to “tinker” with “customizing” our hardware and software every time there was a problem.
Malware continues to innovate just as fast as developers create, maintain, and update their software. The more back doors you leave open, the more opportunities you create for them.
Frankly, I’ve always wondered why Google and Microsoft haven’t adopted similar security-minded checks and balances to avert the growing issues with system security. It seems it is still the “Wild West” in those ecosystems.
I can’t comment on the problems you face developer-side, but what caught my eye was “Mac players account for 4% of sales but 50% of support requests”.
In the tech-support business I run, this ratio is very similar -- around 5% of support contracts are from Mac users, yet they are near 40% with the number of active support requests. The drop of 32bit support was a massive blow to many of them, effectively sending older versions of licensed software to the recycle bin and forcing the businesses and users into costly new purchases, in some cases well exceeding the cost of hardware.
The solution was simple: keep the Macbooks, junk OsX, switch to Windows10. Some assembly required and minimal retraining, but well worth the time and effort.
Hell hath indeed frozen over :)
Wow, this and similar anecdotes I keep hearing do make me wonder what the desktop landscape will look like in 10 years time… Apple certainly doesn’t seem to care much about growing their market share, at least!
@Kyzrati, when it came to hardware, there where two constants while growing up: Sony and Apple. I could trust the first to provide gear to play my ever growing music collection and I could trust the second to support me through whatever educational adventure I embarked upon.
Now, both of them make their money selling music, movies and services.
Anecdotally, my company sees the complete opposite when it comes to supporting our products. The vast majority of support issues are from Windows users. Of course, it helps to have actual Mac developers (not Windows developers trying to port their code to a different platform) and the fact that since OS updates to the Mac are free, we can drop support for older OS’s much more aggressively than we can with Windows (we just recently dropped XP support but still need to deal with Windows 7). On the Mac we support 3-4 years back, but on Windows it can be 2-3 times that long. Properly supporting software on the Mac means keeping up with Apple’s fast development cycles. You can’t write an application today and expect it to work in 10 years.
But I congratulate you for deciding not to support an additional platform when you don’t feel like you can give it the attention it needs (although I find the majority of your rational to be disingenuous; if you don’t like Apple as a company just say it). All platforms would be better off if developers released high quality, well supported software on fewer platforms.
According to every single dev I’ve talked to about this (many over the years), Windows always has the lowest ratio of issues by far, but that said I only talk to indie game devs and I’m sure the situation could be different with other products or markets.
Whether or not I like Apple doesn’t really play into a business decision, though. I mean I really hate Valve, too, and have been vocal about that, but I still eventually did put my latest game on Steam because it made sense financially in the long run. Working with Apple doesn’t make sense for multiple reasons, not just financial but also as you say their update cycle is fast and they’re perfectly fine with leaving old tech behind at a much quicker pace, requiring more resources to keep up.
Honestly I have other points I could’ve made about this particular decision, and I should’ve framed the entire thing differently, but it was a really quick post compared to most of my longer in-depth articles, meant to be seen only by my standard readers/followers/players, and I even intentionally put it out on the slowest day of the week to try to avoid it getting traction and stirring up unnecessary controversy, but apparently it really blew up.
I would’ve written this very differently if I knew it was going to be read by tens of thousands of people. Oh well, too late for that xD
But the fact that yet more indie game devs came out to voice the same opinion after this post is also pretty telling. I mean I already knew there were many among my own acquaintances out there coming to this decision over the past year, but now plenty more I didn’t know have gotten in touch as well…
This isn’t a fair complaint in the first place. It most likely means that the developer didn’t test well enough on MacOS and is bailing out because they offered something that they really couldn’t offer in all honesty.
I’m sure that effect comes into play with some projects, although the same can’t be said for other good developers I know who do put a lot of time and effort into their Mac version. Regardless, it’s just one point among many that are driving devs away.
Notarization does not require a paid Apple Developer Account.
That doesn’t seem true according to 1) what everyone’s been saying and 2) Apple’s own site:
To distribute your Mac software with Developer ID, you will need to be a member of the Apple Developer Program or Apple Developer Enterprise Program, obtain a Developer ID certificate, and submit your app to be notarized by Apple. You’ll also need to create a Developer ID provisioning profile for apps using advanced capabilities such as CloudKit.
The “Apple Developer Program” referred to is $99/year (source: Apple).
You don’t need to buy new hardware to use the latest version of macOS.
http://dosdude1.com/catalina/
Okay let me first start with I fully agree as an Indie developer it makes little sense to support platforms (macOS and Linux) when < 3% of players use these platforms and the support cost can be very high in doing so, business wise it just isn't a good thing.
That being said, some of these issues are either 1) super minimal, or 2) completely wrong, please hear me out. I develop for all three platforms at work-work (application not game) and understand the ins and outs of these issues. I am also a indie game developer on the side with my own custom engine that has pretty good coverage for all three platforms as well; despite it not making good business sense.
1. Apple is dropping 32bit support.
-- This is a non-issue for new games or applications, and shouldn't be of any issue for any recently built game or application. Apple/macOS has transitioned to desiring 64bit apps years ago, I had to switch over my work-work app for this. Also, it isn't very hard to do, just use 64bit libs and change a compiler setting. The reason some people are complaining on this topic is their legacy games would need to be rebuilt, which is somewhat valid, but look at macOS does have a 'cleaner' environment for deprecating things.
2. Apple require developers to register, pay an annual fee, and notarize every build.
Okay where to start on this one, if $100/yr is too much -- then your business as an indie developer is already going to fail. But the same sort of 'fees' exist on Windows platform too, at least if you plan to properly sign your executable with a certificate so people can "trust" what they download. (Why that system exists boggles my mind, pay money to be "secure" is a bunch a bull but… I digress.) The notarization is a 'black box' much like signing that certificate is, yes it adds about … 3 minutes to your build time and yes is annoying in some sense (and arguably, how is it more secure?) but it isn't world ending or something like submitting an application for review that you must wait weeks on for a pass/fail and sometimes get vague feedback on fail conditions.
The real concern here might be that you need very specific, and fairly expensive for what it is, hardware. With that particular bit I fully agree, Apple should get out of their way and allow building and creation of macOS applications/games from other platforms; but to be fair, Windows is kinda this way too. Sure you _can_ build a Windows application from Linux or macOS, but in my experience it is super visible when this occurs from all the dlls that get bundled that really shouldn't need to be, but they do since it is kinda a hack.
One thing you failed to mention, which effects me directly since I am creating my own engine is the huge fact that Apple somewhat recently dropped support of OpenGL. Now, OpenGL is still available on the platform, but they are no longer supporting it, which means to me that at anytime it will be removed entirely. Much like things shifted to 64bit before it was required, Apple has stopped supporting OpenGL and it could be tomorrow, next year or 5 years from now and OpenGL may not exist in any form. This would immediately force me off the system because I am not going to write an entire separate, platform specific, rendering path.
I'm not an Apple fanboy, I actually don't like a lot of decisions, and I fully agree that as an independent game development business it makes little sense to support macOS on the basis that so few players, percentage wise, use macOS or Linux and not on the basis of $100/yr, 64bit builds, notarization 'requirements' or even in the OpenGL issue I mention; those are just the ways of the platform.
Hi Tim, yeah I didn’t frame this post as I would have if I had any idea that more than my usual followers might read it--turns out a ton of people did and have been picking it apart for one or two points here and there, but too late to go back on that xD. I actually would’ve brought up a lot more points, and put even more emphasis on the direction Apple is taking than just quickly mentioning a few specific recent actions.
The OpenGL thing is huge, but it happened last year so again I wasn’t really focusing on bringing up every relevant point, just talking about the latest moves. I did indirectly bring it up in the post, though--you’ll see that I originally linked to it close the intro where I mentioned “news.” (I’m sure a ton of people missed that, and it’s the kind of thing I would’ve written about explicitly had this article targeted a larger audience!) I know quite a few devs who are (or are planning to) permanently drop macOS support specifically because Apple deprecated OpenGL.
Fortunately I’m not using OpenGL myself, so that alone wasn’t a technical issue, but to me that really is another major strike against the company and their direction. They’ll do whatever they have to do inch towards their walled garden where they have complete control over everything. Notarization is doing the exact same thing. Today notarization, tomorrow they make technical decisions that decide there’s something about your non-malware program they don’t like, and you can’t notarize. And for what purpose? Notarization in its current form doesn’t do a good job of solving a real problem, as many other tech bloggers have already pointed out. There’s a reason so many people are pissed about this, and it’s not just $100. $100 is just icing on the cake, an extra slap in the face on top of the real issues.
Quite true as you say, though, that altogether these are “just the ways of the platform,” though obviously a growing number of devs don’t find it worth it. I don’t have experience outside games, where things are no doubt different, but inside the indie gamedev world, so many devs are done with Apple and being increasingly vocal about it. Things are definitely changing for the worse for macOS as a gaming platform…
I get the reasoning for Mac, but why abandon Linux as well?
In contrast to Apple, Linux really isn’t heading into uncomfortable territory. Quite the opposite, actually, with things like Proton and Stadia, quickly improving drivers, Vulkan, etc..
This article is just about OSX, but since it was aimed purely at my players and not the zillion people who ended up reading it, I thought it made sense to drop a note about the Wine support I’ve been maintaining.
I’m not “abandoning” Linux support, I just never had native support in the first place because the Wine version works perfectly and continues to work perfectly even under Steam via Proton. I like the idea of Linux myself, although economically it makes even less sense than OSX when it comes to building and maintaining a native port. Linux users are yet a smaller fraction of players than Mac users, although indeed by comparison it’s becoming increasingly easy for Linux-savvy devs to support both Windows and Linux than both Windows and OSX.
On that note, it’s interesting to hear that a 32-on-64-bit version of Wine is reportedly in the works, though I wonder how that would work with notarization on Macs in the future. (Probably wouldn’t without warnings, but it’s funny to note that even a prominent indiedev Mac porter has starting trying to convince everyone to get their players to use “sudo spctl --master-disable” to just outright disable Gatekeeper and let everything through!)
Personally I’m sure I’ll end up going 64-bit later anyway, just musing about how Mac users might play before that happens even after they’ve upgraded to a more modern version of macOS.
Which mac porter? Icculus?
Yep, that’s the one. I’m sure that news is getting around now, too…
For an article that has gotten this much attention it is surprising that no-one has pointed out that the support requests graph/chart is not only mislabeled (the numbers and sectors don’t match), but even the ratios don’t match to the numbers. So at least one of the two is wrong and unsuitable for broad conclusions. Also checking the original source, I see that that data comes from extrapolation. Not that this invalidates anything, but I wish we had at least a graph+numbers that weren’t mismatched.
Some great comments here though.
Also I think it would be fair to add an “EDIT:” or “UPDATE:” section to the end with some additional stuff you would really want to say to people landing on it. There are always slowpokes coming to the discussion late.
Yeah ideally I should update the post, but honestly I didn’t want to stir up a bunch of controversy to begin with--it’s just not something I do, preferring to stick with design-oriented discussions and descriptions of processes… I want this whole thing behind me now xD. I would hope that some of the comments since have helped elucidate the whole situation though, like for example bringing up the OpenGL thing which I didn’t put out there in the open as clearly as I should have.
Funny that the pie graph itself was messed up. I didn’t even look at that, just caring about the numbers since they reflect the same trend that I’ve heard from other multiplatform devs, and it was a pretty-looking data sheet they shared, but the whole thing was clearly a manual job xD.
In the end the general consensus is Windows has a much lower support ratio, both other platforms have it higher, although Linux users tend to give very detailed and helpful support “requests” that might even help solve an issue, whereas Mac users tend to be the outliers with just a higher ratio of issues and of little help. I’m sure there’s more empirical data out there, this just happens to be the one I bookmarked a while back because it was pretty :P
I used to make software for Apple. OS X, iOS, watchOS. A few years ago I quit because it’s a terrible experience. Buggy closed source frameworks, wasted time/effort filing high quality bug reports that go nowhere, overly intrusive and complex app review process, etc.
Now I put all of my effort into web apps and while they will probably never match native apps, they are getting close enough. It’s been such a relief to go back to free and open computing and leave the Apple prison.
Tim Cock destroyed Apple, and Purism is going to put the final nail in its coffin.
Apple is being really greedy. Dropping 32 bit support is a ruthless, shameful exercise in forcing people to buy new software. They are slowly but surely breaking every program i bought, a huge investment in time and money, most importantly time. I learned how to use those programs, and many won’t be upgraded.
Sounds like Wine/Proton is becoming the de-facto platform for non-Windows computer gaming. That doesn’t sound too bad, actually.
Meh, but when it comes to WINE, I find that a lot of games/apps aren’t supported. I haven’t updated from High Sierra yet. WINE seemed to have been a lot better for Linux users from what I could see. I tried a few of them and failed to get them working after much tweaking. It’s mostly the reason that I stuck to just playing native Mac games on Steam.
I’m surprised nobody has mentioned that notarization is not actually required.
You can simply right click->open a couple of times the nag screen will go away for that particular app. No need to disable Gatekeeper or anything silly like that, but it does have the downside of having to tell your users on how to do this (on Catalina and above).
That’s because Apple backtracked just a bit due to all the backlash, and the requirements aren’t going into full effect until another week from now:
But all they did was postpone the change, and they’re going to keep on trucking off in their own direction as lots of devs continue to jump ship.
Being a developer myself, I would say that Apple is indeed hard on developers, but some of its hardship forces us to do a good stuff, like bringing dependencies to order, signing the published executables and building for both 32-bit and 64-bit platforms.
Speaking of which… I could bear with having to use wine, but isn’t it time to build for 64-bit, pretty please?
Yeah in some cases one can see the advantages of certain requirements, though in other ways the situation with Apple has gotten even worse since I wrote this article, as expected xD
RE 64-bit: I’m mainly not eager to do the 64-bit thing because I will need to convert my engine and all the many things I’ve built based on it to 64-bit as well, and this could be rather problematic and time-consuming. In addition to the cost of doing so, if and when that happens I don’t plan to support 32-bit any longer, so I need to wait until as many people as possible aren’t using it anyway. The number is probably pretty small by now, but there are some. Ideally it would be after Cogmind 1.0 is released and, even better, if the game was no longer in development anyway (at some point after that), but this is an epic development process so I dunno…
Mac user commenting three and a half years after the original post. I came here looking to find out if Cogmind will ever release on Mac. I respect this openness of your post, although I can’t deny feeling disappointed. All the best :)
Hi Mac user :). Yeah it’s unfortunate but the trend was apparently set. I guess many years ago at the beginning of development I was hopeful that Apple would actually go in a dev-(and therefore consumer-)friendly direction, but nah I’ve seen lots of games fall off Mac in the meantime, and ever more devs swearing it off as it just gets worse and worse. There are still some Cogmind Mac players today (and someone even put together a mod to make it playable on M1/M2?!), but nothing official.