Motores de desarrollo de juegos multiplataforma 2D [cerrado]

84

He trabajado durante algún tiempo con Corona SDK y me encanta lo rápido y fácil que puedo crear aplicaciones poderosas usando Lua. Pero solo se puede compilar para iOS y Android, lo que parece muy poco ahora.

Mi principal interés es que se pueda compilar en Desktop Y Mobile. Al menos para lo siguiente:

  • Windows + Mac para escritorio, como aplicaciones independientes.
  • iOS + Android para móviles.

Preferiría que se inclinara más hacia las secuencias de comandos de tipo Lua en lugar de ActionScript, pero no dude en publicar cualquier cosa con la que haya trabajado y que le guste.

Hasta ahora he encontrado los siguientes motores:

  • Marmalade Quick : después de investigarlo más a fondo, ¡Marmalade Quick solo puede construir para dispositivos móviles!
  • IwGame : funciona sobre mermelada y dice que se puede implementar en computadoras de escritorio y dispositivos móviles con Lua. Cualquier información es muy apreciada sobre esto.
  • sio2 - Dice "SIO2 es un motor de juegos 2D y 3D multiplataforma basado en OpenGLES para iOS, Android, MacOS y Windows" y "El motor también te permite portar tu juego en Mac Store y en Windows", pero su foro y el título de la web es "Motor de juegos para dispositivos móviles". No puedo encontrar ninguna información sobre si se puede implementar en plataformas de escritorio, cualquier información es muy apreciada nuevamente.
  • Loom Engine : Loom es similar a Haxe + OpenFL (intenta atraer desarrolladores de Flash) en que utiliza ECMAScript similar a AS3, pero no crea código nativo a partir de él. Sin embargo, utiliza Cocos2D para renderizar, por lo que en teoría debería ser tan rápido como Cocos2D. - Gracias a Bojan.
  • SDL : he leído en varios lugares que SDL se puede implementar en casi cualquier plataforma o dispositivo y tiene un enlace Lua. Pero no puedo encontrar cómo funciona esto ya que no es un motor. Cualquiera que pueda explicar cómo funciona y si es posible, una vez más, es muy apreciado.
  • SFML - "Windows, Linux, Mac OS X y pronto Android e iOS". No usa Lua pero puede usar otros lenguajes como Java y Python, etc. ¿Alguien tiene alguna información sobre esto?
  • Torgue2D - "Torque 2D se desarrolló teniendo en cuenta los dispositivos OS X, Windows e iOS y funciona igualmente bien en todas las plataformas". usa TorgueScript y no Android = (
  • Sencha : parece compilarse en todas las plataformas, también usa Javascript, lo cual sé. Pero incluso con V8 JS, ¿funcionaría bien en términos de rendimiento en comparación con otras opciones?
  • GameMaker - propio lenguaje de scripting GML y de hecho recuerdo este como una herramienta para no programadores. ¿Se ha convertido realmente en un motor real, me refiero a un desarrollo serio?
  • Construct2 - Misma pregunta que Gamemaker
  • Corona - Lua pero solo para dispositivos móviles (solo Android e iOS)
  • Cocos2D - Parece que tiene muchas opciones, pero ¿no estás seguro con el mismo idioma? Parece que tendrías que volver a escribir todo tu código. Cualquier información si cocos2D se puede implementar en escritorio + móvil con casi el mismo código sería muy apreciada.
  • Angel2D : dice que se puede implementar en todo excepto en Android y usa Lua, ¿alguien ha usado este antes?
  • libgdx --- Solo he visto cosas buenas sobre esto. Aquí hay una prueba de referencia para libgdx y es donde lo vi alcanzar 40k sprites a 60 fps. http://www.sparkrift.com/2012/1/love2d-vs-allegro-vs-clanlib-vs-libgdx-vs-cocos2d-x-vs-monogame-vs-xna-vs-sfml . Parece que libgdx apenas supera los 30k en realidad. Pero todavía parece asombroso. Esto está al mismo nivel que Qt para mí, casi perfecto, excepto que no estoy realmente preocupado por el rendimiento en él. libgdx puede compilar prácticamente todo.
  • XNA + MonoGame --- El rendimiento de MonoGame parece solo un poco más bajo que libgdx, se puede construir en la mayoría de las plataformas. Sin embargo, no sé mucho sobre XNA y escuché que no recibirá actualizaciones futuras, pero ¿es bastante estable? Se agradece más información.
  • Citrus --- Tampoco tengo mucha información sobre Citrus. Motor de juego AS3 que se puede construir para iOS, Android, Windows, Mac y más.
  • Haxe + OpenFL --- OpenFL (Haxe) se construye de forma nativa en muchas plataformas, no solo en Flash. Windows, Mac, Linux y Android obtienen una implementación nativa opcional o un tiempo de ejecución de OpenFL llamado Neko, que en teoría es más rápido que Flash, y SDL 2.0 permitirá la implementación de iOS pronto (ish). - Gracias a Bojan.
  • Qt-Project --- Simplemente vinculando el proyecto Qt aquí, puede construir para todo y tiene una comunidad bastante grande con muchas bibliotecas de terceros para ayudarlo aún más.
  • Moai --- El único motor Lua que conozco que se puede construir para escritorio y móvil. El único inconveniente es que la comunidad no es tan grande y la documentación no es la mejor. Pero si puede aprobarlos, esta es una gran solución y la que estoy usando actualmente.
  • Adobe --- No puedo olvidar agregar adobe aquí, ya que puede compilar todo lo que admita flash.
  • Unity3D --- La integración 2D recientemente anunciada parece muy prometedora, debería ser lanzada Q3-Q4 de 2013.
  • Cocos2d-x --- Un motor de código abierto. Soporta JS, Lua, C ++ y múltiples plataformas.
  • Html5 --- Parece que se pone mucho énfasis en las aplicaciones móviles html5, aquí hay algunas herramientas que encontré que pueden ayudar a portar su proyecto html5 a una plataforma:

    1. Cromo incrustado

    2. Sencha

    3. Phonegap

    4. Appcelerator / titanio

    5. Icenio

Por lo tanto, estaría feliz si pudiera comentar sus experiencias con cualquier motor y sugerir cuál recomendaría. ¡Gracias por tu ayuda!

EDITAR: Dado que este tema se está volviendo popular, agregaré otras opciones que encontré con el tiempo. Le sugiero que elija lo que le resulte más familiar y mejor para las necesidades de su proyecto.

Nombres de odio
fuente
1
OpenFL (Haxe) se crea de forma nativa en muchas plataformas, no solo en Flash. Windows, Mac, Linux y Android obtienen una implementación nativa opcional o un tiempo de ejecución de OpenFL llamado Neko, que en teoría es más rápido que Flash, y SDL 2.0 permitirá la implementación de iOS pronto (ish). Loom es similar (intenta atraer a los desarrolladores de Flash) en que utiliza ECMAScript como AS3, pero no crea código nativo a partir de él. Sin embargo, utiliza Cocos2D para renderizar, por lo que, en teoría, debería ser tan rápido como Cocos2D
Bojan Markovic
2
Realmente debería agregar Cocos2d-X a la lista: cocos2d-x.org
Clay
Definitivamente deberías visitar UDK de Epic Games. En realidad, es un motor AAA completo dirigido a moderadores y desarrolladores independientes. Desafortunadamente, actualmente no es compatible con Android, aunque hicieron que las licencias UE4 completas estén mucho más disponibles, lo que sí es compatible con Android. Tenga en cuenta que UE4 acaba de ser lanzado y UDK es una plataforma bastante desarrollada.
Igor Čordaš
Además, si desea algo de código abierto y portátil (basado en Java), consulte jMonkeyEngine.
Igor Čordaš

Respuestas:

9

Recomendaría V-Play (v-play.net): es un motor de juego multiplataforma basado en Qt para iOS, Android, Symbian, MeeGo, Blackberry10 y también puede exportar para aplicaciones de escritorio nativas para Windows, Mac y Linux.

Está basado en C ++ pero tiene un buen soporte de secuencias de comandos para QML y JavaScript . QML es una obviedad para aprender y puede aumentar su productividad ya que se necesita menos código; solo vea la comparación con cocos2d-x (60% menos de Loc) o Corona (15% menos de LoC) para una comparación de los mismos juegos.

(Descargo de responsabilidad: soy uno de los chicos detrás de V-Play)

Christian Feldbacher
fuente
1
Si bien estoy seguro de que V-Play es un producto increíble, debes dejar de lado que eres el cofundador. Ver: meta.stackexchange.com/a/59302
Nepoxx
1
Claro, acabo de agregarlo
Christian Feldbacher
7

Si le gusta usar Python, Kivy es una gran solución en estos días. Se compila en todas las plataformas que solicites:

Kivy se ejecuta en Linux, Windows, MacOSX, Android e IOS. Puede ejecutar el mismo código en todas las plataformas compatibles. Puede utilizar de forma nativa la mayoría de los protocolos y dispositivos de entrada como WM_Touch, WM_Pen, Mac OS X Trackpad y Magic Mouse, Mtdev, Linux Kernel HID, TUIO. Se incluye un simulador de ratón multitáctil.

Kivy usa mucho código optimizado para la representación de gráficos (a través de Cython), por lo que también es rápido.

Aquí hay una plataforma de altavoces que le brinda algunos antecedentes y una descripción general (específica de Android).

dirkjot
fuente
Si bien kivy se puede usar para el desarrollo de juegos, no es exactamente un motor de juego, sin embargo, kivyent (kivent.org) es un motor de juego basado en kivy, que puede ser más adecuado, a menos que tal vez si tu juego es muy simple y no requieren la complejidad añadida.
Tshirtman
5

Aquí está mi marco de juego Oxygine . Es un marco C ++ 2D acelerado por hardware moderno de código abierto para plataformas móviles y de PC. Características: OpenGL (ES) 2, texturas comprimidas, atlas, animaciones complejas / interpolaciones / sprites, gráficos de escena, fuentes, manejo de eventos, herramientas de compilación y otros. Puede construirse sobre SDL2 o Marmalade SDK.

En la base del motor hay un gráfico de escena, que es similar al de Flash. Para ser breve, puede llamar a esto como Flash para C ++, pero más cómodo y mucho más rápido. Inicialmente fue desarrollado para plataformas móviles (iOS, Android), pero también se puede utilizar para juegos de PC.

ingrese la descripción de la imagen aquí

Denis Muratshin
fuente
Lo probé (y de hecho lancé un producto de juego terminado), ¡funciona muy bien!
Juster
4

No se menciona el App Game Kit (AGK) aquí, así que permítanme llenar el vacío. Es un SDK multiplataforma principalmente 2D que le permite codificar una vez en C ++ o en su propio lenguaje "Básico". La versión 2 acaba de recibir más del 400% de financiación en Kickstarter y tendrá soporte 3D completo, soporte Spine (para personajes animados 2D), física de balas y un montón de otras características nuevas.

Ya tiene Facebook, Twitter, un montón de comandos de sensores de Ultrabook, Box2D y más. Lo he estado usando desde el principio y me encanta (¿puedes decirlo?). No, no trabajo para The Game Creators (la empresa que lo creó) aunque admito que lo hice durante un tiempo creando algunas aplicaciones.

Una de las mejores características desde mi punto de vista es que puede desarrollar en Windows y transmitir desde el IDE a través de Wi-Fi a cualquier dispositivo compatible, por lo que mientras estoy codificando puedo (en segundos) probar mi código en iPad, Android, Libro de jugadas de Windows, Mac o Blackberry.

Steve H
fuente
4

Si tiene antecedentes en C #. Eche un vistazo a Duality.

Duality es un marco de juego flexible en 2D escrito completamente en C #, y está aquí para facilitarle las cosas. Proporciona un motor de juego extensible y un editor visual a juego. No habrá necesidad de un editor de niveles, entorno de prueba o administrador de contenido porque Duality es todo eso en sí mismo. Y lo mejor de todo: es gratis.

Andy
fuente
1
Buena adición. Pronto lo agregaré a la lista, además de algunos más de los que he descubierto, además de organizarlo mejor. Gracias por tu aporte
Nombres de odio
¿Es compatible con plataformas cruzadas?
JCPhlux
2
@JCPhlux, sí lo es. No estoy seguro sobre el móvil, pero funciona en mono.
Andy
¿Qué es eso fetzenet.de/blog/?page_id=697 ? ¿Por qué no esta dualidad
RS
Fijo. Creo que se mudaron no mucho después de que publiqué
Andy
2

Solo respondo para brindarles algunas ideas sobre cómo se usa SDL. Como dijiste antes, no es un motor de juego (en realidad es solo una biblioteca). Además, no está orientado a objetos en absoluto y no tiene algunas facilidades de animación fáciles (debe codificarlas usted mismo).

Cómo funciona (utilicé la versión C pero supongo que el enlace Lua debería ser similar):

Incluya los encabezados necesarios para construir el proyecto en la plataforma que desee.

Diseña tu propio bucle de juego en el que configurarás (al menos) un sistema completo de procesamiento de eventos, un administrador de velocidad de fotogramas y un "limpiador de pantalla (o actualizador)" (insisto en el hecho de que tienes que actualizar manualmente tu pantalla usando la rutina SDL_flip_screen que es algo que no es una de sus preocupaciones en absoluto con Corona).

Luego, codifica tu juego usando todas las "mecánicas" que hiciste antes.

SDL es una biblioteca de bajo nivel (no espere tener un marco de GUI fácil de usar o el marco de guión gráfico de Corona, por ejemplo).

Finalmente, esta biblioteca se usó para portar Civilization III a Linux, así que sí funciona, pero te pedirá mucha energía para tener algo como lo que tenías con Corona

PD: no soy un hablante nativo de inglés, así que avíseme si no estaba claro :)

Julien
fuente
2

Gideros es un gran motor de plataformas cruzadas 2D basado en Lua , que actualmente es compatible con las plataformas Android e IOS, pero habrá más por venir. Y también tiene algunas características excelentes como pruebas instantáneas en el dispositivo, escalado automático y resolución de imagen automática para apuntar fácilmente a varios tamaños de pantalla, así como la opción de extender cada plataforma a través de complementos nativos.

Artūrs Sosins
fuente
1

También tienes a ShiVa3D , un serio competidor de Unity3D. Utiliza Lua y es compatible con muchas plataformas, desde dispositivos móviles hasta consolas de juegos y navegadores web.

Muy intuitivo de usar y una interfaz de usuario muy agradable para trabajar.

Exsigth
fuente