Unreal Pros:
- UnrealScript is pretty similar to C++ and Java. Not hard to pick up.
- Lots of nitty gritty stuff is handled for you. Things like rendering a level and letting you use the built-in UT character models is trivial.
- OK documentation for getting your project up and running initially.
- Powerful tools for doing animation and stuff inside the editor.
- Kismet (graphical flowchart programming tool) is awesome.
- Network support.
Unreal Cons:
- Unintuitive directory structures for projects. You need to put your code beside the Unreal Tournament code? Huh?
- Compiler for UnrealScript often crashes instead of giving a meaningful error, usually caused by malformed statements.
- It's really aimed toward FPS and other shooters, with network support. Other gametypes are certainly possible, but you have to rewrite a lot of the framework in unintuitive ways. For example, detecting a click still uses the "StartFire()" function even when your game has nothing to do with guns and firing.
- Poor API documentation. You're forced to dig through the code, and search on forums for help.
- No official support for a lot of popular 3d modeling programs. They support 3dsMax and Maya, but not Blender. A cool dude made a Blender exporter plugin in his spare time, but it's far from complete.
- If you make money from your game above $5k, you need to pay 25% royalties to Epic Games.
Now, why OGRE?
- Very intuitive if you know C++, have a basic understanding of graphics systems like OpenGL, and have worked with any sort of game engine before, like pygame.
- Great documentation and tutorials.
- Support for Blender.
- Use C++ directly. Meaning you can use Visual Studio or whatever full-featured IDE.
- Plugin system to integrate with other great tools, like CEGUI, a GUI manager.
- Just as easy as UDK to get your first project running, thanks to the Ogre AppWizard for Visual Studio. It does all the standard boilerplate for you for new projects.
- Open-source under LGPL with some (good for developer) exceptions. So I can look at the engine code and change it if necessary, as long as I provide the source code of changes along with my product. Starting version 1.7 which isn't out yet, it will be licensed under MIT license which is even less restrictive than LGPL. (Steve Streeting explains why he made the shift to MIT license.)
- Recently ported to iPhone and iTouch. Although, a tad late considering Android has been stepping up the competition considerably.