Distribute project without game C++ source?

Is there a practical way to distribute a project to artists or other content contributors with only compiled binary C++ code? So they are able to work on levels and art assets, test in game, but don’t have access to the C++ source code for any bespoken actors/components?

If you share the Binary folder they would be able to run the Editor but they will need the source if they should also be able to package the game.

1 Like

Why shouldnt they have Access to it ?
Artists cant read the Code anyways (usually) so whats the purpose on that ?

Building some proprietary tech and don’t want it getting out into the wild.

Artists cant read the Code anyways

LOL wut?

1 Like

That might be extreme generalization.

1 Like

That is what NDA’s are for. If you need to share something valuable then that is the only way to protect your property.

1 Like

There is always a way… one way is the artist can commit all the asset and only you can build the package for them. And they can access the packaged project via git/svn for further testing.

There are a couple of ways.

#1: Package up an editor build and just give your artists access to the editor builds.
#2: Just remove access to the /Source folder via whatever source control you are using.

That is what NDA’s are for. If you need to share something valuable then that is the only way to protect your property.

NDAs don’t prevent release of your stuff. It just specifies what liability the releasing party assumes, if you manage to prove in court that they did (at your expense.)

That being said: There’s almost zero chance that someone will steal your code and create their own value from it, which you don’t get part of. For a variety of practical reasons, that almost never happens. The risk of “my thing can’t be done because it’s too hard to share with other people” is a thousand times larger than the risk of “someone might take my code, strip my copyright, re-use that code (without knowing how it works,) and then make a fantastic game on top of that without giving me credit.”

^This^ versus this:

Definitely prefer a technical solution versus hoping / assuming the legal system functions. :thinking:

The US is highly litigious and efficient at legal battles. But most of the 200 or so recognized countries have patchy legal systems you don’t want to rely on for justice. The horror stories are legendary! Think corruption, threats, bribes. For most people, dealing with lawyers anywhere anyway is a painful or nasty learning experience. More so when game dev crosses borders outside of North America / Europe. The internet and hiring remotely means stepping into a global world that creates a very complex legal playing field. Where is the globally enforceable NDA solution that comes at friendly small-claims-court prices…??? :stuck_out_tongue_winking_eye:

In a perfect world, we’d all have the funds to go and fight legal battles. But most devs here are Indies, without a global presence or crypto warchest or profiteering from congress corruption, and so can afford to fight. How many on here honestly have found themselves defending / enforcing an NDA, and been successful at taking legal action without having to donate a kidney to a park avenue attorney??? Its more likely most give up and find themselves having to post in the Scams section instead, as legal restitution either wasn’t an option, didn’t work, or was just too duckin expensive. Want to be proved wrong though. :wink:

If you find one that lasts more than a day let me know :wink: The only lasting solution is not to share it.

Hear ya dude, anything that’s crackable will be (eventually). Makes you wonder why we’re building so many online financial systems at an time where anything can be breached. Who knows maybe it’ll be more chaos, or the start of a revolutionary time where we learn to actually secure stuff. Guess the pay / rewards / prestige will have to be a lot more sexy. :stuck_out_tongue_winking_eye:

For a shipped game, absolutely, people will crack it.

For some technology you are working on locally, and want some artists to help you create content for?

I know you worked hard on it, and think it’s really cool!
It probably is really cool!
But the risks of anyone stealing it are very, very, small. Generally, code doesn’t get stolen, because you need the person who wrote to code to really understand and use the code.
Obviously, there exist projects which are exceptions to this, but those generally are either at the absolute bleeding edge of research, or they are the product of very large teams, where the value of the code is in the cost it would take to replicate it for a competitor – think “google versus tesla self-driving car software lawsuits.”

Meanwhile, the amount of time you have available to make your game vision come true, is quite limited, all things considered. You won’t get back the time spent figuring out how to ship binary-only projects to artists, and then supporting those artists as they’re trying to actually make those work (when they downloaded a later update version of the engine, or are using a different OS, or one of a zillion other problems.)

It is possible to ship only built DLLs, including DLLs for editors. I think the “mod support” is all about this (but I haven’t looked at it closely myself.) If that’s where you want to spend your time, go look at that. I wouldn’t – that’s the best advice I can give.

One way is to use your repository solution. For development we do a non-code SVN repo branch with just binaries, content, config, etc. That way artists or whoever else doesn’t have to check out the whole repo.

1 Like

That sounds like the best idea.

Can also do builds that limit functionality to just the areas the contractors are working on.

Legal protections are of course always needed, but why expose yourself to unnecessary risk giving access to tech in a reusable way.

If you are having someone creating UI using UMG and Blueprints, they wouldn’t need source to the core gameplay/simulation. Or even just have a lightweight shell project with just the UI and integrate with the full game on my end. Nice way to take advantage of the C++ and Blueprint separation.

Obviously if we had a deeper working relationship with a collaborator in the long term, or some one close who have deeper trust with, then access to the entire project.

And I think maybe this is good too…
Build your own dll and UE4 will need to link to external library.

1 Like