Where should i implement whole Client behaviour?

I need entry point for implementing WHOLE Client application, for managing Main Window, Main Menu, Login to Server.

What class should i override? and how to do that right?

As far as i discovered, AGameMode is used per every UWorld or even ULevel, so it can not be used for global client manage.
UGameViewportClient is used per every Split Screen as far as i understand.

Should i override UGameEngine?
If so, where i should setup and change default UGameEngine to my UClientGameEngine?

PS: i am making MMORPG client, without using internal UE4 replication/networking.

What about UGameInstance ?

In UE4 (as well as older versions since very beginning) entry point is a level which can have menu behavior, implemented as level blueprint (which actually can be done in C++ by overriding ALevelScriptActor and then setting your entry level Blueprint to that class) or custom AGameMode. It level can be empty and just make 2D UI display. You can set entry level in project settings in “Maps and Modes” section

For now, i have counted 2 classes, possibly viable for singleton MMO Game Client:

  1. UGameInstance (best candidate).

  2. UGameViewportClient