I would definitely recommend Unity. Why?
It's extremely easy to use, even for complete beginners. For example all the coding can be done in Javascript (or C#, or Boo (Python variant)) and you can find thousands of code samples and tutorials on the Unity website.
You don't have to mess around with file formats, Unity can import almost anything you throw at it. When I'm working in Unity I make most of my models in Blender or 3D Max and my textures in Photoshop CS5. I never use any
exporters or whatnot, I just dump my .blend files and .psd files into my game directory and start using them inside Unity seconds later.
It allows for extremely fast level creation since you're working in a 3D space similar to the one in the Construction Set for the Elder Scrolls games. Playtesting is also easy since you can play the game from inside the editor without building the game first (compiling it into an executable file).
Easy to use terrain tools
It has a free version and a pro version. The only limitations on the free version is that you can only distribute your game on the PC platform (Windows or Mac), you don't have access to camera effects and shaders (most of the can be scripted though) and you can't use camera projections (for example, a TV in a house with a live feed of the back entrance on it. That wouldn't work since you can't project the view from the camera outside to the TV screen)
Here's why you shouldn't use UDK:
It's extremely complicated for people with no experience in game development.
UnrealScript is powerful, but not very user friendly. @Epic, case-insensitive names, really? <_<
It's rather hardware demanding. Here are the minimum specs:
Minimum:Windows XP SP2, Windows Vista, or Windows 7
2.0+ GHz processor
2 GB system RAM
SM3-compatible video card
3 GB free hard drive space
Recommended for Content Development:Windows 7 64-bit
2.0+ GHz multi-core processor
8 GB System RAM
NVIDIA 8000 series or higher graphics card
Plenty of HDD space
I'm also looking for some, I like Unity, and use it, I know Java, so scripting it isn't that hard, and I can model, rig, texture, and animate models, but for me Unity isn't that good for graphics, I am thinking about getting UDK again, but I am not good with the Unreal script, and UDK is made generally for FPS games :sadvaultboy: .
ok, I have a few things to say about that ^
1. You can't use Java in Unity
2. Unity has fantastic graphics (just look at Interstellar Marines)
3. UDK uses Unreal Script which is very similar to Java so learning it shouldn't be hard for you if you already know Java.
4. You don't have to create an FPS game if you're using UDK, in fact you can create pretty much anything you want. http://www.udk.com/showcase-dungeon-defense (It's a surprisingly fun game too)
The Unreal Engine can be used for MMOs (Warhammer Online, APB, TERA, DC Universe Online), RPGs (Mass Effect), Driving games, shooters (obviously) and even weird free running games like Mirror's Edge.
The only two I know of are:
http://rpgtoolkit.net/home/ (for building RPGs, uses a fair amount of coding)
ewww burn it with fire!! :ahhh:
Only usable for creating 2d sprite Final Fantasy clones