And after UE4 could come UE5 and this could be the endless story ... Lol. Is a joke.
Seriously speaking, I agree with Spoof and NickP. Also, in my opinion the most consistent is to work with the tools currently availables and not to base the work on assumptions... I say this because for example if there is a possibility that the new version can take 3 or 4 years this is reason enough to forget it for a while.
Concerning to the ease of porting the code from one version to another, for free users, I think this will depend of the parser (if any), that is, the syntactic analyzer which will have UE4 (as UnrealScript in UE3) and / or the header files (. h) and library function available. They are those who will condition the level of ease or difficulty and accessibility to the code.
So I think it's best to wait and once the new version comes out to learn the library functions, etc. available to us and of course only study previously the basics of C++, the overall structure, because surely many things like pointers, etc. will be useless.
For example, here insert a code fragment of a small engine using XCode (Mac) and C++ that shows how to call library functions.
As you can see in this case it can not be easier. So do I not think you have to worry too much...
void OtherEngine::Begin ( void )
OtherEngine::LoadImage ( 1, "sprite.png" );
OtherEngine::LoadSound ( 2, "beep.wav" );
void OtherEngine::Loop ( void )
if ( OtherEngine::GetPointerPressed()==1 )
OtherEngine::PlaySound ( 2 );
int iThisSpriteIndex = OtherEngine::CreateSprite ( 1 );
OtherEngine::SetSpritePosition ( iThisSpriteIndex, OtherEngine::GetPointerX(), OtherEngine::GetPointerY() );
But it's just an assumption and an opinion.
Petria Mud 1.989