Haxe/OpenFL/Flixel
haxeflixel (2)
He estado buscando en los sitios de Haxe / OpenFL / Flixel pero me cuesta entender para qué sirve cada uno.
Como yo lo entiendo:
Haxe es un lenguaje que se puede implementar en múltiples plataformas. OpenFL es algo que tiene que ver con Flash. Flixel es una biblioteca para ayudarte a hacer juegos.
¿Alguien podría corregirme / aclararlo?
¡Acabo de descubrir HaxeFlixel, y lo AMO! Vine de hacer juegos en as3 usando Flixel, ¡y ahora probablemente nunca volveré!
Entonces, para intentar responder tu pregunta (y la forma en que la entiendo):
Haxe es una especie de capa inferior. Es el lenguaje de programación que se puede compilar en Flash, Windows, Android, iOS, etc., etc., etc.
OpenFl es un kit de desarrollo de software que utiliza Haxe para facilitar el funcionamiento de los juegos a través de Haxe y permitirle aprovechar fácilmente el poder de la compatibilidad de Haxe sin tener que lidiar con muchas de las complicaciones y problemas que puede obtener. dentro. Se encarga de un montón de cosas básicas para usted y facilita la codificación.
HaxeFlixel es un marco de juego 2D basado en una combinación de Flixel de Adam Atomic para as3 y Flixel Power Tools de Photon Storm. Facilita la creación de juegos 2D en casi el mismo tipo de código que en as3 / Flixel.
Cuando recién comienza, solo debe preocuparse por el nivel más alto, que en su caso es HaxeFlixel.
Entonces, para resumir un poco: Haxe es un poderoso lenguaje de programación. Puede intentar averiguar cómo codificar con él ''como está'', lo cual es complicado, o puede usar una de varias bibliotecas para hacerlo más fácil: OpenFL es una de estas bibliotecas.
Puede usar OpenFL por sí solo y codificar un juego con él, o puede usar uno de varios Frameworks diferentes para hacerlo más fácil: HaxeFlixel es uno de estos Frameworks. También hay marcos Starling y FlashPunk (HaxePunk) que tienen sus pros y sus contras.
Tiempo de opinión!
Recomiendo encarecidamente seguir con HaxeFlixel, ya que era muy similar a Flixel, logré aprenderlo y aprender a usarlo, e hice que este juego completo sea exactamente 1 mes: http://paddlebattles.tims-world.com/ y lanzó una versión de Flash, Windows y Android en el mismo día, lo cual es excepcional, considerando que no había tocado a Haxe antes, y nunca antes había tenido tiempo de comenzar a ver el desarrollo de Android. El código fuente de ese juego, por cierto, es de código completamente abierto, así que siéntete libre de profundizar y ver cómo hice las cosas.
La comunidad para HaxeFlixel también es bastante sorprendente y la gente lo ayudará y responderá sus preguntas.
Realmente no es demasiado difícil saltar y comenzar a trabajar con HaxeFlixel: http://haxeflixel.com/documentation/getting-started/ Sigue estos pasos y al menos tendrás un Hello, World!
en funcionamiento en minutos (excluyendo el tiempo que lleva descargar e instalar todo el material). Como mencioné anteriormente, hasta que esté más cómodo con él, simplemente siga las instrucciones para Haxe y OpenFL, ¡pero ni lo piense por ahora!
¡Buena suerte! Y déjame saber si lo haces en cualquier lugar o no!
Haxe
Para citar el nuevo sitio de Haxe (que aún no se ha publicado):
Haxe es un conjunto de herramientas de código abierto basado en un moderno lenguaje de programación de alto nivel estrictamente tipificado, un compilador cruzado de alta velocidad, una completa biblioteca estándar multiplataforma y formas de acceder a las capacidades nativas de cada plataforma.
Idioma:
Haxe es un lenguaje de programación. Es similar a AS3, C #, etc. Está estrictamente escrito, pero tiene una buena inferencia de tipo. Tiene una gran cantidad de características potentes como la coincidencia de patrones, enumeraciones, macros, etc. Estas funcionan sin importar a qué objetivo se compile.
Biblioteca estándar:
Haxe puede compilar en flash, javascript, c ++, java, c #, php, neko y algunos otros objetivos experimentales. Tiene clases estándar de bajo nivel que funcionan de manera consistente en todas las plataformas, como: String , Int , Float , Date , Map , etc. También tiene algún código útil multiplataforma para cosas como Serialization , Xml , Json , Formato de fecha , etc.
Como regla general, cualquier elemento en http://api.haxe.org que se encuentre en el nivel superior, o en el paquete "haxe", funcionará con el objetivo que compile.
Cada objetivo tiene su propio paquete. Estos le permiten acceder a las capacidades nativas de ese objetivo. P.ej. "js" tiene clases de DOM y jQuery helpers. "flash" tiene clases para la API flash.
Existe el paquete "sys", que está disponible en los destinos de back-end: C ++, Java, Neko, PHP, etc.
Otras cosas:
El compilador Haxe es súper rápido en comparación con un grupo de otros compiladores. Eso es un punto de venta en sí mismo. También hay macros, que te permiten hacer un montón de preprocesamiento de una manera realmente poderosa. Luego hay herramientas como haxelib que te permiten enlazar con bibliotecas de terceros.
OpenFL
Cuando Haxe comenzó, Flash aún era un gran objetivo, estaba instalado en todas partes y era genial para hacer juegos. A muchos de los desarrolladores de Flash les gustó Haxe porque era rápido, escribía código abierto de forma segura y les daba más funciones. Pero la API flash (sprites, gráficos, clips de película, eventos) solo funcionó en Flash, no en dispositivos móviles, o en HTML5, lo cual fue un problema cuando Flash comenzó a ser menos popular.
Lo que hace OpenFL es hacer que la API Flash funcione en otros objetivos de Haxe. Así que escribiste un juego Haxe dirigido a la API de flash usando sprites, gráficos y código de estilo flash. Luego, desea compilar en C ++ (para apuntar a dispositivos móviles, etc.). OpenFL le permite a su código Haxe usar la API de Flash, incluso si se dirige a C ++ o Javascript. Por ejemplo, OpenFL crea la clase flash.graphics.DisplayObject
no solo para flash, sino para C ++ y Javascript. Entonces, si sabes cómo escribir juegos Flash, ya estás cerca de escribir juegos OpenFL.
OpenFL también tiene algunas herramientas excelentes para facilitar la implementación de tus juegos en plataformas específicas. Donde los objetivos de Haxe son cosas como "JS", "SWF", "C ++", las plataformas OpenFL son cosas como "iOS", "Android", "Blackberry", "Tizen", "HTML5 (Canvas)", "Windows EXE" etc. Cuando se entera de que Haxe se dirige a dispositivos móviles, la mayoría de las veces es OpenFL, porque trabaja con Haxe para compilar su código (en C ++, JS, SWF o lo que sea) y luego empaqueta esos binarios para dispositivos móviles.
Flixel
Haxe es un lenguaje, compilador y librería estándar.
OpenFL se basa en esto y agrega la API Flash que funciona en todos los objetivos.
HaxeFlixel se basa en esto aún más y proporciona API específicas para juegos que funcionan en OpenFL.
Un ejemplo de cómo funciona todo junto:
Tú creas un juego. Todo está escrito en Haxe. Cosas como el nombre del jugador, los puntajes y la información de finalización utilizan estructuras de datos de la biblioteca estándar. Funcionarán en tu juego, pero también podrías hacer que funcionen en tu sitio web de PHP.
Tu juego usa OpenFL para compilar en Flash, HTML5, iOS y Android. Como parte de OpenFL, también tiene acceso a las clases estándar de API de Flash, como Stage y Buttons y MouseEvents, que puede usar para la pantalla del menú. Debido a que OpenFL proporciona las clases flash. * Para otros objetivos, su aplicación compila todas las cosas diferentes.
Para su juego real, el rendimiento es importante, y el enfoque de la Lista de visualización flash es un poco lento y no está optimizado para juegos. HaxeFlixel está optimizado para juegos, y es muy rápido. Así que diseñas tu juego con HaxeFlixel usando sus APIs.
Resumen
Haxe es un lenguaje, compilador, kit de herramientas y biblioteca estándar. Proporciona las herramientas más básicas para el código multiplataforma.
OpenFL se basa en Haxe y proporciona la API de Flash para múltiples objetivos (Flash, C ++, Javascript) y facilita la compilación en un montón de plataformas: web, nativa, iOS, Android, Blackberry, Tizen, etc.
HaxeFlixel se basa en OpenFL; utiliza las API proporcionadas por OpenFL para crear un marco de juego específico que es de alto rendimiento y fácil de hacer juegos en 2D.