Steam to End Support for macOS Mojave and 32-Bit Games
macrumors.com
macrumors.com
It was game developers who chose to keep producing 32bit software for more than a decade despite it clearly being a deprecated architecture, and clearly having no future, that created this problem. Developers have had more than enough time and notice to switch to 64bit, and chose not to.
I see HN talk about MS being stupid for supporting decades of weirdness, and I see HN talking about how bad Apple is for not doing the same thing. You can't have it both ways: either you support everything indefinitely no matter the cost, or you move forward and require developers to actually pay attention to deprecation information.
[1] Minor edit, macOS had 64bit kernel and bsd layer before leopard for ppc64 but iirc a lot of the UI layer frameworks (Cocoa, etc) had issues that meant it was not really a 64bit OS from an normal user PoV
That said, I agree game developers were/are being slowpokes on this. For games shipped as 32-bit 10 years ago you can use emulation techniques now because you have 10 years of performance gains to sink into the emulation. But more recent stuff shipped as 32-bit is in a special bad place since it may rely on "current" performance…
Supporting old hardware is not free (engineering time is the issue, presumably not money :D), supporting what is in essence an entire dead platform is even worse. It also means that those games and software that are 32bit (or in the case of steam, Intel only) have significantly increased overhead on the system - you suddenly have to map in essentially an entire copy of userspace, and there are likely indirect overheads as well due to page table nonsense, etc. This is before we get to things like rosetta.
HN is not a monolith. There are people on here that hold each of those opinions, and there's no inconsistency because two people on HN are separate entities that can have different opinions. HN is in fact a great place for those people to have a discussion.
From what I recall, the performance benefits weren't even that dramatic (and were only available on the G5 which was already pretty fast for the time), so very few developers bothered building for ppc64 unless they really needed the larger address space.
Something like DOSBOX or Wine but for 32-bit Mac apps would be great. (This exists but not in a capacity that can run games)
I also think that games are uniquely well-suited to running them far in the future. Most productivity apps are either replaced by something else or have a new version that I can migrate over to. When it comes to games, they are typically one-time art pieces.
A game like Morrowind is just as “useful” as it was 20 years ago. Sure, I can play it with a community game engine, but not all games are popular enough to get that treatment.
Although after enough playtime, I found boots of blinding speed to be a necessity. (Blocking the blinding effect, of course)
I wonder why they took levitation out of the later games
There was never a reason for anything published in the steam store to be 32bit only.
Except of course for the ease of porting 32bit games from other platforms. Games that continue to work on those other platforms. Really it's the only sane decision to not port to 64bit just for ~2% of your audience.
I’d expect most of the complexity to have revolved around not having DirectX available. There was no game porting kit back then.
Although, come to think of it: Maybe the actual problem was not being able to (easily) generate universal binaries? 64-bit only would have still been a non-starter in the early macOS Intel days.
Great example of this is a studio that once made excellent games on iOS, Vlambeer:
https://variety.com/2019/gaming/features/android-ios-apple-g...!
I see it almost universally praised on HN.
Just seems ridiculous to break that sort of backwards compatibility
A mixed 32 and 64 bit environment also means having many libraries paged into memory twice, and Apple isn't exactly known for being too generous on their RAM specs.
- dropping the “legacy” ObjC runtime, which lacked many features of the “modern” runtime that all other Apple platforms use. In particular, Swift couldn’t be used in system frameworks as long as the legacy runtime was still around.
- dropping the Carbon APIs, which were an entire alternate API surface only usable by 32-bit apps. Lots of old, obsolete stuff here that very few apps were using: QuickDraw, QuickTime, HIToolbox, Font Manager, etc.
- Disk space savings from not having to ship i386 slices
Like old DOS games, your options are to run on period hardware or virtualize. Modern systems are so far removed from these old 32 bit systems that they may as well be a Commodore 64.
It's time to let go.
This seems totally reasonable to me. Are there many games played today which are A) 32-bit only and B) still need fixes/patch/update support?
Most of Valve's own games are (still!) 32-bit only on macOS, including all of the Half-Life games, both Portals, Left 4 Dead, and Team Fortress 2. The only major game of theirs which is available for 64-bit macOS is Dota 2. (Underlords and Artifact were both market failures, so I'm ignoring them.)
Really, the way Valve has handled the 64-bit transition on macOS has been pretty terrible. Up until today, their recommended "solution" for running 32-bit games was for users to downgrade to Mojave or install Windows through Boot Camp. (Never mind that neither of these is an option for users with newer computers.)
The work has been done on newer versions of source sure, but that leaves you with two bad options. Spend lots of man hours back porting to a dead engine branch for every single game or port those old games on to new engine versions and spend even more man hours trying to update incompatible bits and hope you haven't introduced new bugs everywhere.
Not even close to worth the time for a tiny percentage of gamers for games that were released 10+ years ago.
In addition to this, when Steam detects that a game in your library is not supported on the target platform, the UI prevents you from downloading it. It's certainly possible to use steamcmd, Steam's CLI client to download an entitlement regardless of whether the platform supports it or not, but the game will certainly not be easily accessible even if it would run unmodified. This effectively relegates the access and hopeful functional use of these classic Mac OS X games to digital archivists, developers and/or publishers willing and capable of re-releasing the game for the new target, and/or a third party providing compatibility shims to allow the game to work, whether official or third party.
macOS's player base has always been in the basement. It's a bit of a chicken-and-egg scenario. Apple hasn't made a particular welcoming environment for games on their hardware save for mobile, and that has more to do with the proliferation of smartphones being the new hot place to release software than game developers working hard to make games available. So, the likelihood of there being a plethora of titles released on Steam for macOS that will become unplayable is low, since I have to imagine most of these releases are available for other platforms. However, because of the lack of attention, there's also a fair likelihood that many titles that were released for Mac on Steam probably will be forgotten. As it stands today, 87% of classic video games just aren't available at all any more[0], based on a study by the Video Games History Foundation and the Software Preservation Network.
Isn't emulation a much better approach for that purpose? It's always been unrealistic keeping functional native systems around forever, whether that's game consoles or computer platforms including OSes and drivers etc.
> macOS's player base has always been in the basement.
Unfortunately I agree. There seems to be a recent initiative by Apple to promote macOS gaming (most notably through the game porting kit, but also via pretty good native gamepad support, and I've recently noticed a "game performance mode" – very unlike Apple!).
That said, I'm not counting on Apple's commitment regarding long-term binary compatibility – it's clearly not a priority for iOS either.
This is an opinion I used to hold, so I definitely understand where this comes from. As I've learned more however, I now understand why this is not always a reasonable ask. Depending on the state of the emulator, the level of accuracy to the underlying hardware is pretty broad. Accuracy's not an outright killer of playability - most popular emulators for every console do some trade of accuracy for efficiency. A lack of accuracy however leads to a lack of compatibility. This might mean some titles might run with graphical or audio glitches, some might run with game breaking bugs that make a title unplayable. For the casual game enjoyer though, the bar for "good enough" is pretty low that people thoroughly enjoyed the "Classic" reproduction consoles that were all the rage back in the late 2010's despite them being far from perfect. However, this doesn't solve the key problem that will come with this change, which is availability.
In order to have a title to emulate or otherwise shim into running, you need to be able to download it. While plenty of titles have drifted into abandonware collections or various other sites for you to access, it's certainly gray area territory. Digital archivists will need to get access to the software to preserve it. In the days of classic cartridge based consoles, this meant buying every game you could get your hands on and getting it in the hands of someone with the ability to dump the ROM. With storefronts like Steam though, there is no secondary market to do that on the cheap, and no physical media many games that released exclusively through this Steam, or even the App Store, to be archived outside of this fashion.
You do make a good point though regarding keeping old hardware running. While sometimes you can still find boxes of old components to replace, the amount of supply will dwindle to inexistence. The Super Nintendo speedrunning community is desperate to find replacement components for the ceramic oscillator used for audio timing on the console, as the cheaper component in the BOM is degrading over use and time, causing inaccurate RNG generation and instability.
All this to say, it's reasonably hard to maintain compatibility and playability of old software, and the quality of that compatible experience isn't consistent. I'd love it if game platform developers put more effort into preservation efforts, whether that be first-part production of compatibility shims for newer consoles to play older titles, or an openness to publish technical documentation for platforms to make preservation more feasible by communities. And most importantly, a willingness to offer access to titles from libraries and collections digitally after their money making days are done.
This is alongside losing Win7 support next month because Valve was stupid and built on Electron, so Google dropping support means Electron in general loses Win7 support.
How long before Steam requires a TPM to run locking me out of my games?