unity3d language-features jmonkeyengine

unity3d - ¿Debo usar jMonkeyEngine 3(jME 3) o Unity 4.3 para enseñar programación de juegos a mis hijos?



language-features (6)

Estoy buscando enseñarles a mis hijos a programar, y parece que lo reduje a dos opciones:

  • jMonkeyEngine 3 (jME 3)
  • Unidad 4.3

No pude encontrar ninguna comparación "actual", así que pensé en preguntar:

¿Cuál es mejor jME3 + o Unity4.3 + para la enseñanza de la programación frente a los beneficios del motor?

No soy desarrollador de juegos, pero como desarrollador de sistemas corporativos y de control tengo experiencia tanto en C # como en Java.

Actualmente me inclino por Unity4.3 + porque:

  1. Desde una perspectiva de Programación, creo que C # es un poco más limpio que Java, aunque esto significa poco si el modelo de Codificación y Objetos del Motor fomenta una programación deficiente.

  2. Ventajas del motor: Unity4.3 + tendrá "supuestamente" soporte próximo para Xbox One y PS4.

Nota: para ser justos con jME, tomaré nota de esta opción de iOS "pre-alpha state" para jME, que es mejor que una "supuesta" comercialización tal vez: ( http://hub.jmonkeyengine.org/wiki/doku.php / jme3: ios )

Si son iguales en todos los demás aspectos, ¿cuál tiene una mejor integración de servicios?


Es difícil hacer una comparación cuando nunca he usado Unity. Sin embargo, he visto demostraciones y su interfaz. Pero después de haber usado el jMonkeyengine durante aproximadamente 2 años y medio, puedo decir que soy un cliente feliz :).

La unidad probablemente tiene un poco más de todo: desarrolladores, usuarios, campanas y silbatos, pero hay un costo asociado a eso.

Similitudes entre los 2: - Grandes comunidades (la unidad es más grande) - Muchos tutoriales gratuitos - Desarrollo rápido (aquí hay un enlace a un par de ludum se atreve, he estado involucrado con el uso de jME http://www.ludumdare.com/compo/ludum -dare-28 / comment-page-3 /? action = preview & uid = 16152 , http://www.ludumdare.com/compo/ludum-dare-24/comment-page-1/?action=preview&uid=16152 ) - Fácil de distribuir a Windows / Mac / Linux / Android

JMonkeyEngine es completamente gratuito y todo de código abierto (Nueva licencia BSD). Para que pueda ver todo el funcionamiento interno del motor, e incluso cambiarlo si no le gusta algo (por supuesto, puede devolver los cambios :)). Entonces aprenderás mucho más profundizando en el código fuente de jME.

C # y Java son un debate que puede continuar por siglos, pero no creo que deba ser un factor determinante, son muy similares en naturaleza. No existe una versión de iOS utilizable en jME, y no creo que haya planes inmediatos para Xbox One y PS4, por lo que Unity ganará allí.


JME es un motor un poco más duro que Unity.

JME: - comunidad fuerte (lengua inglesa principalmente) - OpenSource y de uso gratuito. - tiene muchas herramientas geniales. Pero la Unidad tiene mucho más, supongo. - Simple de compilar y codificar con todas las plataformas. - Compatible con Linux. Puede desarrollar juegos en el sistema operativo Linux.

Unidad: - Comunidad fuerte (con muchas comunidades locales e idiomas) - No gratuita. Pero tiene herramientas profesionales. - Tiene soporte de JavaScript. Puede agregar scripts dentro del editor. - Tiene un editor mundial realmente genial. Pero la codificación es mejor en JME SDK.

Yo uso JME. Pero es duro en muchos casos.


Me alegra que estés interesado en JME3.

También estoy trabajando para un proyecto que se enfoca en crear programas educativos (para jóvenes y adultos) en el ambiente de juego.

Si va a permitir que sus hijos aprendan programación mediante el desarrollo de juegos, es una buena idea. Pero tanto JME3 como Unity son mucho más complicados para empezar (supongo que sus hijos aún son jóvenes) ... También hay pocos proyectos adecuados para que los niños aprendan la programación visualmente.

Greenfoot ww.java.com/en/java_in_action/alice.jsp

Alice ww.greenfoot.org/door

Kojo ww.kogics.net/sf:kojo

Esas cosas (los lenguajes vienen con IDEs) tienen una curva de aprendizaje corta y son fáciles de obtener, requieren un conocimiento mínimo y son adecuados para niños y principiantes. Ese es el lado de la educación.

Por el lado del motor. [Esta es mi opinión personal]

Prefería JME. También me quedé Unity (hice entre 4 y 5 juegos comerciales en mi propia unidad) para ir a JME. Antes de Unity, también trabajé en Ogre, UDK, Torque y muchos otros motores (10 más). También trabajé con motores comerciales en trabajos diurnos en C ++, cuyo código es sucio pero funciona extremadamente bien y cuesta millones de dólares.

La razón es: esos motores te ataron con sus limitaciones y soluciones prefabricadas. Por supuesto, esa es también la mitad de la razón por la que eliges y el motor al principio. Pero cuando llega a esa limitación, por ejemplo, la tarifa de la licencia o las tecnologías cerradas. Los odiarás tanto como yo.

Es por eso que vengo a JME en una búsqueda de tecnología de entretenimiento y desarrollo de juegos "completa".

Si tienes experiencia en Java y C #, en asociación con JME y el desarrollador de Unity, te nombraré algunas cosas que pueden ser * texto fuerte * en comparación entre las dos:

  • Licencia: fuente abierta gratuita vs libre / comercial

    • IDEs: Netbean - una plataforma abierta y extensible (calidad líder) vs MonoEdit (el IDE con errores más grande que puedes encontrar en la tierra)

    ** La tecnología basada: **

    • Gráficos: OpenGL v2 + vs Render modificado (OpenGL compatiable v3 +) Unity gana en este Supongo que :(. Es triste para un desarrollador de Java a largo plazo como yo ver esto. Pero podemos mejorar los gráficos de vez en cuando, espero.
    • Gestión de datos: elige (H2, HyperTable, Neo4j ... del mundo Java más de 100) base de datos VS Unity
    • Organización de datos: usted elige (ES, OO, COD, datos manejados ...) VS ES y solo datos manejados.
    • Redes: eliges (Java rocks en esta) VS Unity network (alto rendimiento pero nunca ... nunca derrota a Java)
    • Cloud y distribuido: usted elige (Storm, Hadoop ..) VS "técnicos en la nube" de cosecha propia

Tenga en cuenta que todavía utilizo generalmente Unity y JME3 al mismo tiempo, para mi trabajo y mi hobby. Utilicé Unity 4 con una fantástica animación de Mecanim, material de soporte ... durante el día y utilicé JME3 para investigar y mejorar durante la noche. ¡IMO, JME3 es el motor del juego que vale la pena aprender, y se moverá y brillará en el futuro!

¡Espero que esto ayude!


No puedo decir que alguna vez haya usado Unity, pero he aquí algunas cosas que me encantan de JME3:

  • Completamente gratuito y de código abierto bajo licencia BSD
  • Awesome SDK basado en NetBeans increíbles
  • Despliegue a Linux, Mac y Android (así como a Windows) con 1 clic, no tengo idea si Unity puede hacer esto
  • Increíble comunidad activa, constantemente creando nuevos complementos y características (la implementación de IOS llegará pronto, posiblemente), también te ayudarán con cualquier problema que encuentres
  • Networking es impresionante
  • Puede usar otras bibliotecas o características de Java al costado


    En cuanto a las características del motor, la unidad probablemente tiene más. Sin embargo, recomiendo JME, es un gran motor. Alguien más dijo que necesitas conocimiento de Blender, mientras que con Unity tienen una tienda de activos. Si bien el conocimiento de Blender es (muy) útil, hay cientos de sitios web en línea que venden o regalan activos gratuitos (por ejemplo, www.turbosquid.com ).

Realmente depende de lo que pretendas.

El pro de la unidad es especialmente una forma de obtener activos en el motor (a través de la tienda). Con jme3 necesita poder trabajar al menos parcialmente con Blender / 3dsmax o similar. O use un estilo gráfico donde no importe (por ejemplo, 2d o blockworld). También tiene mejores características de vanguardia en términos de iluminación y sombreado. Pero antes necesitas algo de licencia profesional, ya que incluso las cosas básicas como lod están ligadas a él http://unity3d.com/unity/licenses y no es tan barato.

El profesional con jme3 es que no te limita. Es solo un motor central pero tampoco está diseñado para algunos casos de uso.

Por lo que yo entiendo, Unity usa un poco de sistema de componente de entidad pero sin sistemas separados. (Los componentes contienen la lógica)

En jme3 puedes usar lo que quieras y te animamos a hacer una división limpia entre lógica y gráfica. Puede usar el tipo de programación que prefiera (por ejemplo, ES, OO). Como jme está basado en jvm, también tiene acceso a otros lenguajes jvm, por ejemplo, para la programación funcional a través de scala.

Por lo tanto, depende de cuál sea su objetivo (y su presupuesto), más sobre el desarrollo y sus detalles, o más sobre hacer un juego propio.

En cuanto al control de versiones, JME3 funciona bien con git y svn y todo lo demás. Como no hay archivos especiales o lógica vinculada a ninguno de ellos.


Tengo que preguntar: ¿está listo para programar el motor de un juego alguien a quien enseñe?

Si lo primero que se debe enseñar es una secuencia de comandos de hello world seguida de aprender qué variables son, entonces ambas opciones no hacen más que complicar demasiado lo que debe ser un simple entorno de aprendizaje.

Incluso si tienen los fundamentos básicos de la programación, deberían saber cuáles son los conceptos básicos de la programación de juegos. Deben saber qué es un vector y cómo funciona la matriz matemática con algún conocimiento subyacente de cómo funciona un motor.

No sé sobre jME, pero con Unity, este sería el punto en el que podrían escribir código que haga algo en lo que puedan decir sinceramente que entienden por qué (que debería ser la parte más importante de la enseñanza de alguien). Describo a Unity como el juguete más simple y grande que existe. Eso todavía significa que tienen que estar listos para los juguetes Big Boy en primer lugar.

Ah, y quédate con la versión gratuita de Unity. La mayoría de las características pro son elementos gráficos como la iluminación de floración que no afecta las capacidades de un programador.