Estoy pensando en crear un juego solo por diversión. ¿Cuáles son las ventajas de programar en estos lenguajes?
Creo que Unity y Java tienen su propio subprograma integrado y C# tiene un paquete de software (XNA Game Studio) listo para desarrollar juegos para Windows Phone, XBOX 360 y PC.
Solo algunos criterios:
Quiero desarrollar juegos para PC.
Permítanme apoyar a C# y particularmente a XNA.
Con el uso de Mono (incluidas las bibliotecas pagas como MonoTouch y MonoDroid), puede ejecutar C# prácticamente en cualquier lugar (p. ej .). C# ciertamente es lo suficientemente rápido para el desarrollo de juegos. Y los tiempos de ejecución son muy estables. Puede ejecutarse en el navegador a través de Silverlight.
En mi opinión , C# es superior a Java como lenguaje, especialmente para el desarrollo de juegos, y especialmente teniendo en cuenta la compatibilidad con herramientas y bibliotecas, especialmente XNA.
XNA es una biblioteca de desarrollo de juegos (de alcance similar a DirectX) y también hay muchas bibliotecas creadas para XNA. Además, tiene, con mucho , la mejor biblioteca de código de muestra disponible.
XNA se ejecuta de forma nativa en Windows, Xbox 360, Windows Phone 7 y (una versión anterior) en Zune.
En PC, C# y XNA requieren tiempos de ejecución. El instalador ClickOnce de Microsoft lo hace muy fácil. Le da a su usuario un instalador de arranque, que luego descarga e instala los tiempos de ejecución de Microsoft según sea necesario. El perfil de cliente .NET 4.0 es de 41 MB y XNA 4.0 es de 7 MB. Esta respuesta tiene más detalles .
Además, hay proyectos que portan XNA (solo API 2D) a otras plataformas. Actualmente estoy financiando un proyecto llamado ExEn con el objetivo de llevar una implementación XNA 2D de alta calidad al navegador (Silverlight), iOS, Android y Mac.
Si no puede esperar a ExEn, puede probar algunas de las bibliotecas en las que se basa: SilverSprite (Silverlight) y XnaTouch (iOS). SilverSprite tiene bastantes errores, XnaTouch es un poco mejor.
(Por el momento, si quieres hacer un juego en 3D en estas plataformas, Unity es quizás una mejor opción).
Para ser claros, Unity no es un lenguaje (como C# y Java), es una herramienta de creación y tiempo de ejecución. Escribes la lógica de tu juego en C#, UnityScript (sabor de JavaScript) o Boo (sabor de Python). La herramienta de creación es bastante estable y potente, y brinda a los equipos pequeños una vía fantástica para agregar modelos 3D, texturas, sonidos, sombreadores, etc.
En mi carrera profesional (bastante larga) como desarrollador de juegos, solo he usado una herramienta de creación que era superior a Unity, y era una herramienta patentada interna desarrollada durante muchos años por un equipo de ingenieros de primer nivel.
No hay equivalente a Unity en el mundo de Java que yo sepa. XNA le dará una ventaja si está escribiendo directamente en C#, pero aún tendrá que crear/integrar muchas cosas fundamentales (física, sistemas de partículas, detección de colisiones) antes de estar siquiera cerca de lo que podría lograr. día 1 con Unity.
Los juegos independientes de Unity se pueden crear para Mac o Windows. La compilación independiente no requiere que el usuario instale Mono y, según mi experiencia, es muy estable. También hay un Unity Web Player que permite que los juegos se ejecuten en navegadores de clase A en Mac y Windows. El reproductor web solo está instalado en unos 35 millones de navegadores (parece mucho, pero considere que Facebook tiene más de 500 millones de usuarios).
Sé que sueno como un cómplice, pero Unity realmente es una gran herramienta.
Ya no creo que se trate de un lenguaje de programación. depende de su plataforma de destino.