Básicamente para plataformas móviles de momento, para eso supongo que, Unity esta algo enfocado, Unreal por lo que entiendo está más enfocado a plataformas de sobremesa y proyectos más grandes, y requiere mayor conocimiento de programación. Saludos.
Bueno con UDK se pueden hacer cosas pequeñas, pero sí, el enfoque va más a grandes proyectos, sobre programación pues mucho menos, con UDK un diseñador sin escribir una solo línea de código puede hacer gran parte del gameplay o prototiparlo para qué los programadores lo hagan, con los shaders efectos etc pasa lo mismo, puedes hacer todo sin tocar una sola línea de código, con Unity ya tienes que empezar a escribir si quieres hacer algo complejo, yo creo que en ese punto no es como piensas.
Para mí el gran problema de udn es el unrealscript, un lenguaje de programación que sólo vale para este motor, no puedes hacer nada más con él, corrígeme si me equivoco. Sin embargo, C# es la base de la plataforma. Net, con la que se puede programar cualquier tipo de aplicación, y puestos a profundizar en un lenguaje (para hacer un juego hay que dominarlo bien) mejor uno polivalente.
Te refieres a UDK ¿no? UDN es Unreal Developed Network, Unrealscript es básicamente Javascript, con 4 cosas, pero no tiene más, yo he visto programadores hacer cosas grandes en solo dos días con el motor, además también puedes hacer cosas en C desconozco si UDK puede, pero la versión licenciada sí, en el unreal4 han quitado el unrealscript, y todo se basa en blueprints, programador de eventos y acciones por anidados, para él que conozca el UDK, es una mezcla de unrealscript, kismet, arquetipos y prefabs, todo en uno, antes tu tenías tu biblioteca, (content browser) ordenada con tus modelos, en otra parte efectos en otro materiales etc, y por otro lado, kismet y ya fuera del motor tienes script, ahora todo eso se puede hacer en el blueprint, o sea, el artista de niveles, arrastra un blueprints dentro del juego, y puede estar sembrando un NPC con su IA y todo, o una pared que al recibir X impactos de destroce con apex, o una puerta con un mecanismo de apertura qué dependa del gameplay, si después necesitas ajustar el efecto de esa pared o la animación de la puerta o modificar el gameplay que la abre, lo haces y se actualizara en todos los sitios donde la has puesto, a cualquier cosa o estado le puedes dar una variable y esa variable puede ser modificada, por lo que sea, un píxel de un bitmap, o por la velocidad de una partícula, por ejemplo, a ver, tiene su complicación, pero yo no soy programador y no me ha costado mucho pillar la filosofía. De todos modos, para ciertas cosas si prefieres puedes meter código en C# creas tus propias clases es muy simple, y después las tendrás disponibles para lo que quieras, un colega creó un nuevo tipo de luz, y no es un experto en C#.
Para qué te hagas una idea, un juego pequeño en UDK lo puedes hacer casi sin programadores, si haces algo normal, de hecho, unos colegas han empezado uno indie ya tienen mucho hecho y no tiene programador, hace años uno de los artistas hacía webs y es el que toca un poco el tema, si tiene alguna duda en el UDN siempre encuentran respuesta, eso sí, si quieres hacer algo grande necesitas programadores sí o sí.
De todos modos, para empezar si no tienes conocimientos de ninguno de los dos, y no quieres entrar hacer triples A, Unity de calle, de hecho, yo, aunque lleve casi 10 años con unreal, estoy empezando con Unity porque me pica la curiosidad. Saludos.