Download

Is it possible to create a new game play framework?

I like UE4 but I really want to create my own game framework. That means I would like to create my own GameMode, PlayerController, Pawn, Character etc but without changing the source and I don’t want to extend from them. I basically want to rewrite them from scratch.

It seems that ‘WorldSettings’ is responsible for setting up your game. Is it possible to create your own WorldSettings without extending it? The thing that confuses me is that WorldSettings has its own editor window where you can set things up.

Alternatively could I extend from ‘WorldSettings’ and customize the editor window, so that I can tell it to load my custom GameMode?

Probably you will not be able to do that without modifing the engine source. The main reason to this, that AActor and APlayerController classes are widely used across whole engine code and it will not work without them.
This post may give a bit more information about you question.

Why would you need to do this? We will need to understand what you are trying to achieve in order to be able to answer your question more effectively. Right now if you create a new instance of this, you are in essence creating an extension of the core object inside the game engine and adding your own logic/variables to it. Is this not what you are trying to achieve?

As stated, I am not aware of any way to do this without modifying the source and even then that is going to be quite a large challenge.

Have you encountered shortcomings of GameMode, Pawn or PlayerController? Or are you worried they may come up at some point? Pawn and PlayerController hardly give you restrictions, whereas GameMode can be overriden to effectively replace its entire functionality without you having to modify the source. Granted, there will be functions in GameMode then that won’t be used and having those may irk you.

I have only encountered a few short comings but nothing unfixable. I am a functional programmer and I just wanted to architect the framework a bit differently that’s all.