3 ms·
There are usually real legal and procedural obstacles to doing this. Games often contain third-party code that the studio doesn't have the rights to open-sourc
by kevingadd 3y ago
There are usually real legal and procedural obstacles to doing this.
Games often contain third-party code that the studio doesn't have the rights to open-source, and may rely on privately licensed middleware binaries or NDA'd SDKs that you can't redistribute.
For a basic example, even Unreal Engine - which is practically open at present - still restricts its github repos to people who've agreed to their access terms.
Let's imagine you've jumped through all the hoops and have the legal right to release all the code for your game servers. The servers were probably designed to run in a particular environment with access to particular resources - your login servers, your user account database, etc. Do you need to open-source those too?
Let's imagine we're talking about a game like Destiny or Guild Wars where the server also needs access to a big collection of data files. Are you now going to dump a 50gb .tar.gz on a CDN and pay to host it for everyone who wants to download it? How long do you keep that up? Do you rely on the community to host a torrent for you, or rely on the Internet Archive to host it for free?
At the end of the day what you probably get is a bundle of c/cpp files where 75% of the headers they need are there, all the dll/lib files are missing, and once you start the server it's trying to connect to a bunch of services that don't work, and there's no documentation for any of it so the community needs to spend a year plus trying to reverse engineer all of this from what they have.
If a game is well-loved, the community will probably make do and eventually get it working, but it's very much not a "just release the code" situation if you want everyone to be happy. It's expensive and difficult.
- nerdjon 3y agoAdd too that, that there may be shared code bases. Maybe a major part of the server side code is something used between multiple games at your company. Maybe it has references to unreleased games, comments when the assumption was the code was not leaving the company, etc. This is a great ideal that doesn't line up with reality.