I've been messing around with this in the past few weeks, an hour here and there. I decided I should probably learn Unreal and Unity both, but decided on Unreal first as an old friend of mine works there.
To put it to the test, I decided to use it for Ludum Dare. So that friday night I loaded it up after I had an idea for a game and started off with the top down sample. I was going to do something click-to-move. Within 10 minutes I had a little man running around and pathing. Everything was very slick and I only had one crash that weekend.
The first thing I wanted to do was bind a couple keys to turn the camera. So I googled around and found where to do that (axis bindings) and set them up, hooked them into a blueprint with a keypress * deltatime and rotated the spring arm thing the camera was attached to. Nothing happened.
I tried a few other ways and still got nothing. So I started digging around looking for debug prints and such to try to figure out what was going on. Over the next few days I sunk about 20 or 30 hours into trying to do my very first task. Turn a goddamn camera based on a keybind. The frustrating bit is, I could write an entire camera system from scratch in less time than that.
Eventually I ended up getting the source, and after some seriously painful compile times found the problem. Axis bindings were just broken in their code. I updated to 9.1 and someone had already fixed it.
So yea not off to a good start. This is typically how it goes with me and middleware. I've had to use it throughout my career and it has always been miserable.
So yea if you start using this, get the source. If stuff is broken, you can at least dig down and find it. However there are many caveats here:
As of right now, some of the build targets don't work as advertised. "Debug Editor" is supposed to be debug engine code + debug game code + uncooked data. Right now only "development editor" works with uncooked. I went in and manually edited a bunch of stuff and eventually got debug editor to behave, but I couldn't even begin to tell you what I did because...
Build times are absolutely awful, AND it will often rebuild the entire goddamn engine for no reason. The docs warn it could be 10 to 30 minutes, but it is 2 hours + on my machine. I still have no idea what causes this but usually if you use the right click BUILD ONLY THIS thing, it won't flip out.
Intellisense goes completely apeshit on this project. I have 8 gigs of ram and when my machine slowed to a crawl I opened up resource monitor and saw 7 instances of the intellisense stuff all eating around 800 megs of ram. There's a setting you have to change otherwise it will go far far over your available ram and your entire machine will seize up. Keep in mind visual studio has patched twice for just this issue. I can only imagine how bad it was before.
Visual studio 2013 is just an enormous hunk of crap. It can't cope with the size of this project. As I type this it is sitting completely frozen spawning instances of vpkgsrv over and over eating 4 gigs of ram. I right clicked on FPlane and hit go to definition about an hour ago. I went to make tea, did various stuff around the house, came back 30 minutes later and it was still going. All it had to do was open plane.h! So I hit cancel and it has been frozen ever since.
The build system is annoying. They have this gigantic convoluted build system with lots of .cs config files that is completely overcomplicated and unnecessary. Simple things like adding in a library is a gigantic pain in the ass. I wanted to pull in a pathfinding library I made and after fighting it for a day I just gave up and put the source directly in my game project.
Having said all that, and keeping in mind that I pretty much universally hate all middleware (especially since there's usually little it provides that I haven't already written myself), there are some good things:
The editor is really really slick. If you are using blueprints, the graphs make sense and work, and there's even a sort of debugging. Everything is snappy and responsive.
C++ integration is super good too. You can actually debug launch the editor from within visual studio, then create a new C++ project from within the editor you are debugging, and it just automagically works. You can add classes via the editor, and compile. It has a psuedo faked reflection that pulls in variables from the C++ classes and makes them editable. Really nice stuff.
C++ is really slow to write stuff with though. It has been awhile since I used it, but over my life, I've written more C++ than anything else, so I guess it is my primary language, but it is just really slow to get stuff done in. Some modern language features like events are done with horrible macro hackery in C++. To use something like that you basically HAVE to have an example to look at. There's no way in hell you'd ever figure out those templated macrod monstrosities. Like gazing directly at Nyarlathotep.
Anyway, just thought I would share. Time to end task visual studio I guess.