4 ms·
I guess this is legally unfeasible. Take a look at the splash screens next time you're loading a game - especially AAA but also smaller ones too. There will beo
by esperent 3y ago
I guess this is legally unfeasible. Take a look at the splash screens next time you're loading a game - especially AAA but also smaller ones too. There will beone page with a bunch of logos. Havok physics is the one that comes to mind but there's loads more. Each of these is a plugin with proprietary code. They would need to be stripped out before the code could be released, which would probably be a lot of work. And then the code wouldn't run anyway.
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.
- masklinn 3y agoIt's often legally feasible but the result is difficult to get value out of (and obviously worthless for the company). 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.
- torginus 3y agoI'd be fine if they put up their code with the proprietary parts removed. They can just include a FIXME stating that the physics engine/video player etc. is missing. If the community picks up the code, they can just replace the missing parts.
- ironSkillet 3y agoRemoving these proprietary parts can actually be a lot of work or potentially impossible without a major refractor, especially if they're foundational to gameplay, like a physics engine.
- skrebbel 3y agoIt can just “ERROR file physicslib.h not found”. Nobody says open source code must compile or work.
- maccard 3y agoYou need to remove all the calls to the SDK too.
- someplaceguy 3y agoWhy is that? 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?
- hesdeadjim 3y agoDepends, if it’s code calling a console SDK API then you are bound by terms of the NDA to not publicly share it — forever. Even just function names! 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.
- someplaceguy 3y agoPerhaps you could just rename the function names, structure fields, etc, to something different but similar? 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.
- cobalt 3y agoA console game will have hundreds if not thousands of API calls, particularly in the io/gfx code
- someplaceguy 3y agoA good IDE can rename thousands of calls in a single command.
- alerighi 3y agoWhy? You just ship the code that you wrote without the third part libraries. I don't think you did copy/paste the library code inside your own, it's probably linked to the executable in some form. Of course it would be impossible to compile the program without it, but as it's said, the component may be recreated by the open-source community, or sourced form the closed-source game in some other ways.
- maccard 3y agoThat's gojng to be a hell of a lot of effort, unless the third party libraries were abstracted out in the first place.
- grogenaut 3y agoI've worked on games before. We ported our game to havock between versions. That took 8 months for one dev. The code review was 3 weeks. Ripping ours out was a month by itself. There were several libraries like that. The sound system was similar and we had to upgrade it every game which was similar work to havock. Heck there was a really simple font to bitmap lib/utility we used and that would have taken several months to replace. A month to rip out. 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.
- torginus 3y agoThanks for taking your time to answer my suggestion in detail. I was just trying to suggest something very simple - just don't include the files that you don't have the rights to - so in your case just don't publish those font and physics library files. No need to completely rip out all references to it. 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?
- grogenaut 3y ago
- stepupmakeup 3y agoI believe most popular libraries and middleware (like Havok) aren't freely available/leaked, OR at the very least it's some ancient version with massive API differences compared to newer versions. Around the time of the Pokemon leaks in 2020 I was watching people live on Discord struggling getting Pokemon Diamond to compile, because apparently the DS Wi-Fi component of the official SDK was never actually leaked online (at the time)