Create Custom engine classes for your game module
Contents
- 1 Introduction
- 2 Adding Classes
- 3 Add UnrealEd dependency
- 4 Edit DefaultEngine.ini
- 5 UE4 Answer Hub Related posts
- 6 Extending the editor engine
- 7 How to Include files from another module
- 8 Linking error when exporting component
- 9 How can I set up multiple modules so that they can interact? (theoretical explanation)
Introduction
Creating, custom Engine classes is actually very easy, and there is not much work needed. Why would you want to create custom Engine class ? It's useful, when you need to initialize some data before game or editor will be loaded, during engine initialization, so that data will be accessible after game starts.
Adding Classes
To get started you will need to add two new classes to your project. Note the "U" prefix, which is required for any non-Actor UCLASS. An actor uses "A":
#include "Engine.h"
#include "YourGameEngine.generated.h"
UCLASS()
class UYourGameEngine : public UGameEngine
{
GENERATED_BODY()
}
and
#include "UnrealEd.h"
#include "YourGameEditorEngine.generated.h"
UCLASS()
class UYourGameEditorEngine : public UUnrealEdEngine
{
GENERATED_BODY()
}
Along with standard blank implementation in CPP files.
Add UnrealEd dependency
In your Build.cs file, you will find PublicDependencyModuleNames. Add UnrealEd in it, like this:
PublicDependencyModuleNames.AddRange(
new string[] {
"Core",
"CoreUObject",
"Engine",
"InputCore",
"UnrealEd"
});
Edit DefaultEngine.ini
Now you need to edit DefaultEngine.ini in your project config folder. Open file and add these lines:
[/Script/Engine.Engine]
GameEngine=/Script/YourModuleName.YourGameEngine
EditorEngine=/Script/UnrealEd.EditorEngine
UnrealEdEngine=/Script/YourModuleName.YourGameEditorEngine
That is it! Now when you compile and run you project, new classes will be used.
If you're creating a custom editor engine, there are some more set-ups that need to be done to ensure a proper building of both game and editor. Refer to https://answers.unrealengine.com/questions/41509/extending-editor-engine.html for it.
UE4 Answer Hub Related posts
Extending the editor engine
https://answers.unrealengine.com/questions/41509/extending-editor-engine.html
How to Include files from another module
https://answers.unrealengine.com/questions/54681/how-to-include-files-from-another-module.html
Linking error when exporting component
https://answers.unrealengine.com/questions/31640/linking-error-when-exporting-component.html
How can I set up multiple modules so that they can interact? (theoretical explanation)
https://answers.unrealengine.com/questions/39838/classinterface-multiple-modules-confusion.html