When I was a senior exec at a big public tech company, there was a product we decided to discontinue and we thought would be nice to just open source. Somehow I ended up in charge of managing that process and was shocked at how complex, time-consuming and expensive it was in a multi-billion dollar, publicly-traded corp vs some code my friends and I wrote.
Legal had to verify that there was no licensed library code used and that we had clear, valid copyright to everything there. The project had been written over several years, merged with a project we'd acquired with a startup, some key people weren't around any more, the source control had transitioned across multiple platforms, etc. And even once we nailed all that down sufficiently, we didn't get an "all clear" from legal, we just got a formal legal opinion that any liability was probably under $1M. And then we had to convince an SVP to endorse that assumption of $1M potential liability and make a business case for approval to the CEO.
For a public company, the default assumption for any online game would be "the server side code WILL be open sourced" (under threat of prosecution). That means legal would mandate "No commercially licensed libraries can be used, any open source libraries will have to be vetted to ensure the license is compatible and everything else will need to pass IP and compliance audit." That will certainly have an impact on development time frames and economics.
So while I believe you about all those difficulties existing today, it's plausible that they would mostly fade away over time. I think temporary growing pains would be an acceptable price for the significant long-term public benefit.
Huh? Client-server architecture does make things more complicated to implement but it's not THAT bad. And you (usually[1]) do it in service of multiplayer, not because you're big budget or just want to complicate things.
Among Us was literally a three-person team.
[1] I find there are some major benefits to it, especially in post-LLM-world, and have been strongly considering it for some of my solo-dev single-player projects.
Designing a game to use developer hosted servers is a choice they made. Probably to squeeze money from microtransactions.
This. I mean, modern game companies could setup a common (for every game) Headscale or similar solution, let group of friends create their own private VPN between them punching through any NAT and host their own distributed multiplayer game. Yes there is still some involvement server aide from the company but it could be easily shared between games. And if support ends, you still leave players with the option to use their own LAN/VPN system.
Timing issues can be worked around and GPS modules are cheap.
NAT problems aren't usually that bad. Only a minority of networks use symmetric NAT implementations, with most seeming to be using port-restricted cone NAT (EIM/APDF), which can still communicate with any other NAT implementation using endpoint-independent mapping (EIM). Most CGNAT implementations that I've encountered use EIM, with some also doing endpoint-independent filtering (EIF). Between UDP hole-punching, UPnP, NAT-PMP, and IPv6, it's usually possible to establish a P2P connection between 2 endpoints.
A game could use a hybrid client/server and P2P model, with the option to run entirely P2P while accepting its limitations.
Centralised servers allow for subscriptions and other stuff.
It's now a lot more tractable to build a multiplayer game, on the other hand balancing it is a whole other kettle of fish
Didn't stop it from being a fun, successful game but there's no comparison to the work and complexity involved in larger games.
Recap:
> Client-server architecture does make things more complicated to implement but it's not THAT bad. Among Us was literally a three-person team.
The scope of the discussion extends beyond simple games like Among Us and some games require highly complex networked architectures that would be non-trivial to open up.
That said, I don't mind a tangent, and I have built services for large multiplayer games and it really is not that bad.
Untangling the entire lot to make the game available upon closure would be a nightmare in some cases.
I've also contributed to game server emulation (pre-professionally) to keep them alive, so preserving games is a cause I support, even if I don't think it's necessarily always going to be trivial.
This is only true if the game wasn't architected with open-sourcing in mind. Which affects how this kind of law should be structured.
For example, it makes sense to require the server code to be submitted to an escrow service from the beginning. Part of that process would be a license evaluation, which acts as a forcing function already during the development process.
Yes there was. It was a 3 person team. That's a good enough reason to not have almost any feature that requires any amount of work, including UI work, because there is always a whole mountain of stuff that you're not doing that you'd like to do as a 3-person dev team.
Or it could make it a lot cheaper, if the server were developed entirely on open-source infrastructure from the start. Hopefully the actual game logic would be developed entirely in-house, making it easier to audit before releasing.
It might make a community rewrite of the server code easier, but that would likely only be attempted for very few games.
When the library vendor licenses some proprietary crap to a game server vendor, they take on the risk that their library may fall under the open source requirement when the game server shuts down.
At shutdown, criminal law says the library vendor must open source. Since criminal law preempts contract law, no amount of weasel words in the software license change that.
Even if the upstream vendor is out of business or something and did not provide source, surely, the binaries fall under the the open source clause.
Problem completely solved, and no lawyers need to be paid after the fact. (Library vendors might want to pay lawyers to tell them not to license to game servers, or not. Either way, that's not the customers' problem.)
And its not like its a bad thing for a company to calculate in the full cost from the start rather than offloading it onto society when they drop the product.
An outcome so common they invented a word for it: https://en.wikipedia.org/wiki/Malicious_compliance
If game-specific logic is not public, information needed for reverse engineering could be completely missing, but if game-specific logic is available plus the names of the missing libraries, reconstruction of the game should be possible eventually.
[1] https://drewdevault.com/blog/Open-sourcing-video-games/ (See "What if I don’t completely own my game?")
That's a very reasonable way to address the issue of 3rd party licensed IP. I expect something like that will get incorporated into the legislation. In fact, I'm confident it will because well-funded lobbyists will ensure that common sense concern and its very reasonable solution are heard.
Then Electronic Arts and Microsoft will sell their existing server code to newly formed companies (which they happen to own). Then their captive game studios will start releasing new versions where the publicly released "server source code" is five pages of #IfDefs followed by a call to "Start_Totally_3rd_Party_GameServer" in the new library that's not required to be included in the mandated release.
For extra credit, the newly formed 3rd party entity will be incorporated and domiciled in Ireland, Malta or whatever country is currently most tax and currency exchange advantaged. Then the license fees their captive studios have to pay to use the 3rd party library get offshored and tax sheltered - while being large enough amounts to prove this definitely isn't a sham transaction!
To be clear, I don't approve of this myself. In fact, I hate it. But I worked at a high level in a top ten publicly traded tech giant long enough to see how the armies of soul-eating MBAs, lawyers, consultants and lobbyists can subvert anything. Fortunately, only half my soul was eaten and some of it has regrown.
Lots of games are written in C++ to this day for example so they can eek out every bit of possible performance no matter the trickery required. I would presume this extends to server side of MMOs etc too. C++ has no standard build system even, it's sort of settled on CMake mostly, which has minimal native (working) support for dependencies even, let alone lock files and/or BOMs.
> Legal had to verify that there was no licensed library code used and that we had clear, valid copyright to everything there.
I can tell you the other side of that equation. There's no poison pill -short of outright fraud- that will kill an acquisition of a software company, than open source code embedded deep in the product.
I've been in both sides of the table of M&A activity, and in the due dilligence, smart acquirers will always look at the code and libraries in use. If there's anything that even has the hint of open source, that is heavily scrutinized: what is open source by default can't be owned by anyone and if it cannot be owned, it doesn't have IP value.
Most deals that ran into this issue would stop dead in their tracks, and it would take a while to spin back up, that is if the deal went thru at all
Open source is a pretty broad umbrella. I doubt a company would say Slay The Spire 2 was poisoned by Godot and that there's no IP value.
Sure, in some cases you can roll your own server, but often it's impossible.
Git has ended the accusations people have leveled at me for code theft. (I beat them all back because I had meticulous documentation and the accusers always had nothing. Git just made that easy.)
For my work, Git (and Github) have been a godsend.
Have it read and compare the code with what it knows about open source. Many AI engines can also google that and give a comprehensive list of similarities.
Reduces the list of things to check by maybe orders of magnitude and months to days.
Your company did not tracked libraries licenses in the first place?
If your company has issue achieving this, then it was simply not complying with those licenses.
You can go through all licenses just by checking their list in maven. None of that is hard or expensive.
Since around 2010, that in most projects I am involved, the CI/CD pipelines can only talk to internal repos with vetted dependencies.
You can still do whatever locally, however the build will break when using non authorised dependencies.
(Also, legal will basically never give an 'all clear'. That's not their job, their job is to inform you of the risks, and so it's extremely rare that they will not come up with some)
I don't think there would be much of an impact long term as third party frameworks would be forced to adapt their licensing or die. It's not like years old source code is really as valuable as some companies pretend.
A lot of the pain you experienced is mainly due to making the decision to open source after the code was already written rather than from the start - its really no different than any other late requirements change.
Imagine an MMO where special text in the chat causes viewers' clients to crash, or a glitch exists to duplicate items or money, or where anybody can crash the server to run arbitrary commands.
The original server binaries were left on the original CDROM by a programmer.
Then PriitK, a creator of Kazaa and then Skype and Joost!, went on to re-create the client due to cheating/hacking, naming it Continuum.
Years later the server is reimplemented as A Small Subspace Server (ASSS), making it a complete fan remake of the original game (sans graphics). This is also when we finally got server side mods, everything before that was client only or a hack.
We even got on Stream Greenlight.
https://store.steampowered.com/app/352700/Subspace_Continuum...
We're lucky we got Priit to release the encryption/security module so Continuum clients could connect to ASSS servers without the security warning. I doubt it'll ever be updated, someone will have to take up the mantle.
No need to imagine. Pretty much all of that (minus the last part) happened in Amazon’s New World MMO in the first few weeks.
Though I wouldn’t be surprised if the last part did happen and we just didn’t know about it.
https://techcrunch.com/2023/02/28/gamers-are-fixing-a-video-...
No, it just means you need need to limit players to a trusted community - but that is usually how things work anyway because malicious players don't need any exploits to make a game unfun.
But I have found that the greatest modding efforts/community can be generated by open source. Balatro for example is easily modified in the sense that although it might not be open source but iirc its lua files are visible.
There are other games as well which have something similar imo although that being said its possible to create modding efforts without open source in general too with say something like for example old versions of counter strike.
Personally I would prefer open source though if its possible but I understand that some game studious might be worried about it but I don't quite understand it if they are shutting down the game anyway though. I think that @mjr00's comments are nice about third party library etc. which cause issues in open sourcing so its good to have a discussion about that too (imo)
Also, does this stop at games? Why not any online service ever? Why not any program at all?
Maybe this is the reason MS has been pushing Game Pass so hard, to get rid of the "purchase" part entirely.
Vehicles? Maybe not necessarily forever, but I'd expect the large car manufacturers to all still have some level of support for a 20-year-old car...
The issue is nobody gets that option if the ability to run a server is made unavailable to the public.
A game although specified as a license is treated and described as a purchase that is expected to work forever on the end users device so long as it fits the specs.
Then the game developer/publisher should choose to use another technology or be ready to replace that piece when game reaches EOL. If no game developer can use that technology, the vendor will end up loosing a lot of sales. They can then decide if more permissive license would make sense.
There is basically zero chance that when given the choice between "structure billing as a service" vs "rewrite everything and open source it" that they will choose open source.
It's nice in theory, but in practice many (most?) games are using middleware they don't have the rights to redistribute as open source. IIRC when the source code for Doom, the first major commercial game that went open source, originally came out, it had all of the sound code removed because it was dependent on a third party library. Not that you're going to have sound code in a server, but you may be using third party libraries for networking, replays, anti-cheat, etc.
Which is also a nice side effect to reduce intellectual property barriers for developers that do already want to distribute their server or source code.
We all agree there is a foolproof method to fixing all bugs - delete all the code.
We also all probably agree that isn't the optimal balance.
Larger game studios would likely adjust as you say. However they too could adjust in such a way that they only offer subscriptions within California as that appears to exempt them from this rule. Many outcomes are possible beyond simply adjusting to the legislation in the way you are suggesting.
A) This state is not inherent but a result of there being no general requirement to release the sources. Middle ware would use different licenses if that was required to have any customers.
B) Omitting the sound code did not stop the community from releasing source ports based on that release, with sound of course.
That might be fine for very small titles - where the "game server" is a relatively simple binary that can be run anywhere. Larger titles depend on a huge amount of infrastructure, for authentication, progression, matchmaking, etc... It's not feasible to open-source all of that, especially given that it may well still be in use for more recent titles.
If they're still running their authentication server (for example), then they wouldn't need to release that service.
Patching the game to no longer contact the authentication server would also be acceptable, for services that aren't a core part of the game. It's pretty likely the game already allows this for development/debugging.
If they've accepted money from people to buy the game, and don't want to keep the authentication service running, and don't want to patch the game to no longer require the authentication service, and don't want to refund people, and don't want to release the authentication service so others can run it - I think it's fair for a regulation to force one of those.
Or what's likely cheaper is budgeting for that patch in the game.
You may bemoan "oh they just don't want to release the auth service", but it functionally shuffles the cost math.
I'd personally rather the 5% cheaper games than trying to play a multiplayer only game 20 years later wtih 6 people on the server.
They don't need to keep services running perpetually. strags's objection seemed to be that it could be infeasible to release services like authentication that they're still running, to which I'm saying they don't really need to consider any of this until they stop running it.
> You may bemoan "oh they just don't want to release the auth service", but it functionally shuffles the cost math.
Releasing or patching it out is largely just fulfilling their side of the deal.
If I sell you a lawnmower that depends on some authentication server to start up, then shut down the server the next day (I got your money, why would I keep the cost?), and don't release the server code or a patch to work without it, then would you not say I've scammed you?
The resource cost of everyone I've sold to losing access to their lawnmowers would be far greater than what it'd cost me to release a patch, just that the former is not a cost borne by me if the law allows me to ignore it.
> I'd personally rather the 5% cheaper games than trying to play a multiplayer only game 20 years later wtih 6 people on the server.
Allowing a company to cut people off of their software (large cost) just to save having to push out a patch (small cost) will, on net, result on more expensive products - since on net you're wasting more resources.
Particularly when it comes to authentication checks, this doesn't just apply to multiplayer games. Imagine if this applied to other forms of media (already kind of happening with DRM), like if we couldn't read books from over 20 years ago.
A lawnmower isn't a piece of software. It's not licensed. There's an expectation it should continue working. The lawnmower is a single player game.
I think it's understood that online games are a license (read multiplayer ones, not the Crew).
If I sell you an IoT lawnmower, and you get 20 years out of it, do I owe you a full refund if I shut down my server? imo, any refund should be prorated.
I get your externalities argument, but I think multiplayer games should be treated differently if there's not an easy solution.
>Allowing a company to cut people off of their software (large cost) just to save having to push out a patch (small cost) will, on net, result on more expensive products - since on net you're wasting more resources.
I don't think all the patches are small costs when you factor in licensing, etc. Also keep in mind if you use a library for networking and the API changes, do you have to then roll it on your own? I'm skeptical of the middleware that's made life easier
>Allowing a company to cut people off of their software (large cost) just to save having to push out a patch (small cost) will, on net, result on more expensive products - since on net you're wasting more resources.
This doesn't logically follow. Mandating you need to put out a patch creates a legal obligation that would sit on your books. Cutting the 12 people off your multiplayer game after 20 years isn't a large cost, and it's not going to make your next game more expensive. It was an externality that made consumers sad, not one making products more expensive.
>Particularly when it comes to authentication checks, this doesn't just apply to multiplayer games. Imagine if this applied to other forms of media (already kind of happening with DRM), like if we couldn't read books from over 20 years ago.
I think the DRM thing is a separate issue from the mandate for recoding games to be usable post server shutdown. I'd like it to be legislated separately as well. The books are analogous to single player games.
I think it's a slippery slope to turn that entitlement onto multiplayer games; if not that, then why not all software that you buy? Everyone should get a full refund when any software EoL's and companies go bankrupt whenever an online product stops being profitable.
You don't get a full refund in other sectors when they kill the consumable after a long while. Printer cartridges can stop being made and you don't get a refund for your printer. We didn't give HP the option "make your competitors ink work on your printer, give full refunds, support indefinitely, or open up your ink manufacturing line blueprints".
I believe we should be able to have the same expectation of software, at least where not specifically sold as "X months of access".
> If I sell you an IoT lawnmower, and you get 20 years out of it, do I owe you a full refund if I shut down my server?
Ideally, to avoid unnecessary e-waste, you should patch out the requirement or release the server-side code so I can continue using my lawnmower. Buying it off me might also work, if you're offering approximately what I'd get out of having it continue to work, but I'm not sure if that scales well.
> I don't think all the patches are small costs when you factor in licensing
If bills like this pass, middleware providers would need to license under terms that allow distribution at end-of-life, or lose out on all customers selling software in California/EU/etc. Should also help clear obstacles for developers who already want to distribute their server/source code even before this law but are held back from doing so.
> Mandating you need to put out a patch creates a legal obligation that would sit on your books
There's no issue with creating the patch/releasing the server-side software early, just that I assume they'd want to maintain exclusivity to milk profit for as long as possible.
> It was an externality that made consumers sad, not one making products more expensive
If you expend resources to create some media/software/product, then brick that product while customers would've otherwise still extracted value in excess of the patch's resource cost (developer time, not licensing price), then you're on net wasting resources and thus making products in general more expensive.
Issue is that because the cost of patch is borne by the company, whereas they get to ignore the cost to the customers of bricking the products, the latter is often preferred even though it's typically the more expensive option by a significant margin. A bill like this should fix that.
> I think it's a slippery slope to turn that entitlement onto multiplayer games; if not that, then why not all software that you buy?
I believe it should, and that for a lot of software the case is even stronger.
> Everyone should get a full refund when any software EoL's and companies go bankrupt whenever an online product stops being profitable.
If you take someone's money to buy a CAD package, then no longer want to provide some service it relies on (usually just for authentication reasons), then you should release the server software or patch out the authentication check.
> We didn't give HP the option "make your competitors ink work on your printer, give full refunds, support indefinitely, or open up your ink manufacturing line blueprints"
I'd 100% support doing that!
Of course that is regrettable and could be changed, but it would require a significant change in incentives.
This legislation might be more persuasive if it were tied to a reasonable time limit, but I don't see anything of that nature in the text. An obligation to support or refund customers that lasts for a fair timespan (ie. preventing rugpulls) is far less onerous than an obligation to release your code to satisfy someone's nostalgia.
Even for games with centralized server-side progression, if you don't want to release the authentication service when you stop running it, then it could still be acceptable to patch out authentication by default and let those running community servers substitute in their own access system (like cracked/leaked unofficial servers already do).
> This legislation might be more persuasive if it were tied to a reasonable time limit, but I don't see anything of that nature in the text. An obligation to support or refund customers that lasts for a fair timespan (ie. preventing rugpulls) is far less onerous than an obligation to release your code to satisfy someone's nostalgia.
Should we be able to read books and watch movies that were released over, say, 20 years ago - or is that just satisfying someone's nostalgia? Maybe you don't think this matters for games, but with DRM it seems other media isn't far behind.
The specifics can be hammered out, but something middle ground seems sensible.
Said this in another comment: In case a company or new management wants to renew an IP, maybe there should be a waiting period like 1-5 years before they are legally required to release/open-source the server code.
Or how about this: what if, in order to launch a new online-only game in the first place, companies have to submit a copy of the source code as it is on launch day, to the courts or wherever. Then the courts could release it if the game hasn't been active for N years...
While I see problems in the law but the spirit is reasonable. We need to push toward this direction. At least there should be difficult economical trade-off for publishers when they decide to shut down the game. Nowadays, some random executive just takes look into some excel, see some games have declining revenue and decides to "simplify the business" without much thoughts. This has to stop.
This way the company can avoid spending too much money on open sourcing the code, and the community can just rewrite the server while keeping the original binaries running.
No, and requiring this will likely give the opposition counter points.
You don't need the source code at all. You only need the ability to run the server yourself.
So people were allowed to selfhost.
Of course this probably doesn't scale or work for every company but I thought it was nice to see.
For a number of reasons (licensing issues, code being lost, etc.) this will only work if source code must be escrowed long before that time.
I also really support giving 60 day notice if an online game is going to shut down. Places I have worked have had policies like that for games they are sun setting and I think the best game publishers think a lot about how to do that operation. It's not simple, because if people think a game is going away their behavior changes. And nothing sucks like buying online content for a game right before it shuts down. No matter what you do people will tell you they didn't know the game was shutting down. And if you give away content that you previously sold that also sometimes angers the community.
The problem is when companies know a game isn't working they tend to want to shut it down right away because the money they spend keeping it up is never coming back. And maybe the company is going to die too. So I do support a law for a 60 day notice.