3
\$\begingroup\$

I have my own custom C++ game engine with networking, game logic (most important) suitable for type of games I am working with etc.

I find it harder and harder to keep up with other engines in case of graphical part.

I wonder if it's possible to merge my C++ engine with Unreal Engine? And if so, what would be the best practice for it?

What I mean is to keep my already established game logic and data modules and use UE to render meshes ordered by game logic (I can easily detach the rendering part of my engine, because it's closed into few abstract interfaces that I can implement again with calls to another API or custom code), as well as do some simple physics (the type of games I do do not require too much of physics simulations). That way I could benefit from both UE rendering superior and my engine's tailored game logic module.

I know it's possible to extend UE with custom plug-ins, but I'm not sure it would be the best approach for me.

\$\endgroup\$
  • \$\begingroup\$ It is not allowed to merge engines with unreal engine 4! \$\endgroup\$ – Quonux Sep 29 '17 at 11:06
  • \$\begingroup\$ @Quonux can you extend your comment why it's not allowed? I don't see it in the UE4 license. Moreover, the developers even provide some information about how to modify and extend their source code in different ways. I must have missed the disclaimer somewhere (I think it would be against the other information I've already found in official materials, if you are not allowed to modify, extend and merge UE4 code and re-compile it from source under their license). \$\endgroup\$ – PolGraphic Sep 29 '17 at 13:21
  • 1
    \$\begingroup\$ You are perfectly within your rights to do what you're thinking of doing (and specifically what I suggest in my answer). What you are not permitted to do are things like try to shove together the Unreal Engine and Lumberyard, or similar (look at the Non-Compatible License section of the UE EULA). Nor are you permitted to sublicense Unreal in source code form, etc. \$\endgroup\$ – Josh Sep 29 '17 at 15:43
3
\$\begingroup\$

Yes, it's possible, but it's likely going to be far more work than you're thinking and in the end you'll likely be left with very little of your engine. So it's probably not the best idea.

Unreal is a tightly-integrated package, it's not designed to be used piecemeal, and it's very hard to decouple its various major subsystems from eachother. The component you want to use, the rendering engine, is going to depend on or talk with the core object model and garbage collection, the asset serialization system, the physics layer, the editor for building materials (and in turn the rest of the editor infrastructure), et cetera.

You'd be better off taking your existing gameplay code you want to keep, and adapting that to Unreal (not everything in Unreal has to be done with Blueprints, you can write native C++ just fine, directly or via plugins, as you've noted). You will need to adapt that gameplay logic to work within the framework of Unreal (e.g., AActor instead of your own existing game object/entity system, and so on), so you'll be abandoning almost all of your "engine" code except perhaps systems that Unreal provides no analogue for.

This will still be a fairly significant effort, potentially (depending on the size of your gameplay code base). It's up to you to decide if the perceived gain in graphics functionality is worth the cost.

Remember that good graphics involves good art, as well, and art that is tailored to the way the graphics code works. It's possible your existing art will need to be re-authored because it's flat-out incompatible or because it just doesn't look good within Unreal's lighting/rendering models, et cetera. Keep in mind that overheard as well.

I am very skeptical this will be a net win for you.

\$\endgroup\$
  • \$\begingroup\$ Thank you. I will re-think the whole process based on what you pointed in your answer. As you said, it might be effort on scale that is not that much comparable with benefits I would get from it. \$\endgroup\$ – PolGraphic Sep 30 '17 at 15:17

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.