From Everything you wrote: I strongly advise against using Unity!!!!
I am sure all of the Unity fans will hate me for saying this. But it is my strong opinion.
I have completed projects in Unity and Unreal. For me there is no comparison.
Unreal is the winner in every single category by a landslide.
Unreal is a C++ Engine, and if you buy a full license they give you the source.
Their is also 2 levels of proprietary scripting languages that run on top of the C++ code
that help make quicker prototyping. A node based completely visual language, and
a standard Scripting language that is Unique to just this engine.
Unreal is considerably steeper learning curve, and will take you much longer to get comfortable with it.
You can get something up and running in Unity pretty fast. The learning curve is not so bad.
Unity is a good stable program and it works. For most beginners it is fine.
If you are just doing this for fun this is fine.
You have already thrown out a few things about yourself such as:
you code in C++
you own your own business
you can afford to hire people
If all of this is true, then you should totally understand what I am about to explain.
At some point down the road, You will want your game performance to be as good as possible
For a simple game on the PC unity will do just fine, because modern PC's are very powerful. You can afford to be sloppy and not optimize to the max.
But PC gamers demand high levels of excellence on games, and to be a commercial success it must be very good.
Eventually, you will want to push the PC to the max (Example you want to get 4,000 players simultaneously fighting in an MMO battle everybody firing projectiles, enemies attacking, beautiful sound, beautiful environment graphics, Everything perfectly synched to the fraction of a second, etc etc). You are going to need all the control only C++ can provide.
As soon as you want to port it to a tablet or mobile. THIS BECOMES MORE IMPORTANT THAN EVER
portable devices are severely limited. So every KB of memory is going to count in a big way.
it will mean the difference from your level looking good, sounds being good, your characters looking better etc.
Whether you do PC or Mobile, eventually you will want to push the machine to its max abilities
a runtime environment program such as unity will rob you of that choice, and will dictate to you
what the runtime environment allows not the machine's max.
It is like If you build a great app in Basic and then push it to as far as you can take it.
You realize you need C++ to take it into the next level, and that you basically need to rewrite the whole thing from scratch.
I am sure you know what I mean.
It is the same thing with Unity. Nothing against them it is a great product.
But I think whatever pleasure you get out of it being easier to use, will not come close to the pain of
working a year in Unity only to realize you need to start again if you want to go any further.
I would say don't even think about Unity and go straight for Unreal or another C++ Engine.
Unreal is not that much harder to learn.
You can do most things in the editor and never need to touch the C++ code.
But the second you need, it is there, you can get the machine running to the max, and don't have to start again.
Also looking at what was released on Unity vs what was released on UDK.
You will see many huge releases on Unreal, and unity is really focused on smaller projects.
As far as support and community. There are the same if not better resources for UDK. Just check out Eat3d or 3dMotive Unreal Tutorials.
Why start with the wrong platform?
Just my $0.02
Edited by JustColorado, 10 January 2014 - 10:45 AM.