This isn't a recent thing - as another comment points out, even the original Doom ran into this problem and only the Linux source was released.
This isn't a recent thing - as another comment points out, even the original Doom ran into this problem and only the Linux source was released.
For instance Frictional open-sourced their HPL engine, Penumbra: Overture, Amnesia: The Dark Descent and Amnesia: A Machine For Pigs.
However the Amnesia games are built with Autodesk's FBX SDK, and I don't think they include any assets, they're not necessarily uninteresting artefacts but there's not much you can do with them either.
I moved us from PlayStation 3 to PlayStation 4 for our debugging UI and literally just removing all the calls to the old debugging UI system was something like 2 weeks my only goal there was to get it to not compile. Wiring up all 3,900 debug UI connection points to the engine with access to all the rest of the game engine library and having written parts of both systems in the engine and the debugging library and the new UI library still took me almost 2 weeks I did it with both systems working at the same time which was actually easier than doing a full rip out. The studio I worked at tried really hard not to use proprietary libraries and it was a big deal for us using havoc but we needed to they ended up going back for the next title. They also wrapped literally every library with shims to make it easier to Port but things like physics engines are just basically impossible to wrap fully as our sound engines and font libraries the implementation details leak into everywhere.
The suggestion you're making is a very large amount of work probably on the level of several engineers for several years on a Triple-A title now you're talking like a million dollars for the company to open source it and locking up some good devs for a year or more. There's literally no economic trade off in doing that unless you can come up with a way to make one.
Porting would be an okay economic trade off there.
The resulting code will be broken, but if the community cares enough, they can fix it up.
I don't think this would be a huge effort to do - do you see any issues (legal or otherwise) with this approach?
I bet a ton of companies don't follow those best practices. And there's also the fact that you've now exposed yourself to litigation where some dev violated copyright of previous companies or libraries or whatever and put it in the wrong place or copied it. Before open sourcing you were fine. After you have essentially incriminated yourself.
The doom/quake case is kinda an exception. In that you likely (I'm guessing) had Carmack who is a founder/owner, deeply understand the tech base, understands cost and estimates, likely understands licensing quite well, able to go do the work, but also able to make the cost benefit tradeoff and override objections in some cases. That's not common in many companies.
So of course you don't need to remove your lines of source code which call into an API.
[0] https://github.com/bulletphysics/bullet3/blob/master/example...
(Yes, I would argue that this is exempt following the ‘functional’ argument)
https://en.m.wikipedia.org/wiki/Google_LLC_v._Oracle_America....
Wouldn't the calling code be written (and thus copyrighted) by the company that wrote the game rather than the one that created the SDK?
More realistically, a drop of source code is basically painting a big target on your company to get sued by a troll. I’ve wanted to release my game’s source but am terrified of this.
This is not true. API itself (function names and parameters) does not hold copyright. Otherwise you wouldn't have open-source applications on any proprietary OS, since they have the function calls of proprietary APIs inside.
What can be copyrighted are the header files itself: these you can't redistribute, as you can't redistribute the binary that is linked to the executable. Of course without these you wouldn't be able to compile and run the software, but you can reverse engineer the API from the function names and parameters and even the binary executable (because for an EU law reverse engineering for the purpose of substituting proprietary parts, that is this case, is allowed) and build a replacement for sure.
Note that while the exact header file is covered by copyright, the "information"/"facts" the header file describes (e.g. said function names, parameters, constants, etc) is not - at least as far as EU is concerned anyway (BTW the case you most likely have in mind wasn't for substituting proprietary parts but for interoperability between parts - i.e. it would still be valid for substituting one proprietary part with another proprietary part). This is also why different compilers for Windows have a "windows.h" (or language equivalent) with each having its own copyright but describing the exact same API.
(obviously this is for unsubstitutable fact-like information a header file contains and does not apply for any code like macros or inline methods like in C++ classes/templates)
> This is not true.
You usually have to follow contracts you sign.
e.g. instead of ps3_fly_up(...) you'd rename to something a bit more generic like sdk_float_up(...) or something like that.
It could require a bit of creativity and some work but with a sufficiently-intelligent IDE it'd just be a one-time rename per function name + structure name + field name.
> It could require a bit of creativity and some work but <...>
Honestly, you can stop there. This is why it's not done - the value is small, it requires creativity and work and...
> just be a one-time rename per function name + structure name + field name.
https://sgringwe.com/2019/10/10/Please-just-stop-saying-just.... In this particular case "what about legal" pretty much stops the "just" dead in it's tracks.