Unreal Engine 4 is the latest game development software developed by Epic Games, creators of Unreal Tournament, Gears of War and Infinity Blade. Unreal Engine 4 is one of the best licensed game engines for high end graphics, since it offers amazing visual quality and fidelity. The engine is updated often, and now they recently released version 4.10 (for this article I'm using version 4.9). Truth be told, UE4 is mostly famous due to the amazing graphic capabilities it offers, and many developers have this "graphics first, other features later" dogma when it comes to UE4. Granted, UE4 indeed can produce graphics that will surpass those of most other available engines, but that's not the reason why you should get into UE4, or at least not the only one.
Just like other modern engines, UE4 allows you to use real-time lighting, top-notch material effects, real time reflections and other things. The engine also offers physically based rendering, so you can get materials that look like real-life counterparts. Since UE4 supports PBR, you can also use materials created in Substance Designer (on a side note, if you're into 3d game development and still aren't using Substance Designer, what are you waiting for?).
If there's anything that UE4 does far better than Unity (besides graphic fidelity, of course), is material creation and editing. Material creation in Unreal Engine 4 is all about using nodes to create the desired material, similar to Maya or Substance Designer, while in Unity you're faced to create your shaders using code. Maybe that's not a big deal if you're a programmer, but the truth is that nothing can beat a WYSIWYG approach to material creation where you can see the results in real-time without having to compile and test your material after every adjustment
I think the greatest strength in UE4 is the Blueprints system. Blueprints is a visual programming system, where you create your nodes with the different functions and plug them with one another. You can use Blueprints to do pretty much anything, from character controls and AI, to complete game logic (for example, letting the system know when a match is over, or who won).
Kismet Programming Language
Keep in mind that using visual programming doesn't mean that anyone with zero programming knowledge can make something. The functions available in Blueprints are the exact same functions available in coding. This is completely different to Kismet in UDK, since Kismet was more "self-explanatory" in most cases. For example, in Unreal Kismet you could simply drop a "See Enemy" node to spawn your characters, but here you'd need to manually program all the functions that would handle the pawn being able to see the enemy, including direct sight contact, angle of vision, sight distance, etc. When it comes to ease of use, UE4 gets a pretty high score. It is very use to get used to the engine, add new content, and edit levels. Since you have the Asset Browser (which is pretty much the same as the "Project" window in Unity), you have all the objects of your current project at your disposal.
On a side note, the new Asset Browser only lists the assets of your current project. Previously in UDK, you could only have one project per UDK installation, but UE4 behaves more like Unity, where you can have separate projects, each with its own configuration. Also, unlike UDK, configuration is done inside the editor, and not inside manually-edited TXT files like in UDK. It's changes like these that make UE4 a huge step forward when compared to UDK, even if that's been common practice for other engines like Unity or GameMaker.
Not everything is perfect in Unreal Engine 4, though. Keep in mind that, to develop in that engine, you need to have a powerful computer, and that it can be very difficult to optimize for some platforms, since UE4 games already ask for high computer specs. For example, many UE4-powered indie games often suffer from poor framerates and slowdowns in some scenarios. Game optimization is a difficult task, and UE4's killer graphics don't really help when it comes to make your games run in not-so-powerful systems.
Just an additional thought on this: Some devs I've known feel the need to say that "since my game is UE4 powered, I expect people who want to play it to have decent systems / upgrade their computers." Truth be told, people will upgrade their computers to play the latest Batman Arkham game (specially after seeing the specs it requires!), but they will not upgrade their systems to play a game made by a small team.
Another thing that you need to keep in mind is the fact that it's not well suited for small games. A simple test game with one level made of cubes can take up to 600mb of space. Having said this, forget about using UE4 for your next Ludum Dare project, or any other game jam game. UE4 is best suited for medium-to-big-or-gargantuan sized games, where people are willing to download 1Gb or more for a game of a decent length. When it comes to licensing, Unreal Engine 4 is free to download and use, and you only pay when you start earning money from your game (5% of the net revenue). That's a pretty low price for such a powerful engine.
If amazing graphics and somewhat large games are your thing, you should give UE4 a try. It's very easy to use (but hard to master), and a lot friendlier than the previous iteration of the engine (UE3). However, if your goals are simpler or short games, maybe you should look elsewhere.
For more information and to download this FREE game creation engine go to: