Download

Can I publish my game made with UE4 as open source game?

Hi, I’ve read in the FAQs’ page on this website the following question:

CAN I RELEASE A UDK GAME AS OPEN SOURCE?
The rights to develop and release a game for free are contained in the end-user license agreement (EULA). The EULA is also the license that governs the release of your game as it’s built on UDK. You can’t release your UDK project under terms other than the UDK EULA (like GPL, LGPL, open source, etc.). You don’t have the right to encumber the UDK with terms that we have not already granted to you.

I haven’t understand rightly this term of use.
What does “You can’t release your UDK project ubder terns other than the UDK Eula” mean?
Can I publish my open source game under GPL license?

Thank you for answer and sorry for the long post, I don’t know English language a lot! :slight_smile:

You can release your own code and content as open source, but not the UE4 engine and related content from Epic.

Under the UE4 subscription EULA, licensees aren’t permitted to release your game, or at least Epic’s code contained in it, under a viral open source license. Licenses like GPL, with some variance, tend to attach to the product as a whole rather than specific bits of code, so they are generally prohibited.

Here’s the specific provision:

You may not combine, Distribute, or otherwise use the Licensed Technology with any code or other content which is covered by a license that would directly or indirectly require that all or part of the Licensed Technology be governed under any terms other than those of this Agreement (“Non-Compatible License”). Code or content under the following licenses, for example, are prohibited: GNU General Public License (GPL), Lesser GPL (LGPL) (unless you are merely dynamically linking a shared library), or Creative Commons Attribution-ShareAlike License. Code or content under the following licenses, for example, are allowed: BSD License, MIT License, Microsoft Public License, or Apache License. You may not sublicense Licensed Technology under a Non-Compatible License.

So, for example, if the engine source is copyrighted
if the source of my game is made up by a lot of .h and .cpp files, do I have to publish only the .cpp files?

You have 2 options:

1.) For other UE4 licensees
The EULA says that you can distribute the entire thing as you currently use it, on a private Github folder, even pre-built with exe’s if you want to, as long as these other people downloading it have a license (“Unreal developers team” on Github or something), then you are doing nothing wrong by sharing it all, and you can dual-license your code under GPL also so that anyone downloading it can also use it in non-Unreal Engine projects, without the EULA. But if they’re using UE4 they are stuck with that license anyway. People who compile the game will need the .h files in the “Public” source folder for your project as well as the .cpp’s

2.) For anyone
The EULA says that you can distribute your code and models and levels (and anything like a level editor but not the UE4 editor) as long as it’s separate from the engine and editor code and the whole source package that you start out with. You can share your project files under GPL, Creative Commons, MIT license or whatever you like, but the game isn’t REALLY open-sourced because the code is useless without the engine. Nobody will be able to compile the game, but it might be usable in another engine line Unity with some modifications.

I am really excited about UE4 and I think it’s better that people pay for it. But still, I think modding should be free.

Hi Archibold,

That’s not quite correct AFAIK. You can not release code under GPL (even as a dual license) that is consuming any code that is covered by the UE4 EULA (e.g., a game made that links against the engine). It is impossible for you to satisfy the terms of both licenses simultaneously. MIT, BSD, zlib, etc…, are all acceptable if you want to release your game as open source, but LGPL and GPL are not. With some gymnastics you could potentially use a 3rd party LGPL (not GPL) library, but it would be challenging as monolithic builds (e.g., your final game binary) currently statically link together, which would cause LGPL to behave like GPL.

Cheers,
Michael Noland

Lets not beat around the bush, every single class that derives from EULA code is a derivative work, whether you’re subclassing UActor or UNetDriver or IRenderInterface, they’re derivative works. Of course this isn’t a problem if we’re allowed to sub license derivative works (under the terms of the EULA of course). Not sure if we can do this though.

Got an answer from a staffer here.

https://answers.unrealengine.com/questions/321377/dual-licensing-engine-plugins.html

That’s not true.

It is derivative work when you modify source file. When you derive class, what you do is similar to linking to the library. “Derived class” is abstraction that calls several functions written by someone else. That’s why you can create derived classes when you use LGPL code.

I’m a bit confused, what happen if I just use an open repository on github? would that be a violation of a license even if I don’t apply to none?
what about projects like GitHub - tomlooman/EpicSurvivalGameSeries: Third-person Survival Game for Unreal Engine 4 (Sample Project) ?

Let’s say that I release a project for free in the marketplace and then share a link to the github project, would that make any difference?

As long as they have an epic games account(which is the only way to get access to a GitHub branch of UE4) I can’t see an issue.

I’m not releasing it into Epic repository, but in my own public repository

This is copy and pasted from the link listed by bleakwise.

Et tu, Brute?

So you’re right that sale of a product incorporating UE4 (in whole or in part, even small part) would be royalty bearing.

So if you’re talking about distributing source code from UE4, even in small amounts, that can only be to engine licensees and not to the general public. The easiest way to do that is through the UnrealEngine GitHub network (although I don’t know that there’s a way to charge via that mechanism) or through the Marketplace (where of course there is a way to charge).

If the code doesn’t come from the Developer or Editor folders, you’re not necessarily restricted to distributing through those two channels, but we also don’t currently provide an easy way for you to know for sure who is an engine licensee.

so if I get it right, if I create a new C++ project from the editor template, I can then place the entire project folder in github cause it doesn’t contain anything related to the source of the engine itselfs

If it’s your code do whatever you want with it.

Yes, as long as you don’t also copy in any assets or source code that is copyrighted by someone else (such as EPIC.)

[QUOTE=jwatte;632453]

[quote]
I can then place the entire project folder in github

Now that I think about it, I have stuff from the starter content which I presume count as Epic copyrighted stuff

99% of the time, your “use” of starter content means that your project REFERENCES the content, and the content actually lives in the Unreal Engine folder, which you do not copy or check into a public github repository.
This is no different from a .h file of yours #including <Engine.h> from Unreal – the copyright does not convey through that reference.

(Separately, the “viral” licenses use your use of their code under copyright as a lever to apply other licensing terms that are not directly related to copyright – using #include for GPL code is not recommended unless everything is GPL!)

I’m fairly sure that the vehicle template content does not live in Unreal Engine folder. Also what about stuff from Epic’s examples, such as content examples? If I use a particle based on one there, is it ok to release the game as open source under MIT or other compatible license?

I always assumed you couldn’t distribute templates or starter content but now reading eula again, it doesn’t appear to be so.
See https://www.unrealengine.com/eula :

in addition, you have to respect this:

so technically, you can share templates and starter content as you wish and sublicense it. You can’t share or sublicense content examples though (even the definition suggests that) as content examples are now marked as UE-Only Content.