Distributing source code with user-created plugins?

You’re conflating a major engine version change with point releases. I wouldn’t expect an Unreal Engine 4 to work with Unreal Engine 5 in the future. Unity 4 plugins may not work with Unity 5. However Unity 4.X plugins almost always work when Unity upgrades to 4.Y.

A point release from Unreal 4.X to 4.Y should endeavor to maintain API parity using deprecation, just like Unity 4.X to 4.Y does and this would solve many of the issues.

BTW: RadiantUI provided the full source code to licensees. I don’t know what your particular plug there is with it but in the context of this thread that doesn’t make sense since you got the full source code.

I’ve thought about this quite a bit.

I think from a practical standpoint, releasing source for any portion which directly talks to UE4 interfaces is really the only option. Distribution of precompiled static/dynamic libs or tool executables which do not use the UE4 interfaces should also be allowed. This is form a viewpoint of someone who used UE3 for 10 years and dealt with plenty of middleware integrations.

The engine code base changes too much for it to really be viable to release precompiled binaries that can interact with UE4 interfaces directly. I’ve thought about elaborate cloud build systems which could build plugins against the matrix of engine versions and platforms, but given how easy it is to modify the engine in a way that would break any precompiled binary it’s just not practical. Even if you can keep up with vanilla Epic releases there will be plenty of game teams which modify one small thing (say, to fix a critical bug), in a way that breaks binary compatibility.

For a smaller developer, trying to build and test binaries against all the supported platforms would likely be cost-prohibitive anyway. I don’t think you will see a ton of people going to this trouble even for static libs containing core algorithms unless its something with a lot of investment behind it (like a big middleware package). Even then source is usually available just at a different pricing level.

That said, I have many concerns before I’d actually release a :

Piracy - This is a real problem, if you’ve ever done a Google search for Unity plugins you’ll find they are warez’d all the time. It’s much easier to tell if someone downloaded UE4, made an entire game, and did not live up to the terms of the EULA than it is to do the same for a . Plus most small devs probably won’t have the resources to really go after anyone who abuses it.

Cloning - Without very good filtering of what gets on the marketplace, I think you’ll see this. You see it on the mobile app stores all the time. With a low enough barrier to entry, someone will try and make a quick buck.

Maintenance - There’s a fairly large matrix of engine releases and platforms to support for any . Small devs may not even be set up to build some of the platforms, let alone test them. Part of this I think can be solved with a “supported platforms” list in the marketplace that’s pretty front and center, but I’ve also though Epic could build some infrastructure here to help developers out. A CIS system that can pull from github repros would not be out of the question - not saying it’d be on Epic to fix anything, just an easy way as a developer to have your constantly built against various engine versions/platforms/etc. I think this would take some of the cost off the shoulders of developers and also result in higher quality plugins on the market.

Pricing - One concern I have is the pricing of the engine will set up user expectation that plugins should be “free”. This could set up a race to the bottom scenario where it becomes impossible to charge what it actually costs to develop a . I think the Unity asset store suffers from this to some degree. A similar flood of poorly supported and poorly implemented plugins in the UE4 marketplace would make it less attractive to a lot of devs. So I’m taking a “wait and see” approach to see how well cultivated the “walled garden” of the UE4 marketplace is.

On the pricing front I have brainstormed various schemes where instead of charging fees, Epic does some sort of revenue share from the backend based on usage. It’s kind of out there and I’m not really sure how you would price it. It would address some of the concerns possibly, but maybe introduce a whole other set of problems.

Anyway, to sum up, if there is a source requirement for plugins, as long as it is limited to the parts which touch UE4 interfaces and allows for static libs for those who want to do the investment, I think that would be fine.

C++ binary compatability is horrible anyways. Even if devs put considerable effort to keep their libraries binary compatible, its easy to break. Look how Qt goes through great lengths for it, and UE4 codebase isn’t prepared for it so far as I can see.

As someone interested in eventually making code plugins for the UE marketplace, I am happy with the idea of making the UE glue code available to customers while providing a set of static libraries to isolate proprietary IP. The marketplace could be set up to show which platforms are explicitly supported by a given and if full source was included. Perhaps there would be a “Supported Platforms” list where there would be a box for each platform that said “Source”, “Binary” or “None”. Some devs could provide full source if they wanted to, and those who had reasons not to could still contribute. If the marketplace team were able to build a test framework that could compile, possibly run some tests (stretch goal), and publish the results to the website and directly to each developer for each release (and perhaps daily if a failure occurred) that would be super useful. People could choose to support the developers who met their needs. Seems like a great solution to me!

I’m looking forward to this getting sorted out one way or another. Best of luck!

Epic Marketplace + - Easy workflow for user-created plugins

I think this is good idea, since the Blueprints are open too and the engine source code have the code open, and each user can edit the code or make changes.

Perhaps a third tag SourceGuarantee, in addition to FullSource and ClosedSource, would be useful.
This could denote that the author has provided the full source to Epic, even though they do not wish to make it available to all buyers. It could be done with the agreement that should the author fail to live up to their commitments regarding support and updating to new engine versions (in a reasonable period of time), Epic would be free to then release the source to all buyers. This should allay fears about plugins dying due to the author abandoning them and the users being stuck with binary-only products.

Small point: If I’m not allowed to bundle closed-source libraries that do not depend on the UE4 ABI, then I can’t sell a that integrates to a closed-soure SDK/library. Well, through the marketplace – I suppose I could always try to make a market outside that space.