17
\$\begingroup\$

I want to write a game entirely in C++, but I would like to profit from the possibilities offered by the Unreal Engine, especially in terms of graphics and physics. Nevertheless, I strongly dislike its visual editor: I find it heavy, slow and unintuitive. Finally, it forces me to use Visual Studio instead of my favourite C++ IDE.

Is there a way to use the Unreal Engine as a big library that I could simply include in my C++ project, or am I forced to used the Unreal Editor?

Related question for Unity: How can I build a game in Unity with minimum/no use of the visual editor?

\$\endgroup\$
  • \$\begingroup\$ You might be able to use the .dll-s from "Epic Games\4.7\Engine\Binaries\Win64" or similar path. But they didn't meant you to use it like this, so you will have trouble figuring out how to use them. \$\endgroup\$ – zoran404 May 10 '15 at 17:13
  • 1
    \$\begingroup\$ I guess this could be possible by using the Unreal Engine's source instead of the editor: unrealengine.com/ue4-on-github \$\endgroup\$ – Kostas May 14 '15 at 7:31
3
\$\begingroup\$

Breaking down what the editor provides and how you can side-step its usage:

Compiling

Technically this is something that Visual Studio is providing but still important. Compiling Unreal is non-trivial and involves invoking the Unreal Build Tool to generate some code (supports things like reflection, blueprint interfacing etc...). Doing this without using Visual Studio is possible but largely undocumented. I guess the best place to start would be looking at how it builds on Linux and mimicking that.

Building the game (i.e for distribution)

In theory this can be done via the command line, but I have had issues where I get weird build errors if I don't first run the editor. I suppose these can be resolved. But again, it will be undocumented and probably quite error prone.

Map editor

The map format is binary so creating maps would be a problem. I believe Unreal Engine needs at least one map to run the game, so you'd probably have to create an empty map at the very least. Once it was created, you can spawn stuff from code.

In fact, interestingly, since the editor is actually included in the source, you could perhaps use the editor methods to create an empty map and save it out without using the editor. In theory, you could even write your own simple map editor, though at that point you are essentially re-implementing Unreal.

Blueprints

Presumably you'd just not use any of the functionality. Though this is a shame as it is a nice separation of data from function.

Materials

There are some basic materials that you could use but again this could be a major pain. I suppose you could write the shaders directly, but I'm not sure how you could then use them as a material.

I am sure I've missed some aspects of it, but to summarise: probably, but you will run in to a lot of problems.

Crucially, the editor functions can be accessed from code, so theoretically you can implement the parts of the editor that you need. However, all this begs the question, why don't you want to use the editor? You are probably much better off simply minimising the amount of time you use the editor.

\$\endgroup\$

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