As I was playing with Unreal Engine and browsed through the programming guide, I was struck with a bit of nostalgia. The programming interface is very similar to how some of the C++ systems I worked with at CCP and are very similar to other C++ engines that have filled a couple of books that I own.
There are a small set of PreProcessor macros to define your base object, persistence and exposure to the editor and for thunkers in regards to the blue prints.
I don´t think it is very fair when you are comparing Unity and Unreal Engine as generic tools. They are quite different beasts when it comes to what they can do and what part of the development problem they solve well.
Unity is very well tailored towards making it easy for novice people to get something running and working on numerous mobile platforms very quickly.
Unreal has a lot of infrastructure to help it run within very limited constraints with a lot of its strengths in the rendering side of things. It can throw a lot of things on the screen when you are dealing with high end machines, such as gaming consoles and PCs. Its pipes are very polished for those platforms.
Unity is well suited for low to mid range targets, and Unreal for mid to high range targets.
Both of these engines would love to be able to do what the other is doing. Be very easy to use and be able to render the most beautiful things imaginable as efficiently as possible.
But all I care about, are they able to do what I need them to do, when I need them to.
As a programmer, the interface and tools of Unreal Engine are a lot more mature. As a game designer, the tools in Unity offer faster iteration to get up and running and can run well on the smallest of machines. But the speed of iteration is also highly tight to your experience with the software.
I like what I have seen so far of Unreal Engine and I look forward to playing with it some more for a prototype I am playing with.