Hacker News new | ask | show | jobs
by Arelius 2251 days ago
So I've been involved in this sort of process before. IANAL but the answer likely yes, but it is complicated.

So, firstly IP rights may not be your only encumbrances, NDA's can be even more restrictive, since leaking information about a library may be covered, for instance.

Additionally, the IP of the game code itself may be encumbered, for instance with publisher agreements, or if your code is derivative, source for instance may still be considered partially derived from id code, which zenimax, or maybe some other party may own, and getting those rights may be difficult, (even if some large percentage may be released in the GPL'd id codebases) And if your core engine is IP encumbered, that may not be something you could "just release without"

So then someone is going to have to actually do the work of separating out all the third-party libraries, which may not be trivial depending on how many, and how well separated they are.

Then at any reasonably risk-averse company, somebody is going to have to do an audit, which could be a lot of work.

And then we might not just have other people's files to remove, while it may not be an copyright violation to reference API calls of a copyright work (I'm honestly not sure) It sure could be an NDA violation depending on the NDA. Not to mention code that may be derived from library samples. So you either have to cut out all of that code, or rework it to just not be in violation.

And lastly, most companies care enough about their reputation to not want to just dump a large pile of broken code in the wild (Maybe it'd be better if they would) but want to make sure it builds and runs. So once you've removed all those other bits, it may be a lot of work to just get everything building, or running again. And not to mention that asides from just IP issues, a lot of the build system may depend on local infrastructure, perhaps connecting to local databases, or cache servers, so you will want to make it work without that, and we also have to ensure no secrets are accidentally being divulged (maybe signing keys, or credentials to servers)

As I understand it, Valve licenses Havok, which they possibly use for any and all collision (or maybe just rigid-body stuff, who knows) and if so, even if you get the game running you may fall through the world, or perhaps not be able to move at all, which is hardly the TF2 we all want open-sourced. And that's just one possible library, maybe they use RAD Granny to do animation, etc.

Or if you want to allow people to buy the licenses to compile it, you still have to do almost all of the above, then setup the infrastructure to download the correct version, and set it up for builds, and that only works if they didn't make any internal modifications, or maybe they can setup a patch file that doesn't violate any copyrights, but that's also work. And that also implies that the company the libraries are licensed from still exists and is still selling, and still offers the old versions the game is built with. And now you have to release the engine under a license that's compatible with the third-party licenses, which given the precedent of using GPL that adds some extra complications.

So, yeah, there is a good chance it's possible but there is a varying amount of work, which is most likely at least a lot.

As for libraries that exist in that area, of the top of my head some examples:

* Havok/PhysX, physics library

* FMod/WWise, audio libraries

* Natural Motion, animation libraries

* Everything that RAD Game Tools offers, including audio/video codecs, compressors, animation libraries.

* Scaleform, animation libraries

* SpeedTree, tree modelling libraries

* Enlighten, lighting (global illumination) libraries

* Platform specific libraries

* NDA encumbered IHV libraries

Keep in mind, some of these are expensive, but some are more dependent on a corporate relationship, which is not the sort of thing that frequently offers a student or noncommercial version.

1 comments

Thank you for your detailed answer!

But I now go to bed, dreaming of a world, where Open-Source is the standard and IP and NDA madness forgotten ..

Ohh, I agree, I've been working on trying to make this happen for a project I worked on previously for about 4 years now. Have gotten some traction.