En mi experiencia, que he estado toqueteando con los dos para ver qué me venía mejor para hacer un juego que llevo tiempo pensando y he dejado apartado para hacer la versión PC del juego que he presentado al concurso de Flash de Unity, te puedo decir que con un equipo pequeño quizás sea más asequible la opción de Unity, teniendo en cuenta que también tiene una versión gratuita y libre de royalties (con la que estoy programando el juego), pero vamos a mirarlo objetivamente:
Primero miremos las máquinas: Unity puedo ejecutarlo en mi portátil Dual Core de hace cuatro años con 2 gigas de RAM, UDK y sus editores ni en sueños, y eso solo para programar. El juego por ahora, también se ejecuta bien en el portátil.
Ambos editores son bastante potentes a la hora de hacer cosas: Sus editores de escenas te permiten meter un montón de elementos y son bastante fáciles de uttilizar, aunque Unity tiene una manera de jerarquizar los elementos bastante más intuitiva que el UDK.
En cuanto a editores internos, UDK en ese aspecto está bastante más avanzado: tiene generador y gestión de LODs automático (aunque Unity ya mete la gestión automática en su última versión), UDK tiene generadores de destrucción de malla, un potente editor visual de materiales en el que puedes hacer virguerías utilizando funciones de textura, mientras Unity tiene una "jartá" de shaders predefinidos, pero te enseña a cómo programar shaders multiplataforma para utilizar con el motor. Ambos tienen edición de terrenos con LOD de terreno automático (acaban de meterlo en Unity), la manera de editar las mallas con esqueleto es más fácil en el UDK, y las capacidades de render de UDK son más avanzadas, incluyendo muchos más efectos y posibilidades de postprocesado que Unity, aunque éste también tiene unos cuantos que son bastante resultones, aunque en sus versiones de pago, por lo que UDK tendría más potencia visual, si se sabe aprovechar, claro. También hay que tener en cuenta que Unity tiene muchos plugins que te pueden resolver cosas que el UDK hace o que incluso no llega a hacer (algunos gratuitos y otros de pago).
En cuanto a código y script, Unreal tiene un editor visual (poniendo cajitas y arrastrando flechitas), Kismet, que te permite hacer muchísimas cosas, aunque Unity tiene extensiones que por 100 dólares te permiten hacer lo mismo, pero de todas maneras, si el proyecto tiene algún alcance medianamente ambicioso vas a tener que tirar de escribir tus propios scripts, y aquí está la cuestión, si sabes programar va a ser mucho más fácil hacerte con el Unity que con el UDK, principalmente porque con Unity puedes hacerlo con Javascript, C# o BooScript (que desconozco totalmente), mientras que UDK tiene su lenguage de script propio, unrealscript, con su manera de entender las cosas, aunque cierto es que está orientado a máquinas de estados y simplifica algunas cosas de programación de juegos, y que, sería bastante más sencillo de aprender si su documentación no fuera tan chapucera para la versión gratuita del motor y tuvieses que estar mirando en un montón de archivos de configuración si quieres ajustar ciertas cosas del engine. Yo, al final tuve que tirar de libro de unrealScript para empezar a aclararme con las cosas que se pueden hacer programando con UDK. Por otra parte, al ser el UDK basado en la arquitectura de Unreal, esta mucho más preparado para ofrecer herramientas de MODs a los usuarios de tu juego, aunque ya por ahí tendrías que documentar bastantes cosas para que ellos los hicieran, pero sobretodo tendrías que tener un éxito apabullante para que la jugada salga rentable al hacer ellos MODs y que tu juego se siga vendiendo gracias a ellos.
La decisión de utilizar un motor u otro yo creo que depende del tiempo que quieres tardar y la calidad final, fundamentalmente porque Unity te permite hacer cosas en mucho menos tiempo y está mucho mejor documentado cuando desconoces partes de las funciones de script. También en cuanto al acabado, si no vas a hacer un acabado tipo Gears of War o similar creo que con Unity te puedes apañar para hacer cosas bastante chulas, además, de que Unity es un motor que se puede ejecutar en máquinas menos potentes que el UDK, y eso también, si hace un juego de corte menos hardcore te ayuda a llegar a más público supuestamente objetivo de tu juego.
En cuanto a costes o royalties, deberías tener en cuenta que puedes hacer juegos con la versión gratuita de Unity o sea, te vale 0, al igual del UDK, aunque uno tenga partes capadas, que de todas maneras no son críticas para hacer un juego y el otro te lo de todo, pero has de pensar ¿Qué partes de UDK vas a aprovechar realmente? ¿Qué rendimiento le vas a sacar a esa potencia en bruto? ¿Necesitas utilizar los shaders-to-pepino que se pueden construir con el UDK? ¿Vas a complicarte aprendiendo UnrealScript con su documentación mal estructurada? ¿O te vas a tirar por el Unity que en un par de semanas de aprendizaje puedes estar haciendo lo que te de la gana? Tienes que pensar que es como quien se compra un coche ¿Para qué quieres comprarte un coche de 200 caballos si solo vas a ir a 120 KM/h? Quizás para un equipo de ocho o nueve personas el UDK sea una opción, pero para menos gente, incluyendo la curva de aprendizaje inicial de UDK, más elevada en cuanto al script, a no ser que tengan un buen fondo monetario sobre el que asentarse para vivir mientras terminan el juego tal vez sea mejor la opción Unity, (aunque al final, ya sea el equipo grande o pequeño, tirando de versiones gratuitas, lo que hay que mirar es que tengan un colchón para poder hacer el desarrollo mientras no reciben ningún tipo de dinero)
En realidad, al final yo creo que lo de la tecnología da más o menos igual, lo que hay que hacer es un buen juego que atraiga al público al que está orientado (o incluso a más), si el juego es adictivo y gusta, a la gente le dará igual que lo que vea en pantalla parezca un poco desfasado a que lo que se muestre sea igual que si se asoman por la ventana. A los hardcores nos gustan los buenos juegos y nos da un poco igual cómo se vea (no así a los Graphic Whores, que te criticarán por igual lo que hagas a no ser que seas Epic, Crytek, o EA con un Battlefield), y a los casuals, que no suelen tener máquinas tan potentes como las nuestras les tienes que presentar una buena mecánica y un acabado que les entre medianamente por el ojo, ya sea por bonito o simpático.
Y por todos estos motivos yo creo que hay más ofertas de Unity que de UDK :P
Jar! Que parrafada. ^_^'
Primero miremos las máquinas: Unity puedo ejecutarlo en mi portátil Dual Core de hace cuatro años con 2 gigas de RAM, UDK y sus editores ni en sueños, y eso solo para programar. El juego por ahora, también se ejecuta bien en el portátil.
Ambos editores son bastante potentes a la hora de hacer cosas: Sus editores de escenas te permiten meter un montón de elementos y son bastante fáciles de uttilizar, aunque Unity tiene una manera de jerarquizar los elementos bastante más intuitiva que el UDK.
En cuanto a editores internos, UDK en ese aspecto está bastante más avanzado: tiene generador y gestión de LODs automático (aunque Unity ya mete la gestión automática en su última versión), UDK tiene generadores de destrucción de malla, un potente editor visual de materiales en el que puedes hacer virguerías utilizando funciones de textura, mientras Unity tiene una "jartá" de shaders predefinidos, pero te enseña a cómo programar shaders multiplataforma para utilizar con el motor. Ambos tienen edición de terrenos con LOD de terreno automático (acaban de meterlo en Unity), la manera de editar las mallas con esqueleto es más fácil en el UDK, y las capacidades de render de UDK son más avanzadas, incluyendo muchos más efectos y posibilidades de postprocesado que Unity, aunque éste también tiene unos cuantos que son bastante resultones, aunque en sus versiones de pago, por lo que UDK tendría más potencia visual, si se sabe aprovechar, claro. También hay que tener en cuenta que Unity tiene muchos plugins que te pueden resolver cosas que el UDK hace o que incluso no llega a hacer (algunos gratuitos y otros de pago).
En cuanto a código y script, Unreal tiene un editor visual (poniendo cajitas y arrastrando flechitas), Kismet, que te permite hacer muchísimas cosas, aunque Unity tiene extensiones que por 100 dólares te permiten hacer lo mismo, pero de todas maneras, si el proyecto tiene algún alcance medianamente ambicioso vas a tener que tirar de escribir tus propios scripts, y aquí está la cuestión, si sabes programar va a ser mucho más fácil hacerte con el Unity que con el UDK, principalmente porque con Unity puedes hacerlo con Javascript, C# o BooScript (que desconozco totalmente), mientras que UDK tiene su lenguage de script propio, unrealscript, con su manera de entender las cosas, aunque cierto es que está orientado a máquinas de estados y simplifica algunas cosas de programación de juegos, y que, sería bastante más sencillo de aprender si su documentación no fuera tan chapucera para la versión gratuita del motor y tuvieses que estar mirando en un montón de archivos de configuración si quieres ajustar ciertas cosas del engine. Yo, al final tuve que tirar de libro de unrealScript para empezar a aclararme con las cosas que se pueden hacer programando con UDK. Por otra parte, al ser el UDK basado en la arquitectura de Unreal, esta mucho más preparado para ofrecer herramientas de MODs a los usuarios de tu juego, aunque ya por ahí tendrías que documentar bastantes cosas para que ellos los hicieran, pero sobretodo tendrías que tener un éxito apabullante para que la jugada salga rentable al hacer ellos MODs y que tu juego se siga vendiendo gracias a ellos.
La decisión de utilizar un motor u otro yo creo que depende del tiempo que quieres tardar y la calidad final, fundamentalmente porque Unity te permite hacer cosas en mucho menos tiempo y está mucho mejor documentado cuando desconoces partes de las funciones de script. También en cuanto al acabado, si no vas a hacer un acabado tipo Gears of War o similar creo que con Unity te puedes apañar para hacer cosas bastante chulas, además, de que Unity es un motor que se puede ejecutar en máquinas menos potentes que el UDK, y eso también, si hace un juego de corte menos hardcore te ayuda a llegar a más público supuestamente objetivo de tu juego.
En cuanto a costes o royalties, deberías tener en cuenta que puedes hacer juegos con la versión gratuita de Unity o sea, te vale 0, al igual del UDK, aunque uno tenga partes capadas, que de todas maneras no son críticas para hacer un juego y el otro te lo de todo, pero has de pensar ¿Qué partes de UDK vas a aprovechar realmente? ¿Qué rendimiento le vas a sacar a esa potencia en bruto? ¿Necesitas utilizar los shaders-to-pepino que se pueden construir con el UDK? ¿Vas a complicarte aprendiendo UnrealScript con su documentación mal estructurada? ¿O te vas a tirar por el Unity que en un par de semanas de aprendizaje puedes estar haciendo lo que te de la gana? Tienes que pensar que es como quien se compra un coche ¿Para qué quieres comprarte un coche de 200 caballos si solo vas a ir a 120 KM/h? Quizás para un equipo de ocho o nueve personas el UDK sea una opción, pero para menos gente, incluyendo la curva de aprendizaje inicial de UDK, más elevada en cuanto al script, a no ser que tengan un buen fondo monetario sobre el que asentarse para vivir mientras terminan el juego tal vez sea mejor la opción Unity, (aunque al final, ya sea el equipo grande o pequeño, tirando de versiones gratuitas, lo que hay que mirar es que tengan un colchón para poder hacer el desarrollo mientras no reciben ningún tipo de dinero)
En realidad, al final yo creo que lo de la tecnología da más o menos igual, lo que hay que hacer es un buen juego que atraiga al público al que está orientado (o incluso a más), si el juego es adictivo y gusta, a la gente le dará igual que lo que vea en pantalla parezca un poco desfasado a que lo que se muestre sea igual que si se asoman por la ventana. A los hardcores nos gustan los buenos juegos y nos da un poco igual cómo se vea (no así a los Graphic Whores, que te criticarán por igual lo que hagas a no ser que seas Epic, Crytek, o EA con un Battlefield), y a los casuals, que no suelen tener máquinas tan potentes como las nuestras les tienes que presentar una buena mecánica y un acabado que les entre medianamente por el ojo, ya sea por bonito o simpático.
Y por todos estos motivos yo creo que hay más ofertas de Unity que de UDK :P
Jar! Que parrafada. ^_^'