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.
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.