Hello I have almost no coding/programming experience or game developement experience for that matter. I want to start making some small games to get started but I don't know which engine to use. So I ask which game engine I should use to create a 3D low poly, Online, PvP game (or work my way up to that). Or which engine should I use for any games period given my level of experience.
Just to add my 5 cents as a longtime Unity User (4 years total) and newbie Unreal Engine 4 user.
Ue4 is a fantastic engine, I am really excited about learning the ins and outs of it... but the more I learn, the clearer the picture gets.
IMO, Unity 5 is easier to grasp for a newbie, and lets you still work more efficient even if you have more expierience. It is clearly made from the ground up for Indies and Small Teams needing all the efficiency they can get, and Unity has the better Tutorials and API documentation.
Many things are neatly integrated into the Editor in Unity. And many things are simple that are not in Unreal.
Need to transfer something from one scene to another? Drag and Drop it from the Scene Object list to the Asset Browser, Unity will automatically create a prefab out of it. Intuitive. In Unreal, you need to make a blueprint out of it, and there are limits to what you can convert to blueprint. Only then can it be saved and used in another scene.
Need to create a cubemap out of 6 images to create your skybox from? Just create an empty cubemap in Unity, drag and drop your 6 images into the right slots, and Unity handles the rest. Unreal will ask you to use outside tools to create a DDS format image out of your 6 source image. Only that can be used as cubemap source.
There is Blueprint, but for me as a programmer this is just another Programming language to learn. I am sure once you master it you can drag and drop scripts together much faster than with writing code, but then you cannot look at an image of a blueprint script and reproduce that 1 to 1 because the node names differ from the name in the list you pick the nodes from.
If I had to start over... I most probably would start with Unity again.
Now, where there is light, there is also shadow. Unreal clearly has the edge when it comes to rendering quality, at least out-of-the-box. It is much more forgiving in making the best of the 3D models you feed it (Unity by contrast can be rather fickle, if some normal is not aligned correct or there is some pixel error in the normalmap, Unity will show it, while Unreal will often not). There are so many options to completly confuse the beginner, but giving the more expierienced a lot of control over many aspects of the renderer and engine.
So much stuff that need to be bought from the Asset Store in Unity comes out of the box with Unreal.
And then there is the engine source code... if you are an able programmer, and really need something that is not supported out of the box, you can make it happen.
More often than not, that means ugly workarounds in Unity because their engine core is still closed source. And you never know if your ugly workaround is still supported in a new engine version (happened to me, though that was a PhysX physics engine feature that got cut).
IMO, Unreal Engine 4 is written by professional game devs for TEAMS of professional game devs... you know, the teams where everyone is a specialist and knows his thing.
Unity 5 by contrast is made for the small Indie lone dev and small mobile teams.
Unreal Engine 4 can be clearly used for creating mobile games and by Indies and hobbyists... you just will need more time to get into it, and more tools to suplement engine editor features. Unity might just make you a little bit more efficient, if you are not fussed about the visual scripting and get able to learn C# (the C# API of Unity is really good).
Unity 5 clearly can be used by larger teams and for big fat PC games... you just need to massage the renderer more to get good graphics quality out of it for modern 3D PC games, you might need 3rd party assets to add missing engine features, and a 3D artist that knows how to make his models look good in the engine.
AFAIK Unity has never been rewritten from scratch... seems like the Unity team is just adding features with every new version, sometimes replacing systems, but often just adding to them (hence the bloat of different renderers for Unity, forward, legacy deferred, deferred). And they have started as an Indie and mobile friendly engine.
Unreal by contrast gets rewritten from scratch for every major release and started life as the engine for epics own games... thus it is clearly PC centric, and has less bloat. You can be sure no part of the engine is older than 2012 (Or whenever they started developing the version 4)... in Unity there might be still part in the engine from 2006, from Unity 1 days.
2 radically different approaches producing 2 similarly powerful and well supported engines capable of producing any kind of game. I personally would say Unity is just that little bit more approachable for a beginner, save the blueprint system (which might be more approachable for a non-programmer). Unreal is the right engine for everyone who "hits the roof" with Unity when trying to develop powerful PC class 3D games.
Now, in your case, you might want to start with something simpler than any of these engines before moving to them. Else you will face a quite steep learning curve with both of them.
If you want to bang your head against that learning curve from the beginning, or feel you have dabbled enough in creating small 2D games from scratch, I personally would give Unity 5 a go.
For small games with simple graphics, Unity 5 is more than enough, and you will find it less confusing (thanks to less options for many things) and the documentation more approachable (don't get me wrong, there is plenty of documentation on Unreal Engine 4, its just often hard to find the right page).
Better yet, take a month or two, download both engines and dabble in both. See which one you like more. Maybe you are the visual scripting guy, and you like many options in your engine editor. Maybe you find the unity editor more confusing, or your models just look terrible in Unity, and good out of the box in Unreal.
The differences are sometimes subtle, so by testing both, you can make a more educated choice.
And let me tell you that one last thing: don't try to haste your game development. spending 2 or 6 months in selecting an engine is not wasted time. Compared to the time you will spend developing each of your games even if you are expierienced, it is nothing (multiple years often for 3D games, at least when you are alone and without much of a budget). Compared to the time it will take you to learn everything about 3D game development, it is even less (maybe 3 years... maybe more. I have spent 6 years learning, 20 hours per week and more, and I still feel like a beginner often).
Spend some months with both engines, these months are well spent and meaningless in light of the total time you will spend with the rest of your journey.