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.”

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

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