> games that have required a bunch of different standalone services just for core logic
But you don't have to design the backend this way. Especially if you know that you will have to share the binaries when the support for the game ends.
> This effectively bans any third party non redistributable libraries (of which there are many), using many open source licensed projects for the backend
Some games that have been open sourced by the developers solved this issue by replacing such library calls with stubs. I think this is an acceptable compromise.
>What if I rely on steam, or epic for P2P and they shutter the service?
If you still support the game, you can replace those services to keep the game running. If you don't support it (or decided that you don't want to keep supporting it because of the service shutdown), then you just release it with those service calls, and the community will replace them (if they want to of course).
So now you have shifted to goal post from "providing a simple runnable binary" (not feasible due to baked in third-party licensing) to "open sourcing the game code, so people can rewrite the game to patch the missing parts".
The few examples you point out as "open source released with stubs" are also usually games that are decades old and cultural landmarks, where there was economic incentive from the right holders (good PR) to release them (e.g. Quake). This isn't tennable for your typical game that has to shut down online services because it's financially unsustainable.
> But you don't have to design the backend this way.
You’re calling for legislating software architecture for a subset of software that is different to how it works everywhere else in the tech industry.
> Some games that have been open sourced by the developers solved this issue by replacing such library calls with stubs. I think this is an acceptable compromise.
The other commenter hit on the moving goalposts - I agree with him and not going to go into that more.
> If you don't support it (or decided that you don't want to keep supporting it because of the service shutdown), then you just release it with those service calls, and the community will replace them (if they want to of course).
I think this shows a misunderstanding of what’s actually involved here. If we can rely on the community to patch in missing calls, (and implement the logic behind those calls) then this law doesn’t do anything - the community are free to reverse engineer the service it relies on. If I make a chess game, and the community remake the matchmaker but without ELO that’s bordering on unplayable - in my mind it’s as bad as the game not existing anymore.