I am a newbie in game development world. This past few months I have been researching Unreal Engine 4 (UE4) with my friend.
We found that game development is still hard and time consuming but UE4 does help a lot !!!
C++ Programming In UE4 Is Nice
I am not an expert in C++ but doing C++ programming with Unreal is nice.
It uses macro to make C++ becomes more "modern", like marking a class to be reflectable, supporting delegates and events.
Similar to managed languages like C#, Unreal has reflection and garbage collection. So any classes derive from UObject can be garbage collected automatically.
The current Unreal version (4.10.x) needs Visual C++ 2015 so it also supports newer C++ syntax.
Blueprint Is A Good Visual Scripting Language
Blueprint is UE4's own scripting language. It is visual based and supposedly friendly for non-programmer.
Obviously Blueprint runs slower, but in some cases like animation, you will need to use Blueprint to manage states.
Blueprint is a very good visual scripting system however, C++ is more friendly for programmers like myself. Doing a simple function can be much longer if we use Blueprint.
Fortunately, UE4 has comment mechanism which is useful for grouping list of Blueprint nodes.
As for Blueprint usage, my current approach is try to code all classes in C++ first. If a C++ class needs to be editable in editor, then we will create Blueprint class derives from it.
Documentation is Relatively Good
There are a lot of things to learn in game development with Unreal, so a good documentation is really needed.
Coming from .NET background, I find that MSDN is much more complete.
There are a lot of class without explanations in UE4 doc, but overall it is acceptable.
Community Is Active
Fortunately even if documentation is not complete, the UE4 community is really active. For most cases, if I'm looking for explanation of API and I can't find it in documentation, I'll just search in Unreal forum.
Special mention should be given to Rama. I found that he created a lot of helpful articles on wiki and answered a lot of UE4 questions as well.
Although he is a contributor to UE4 code, he seems to be an outsider, and he is a spiritual healer as well !!!
Unreal Editor is Slow and Requires A Lot Of Memory
Visual Studio 2015 loads fast but it still requires a lot of memory (more than 700 MB in my case).
Unreal Editor, which is IDE for UE4, loads slower and requires much more memory.
Debugging Is Slow
For editing and designing purpose, you will use Unreal Editor directly.
However for normal debugging session, your code will launch Unreal Editor so it takes more time to test and fix code.
One more thing, testing workflow in UE4 isn't that good. It doesn't support TDD approach, and loading test cases needs to close and reopen Unreal Editor.
I commented on UE4 testing workflow here, but apparently they don't have any roadmap for this testing issue.
So far we believe that choosing UE4 as our engine is a correct move.