¿La forma más fácil y divertida de programar juegos 2D? ¿Destello? XNA? ¿Algún otro motor? [cerrado]

20

Esta es una publicación que detalla mi búsqueda de la forma más divertida para que un programador de juegos de aficionados pueda endulzar su tiempo libre haciendo un juego.

Mis requisitos: primero miré a Flash, hice un par de juegos pequeños pero dudo del rendimiento. Me gustaría hacer un juego de estrategia bastante grande, con varios cientos de unidades luchando simultáneamente, explosiones y animaciones incluidas. También mapas con zoom. Vi que Adobe tiene una nueva API 3D para Flash, pero no sé si eso también mejora el rendimiento 2D, no pude encontrar nada relacionado con esa pregunta en sus sesiones MAX10. ¿Diría que Flash es una buena tecnología para hacer juegos 2D grandes fácilmente? Realmente me gusta Actionscript, y me encanta lo fácil que es todo en Flash. Hay varios motores disponibles que lo hacen aún más fácil.

Solo hago esto por diversión, y sería aún mejor si hubiera editores de animación / partículas adecuados disponibles y si el motor que tuviera que usar estuviera disponible para múltiples plataformas. (para que más personas puedan jugar mi juego una vez terminado). También me gustaría tenerlo disponible en muchas plataformas móviles. (porque me encanta la entrada táctil por alguna razón)

Conozco bastante bien el marco XNA, pero no hay buenos motores disponibles para él, y solo se ejecutará en Windows, lo cual es un gran apagón. Aún más grande es que necesitas instalar el XNA redistribuible cada vez que quieras darle el juego a alguien. Si uso XNA, tendría que hacer todas las herramientas yo mismo, y probablemente tendría que hacerlo con WPF. (Me encantaría crear herramientas con Adobe AIR, pero desafortunadamente las API para la manipulación de imágenes, etc. son mucho peores en Flash que en XNA / WPF). Ahora, soy consciente de que podría hacer mi propio motor que admite cada una de esas plataformas, pero, francamente, sería demasiado trabajo a través de las API. Después de todo, quiero hacer un juego, no un motor.

Entonces, la pregunta es: ¿ Tal vez haya un motor multiplataforma (libre o de desarrollo gratuito) disponible que pueda usar para el desarrollo 2D? Prefiero: C #, Actionscript. No me importa usar c ++ si el conjunto de herramientas está por encima del promedio, pero dudo mucho que haya algo así por ahí. Por favor demuestre que estoy equivocado :) Así que resumen: me gustaría usar Flash, pero no sé si escala lo suficientemente bien. No soy un scripter, quiero algunas API reales con las que pueda trabajar dentro de un IDE adecuado.

Solo para información, miré varias alternativas, en realidad ya estoy buscando mucho tiempo. Me ayudarías mucho para tomar una decisión finalmente.

  • En cuanto a las características, el motor Flatredball sería ideal. Pero probé sus herramientas y, francamente, son horribles. Absolutamente inutilizable, necesitaría hacer la mía con seguridad. No miré su API, pero si sus herramientas son tan malas, no me inclino a buscar más.

  • Unidad3D. Este es bastante bueno, pero realmente no necesito 3D , y es bastante ... mucho trabajo para aprender. Tampoco me gusta que sea tan costoso de usar para diferentes plataformas y que solo pueda codificarlo mediante scripts. Tienes que comprar cada plataforma por separado. La usabilidad del editor es promedio, el producto en general es lo suficientemente bueno para la mayoría de los propósitos, pero aprenderlo yo mismo sería excesivo.

  • Shiva 3D. Se ve lo suficientemente bien, pero de nuevo: realmente no necesito 3D. La usabilidad del editor es un poco peor que Unity3D en mi opinión y no tenía claro cómo comenzar a programar. Creo que requiere C ++ para la codificación, por lo que también es negativo. Quiero divertirme, y c # es divertido;)

  • SDL Francamente, todavía necesitaría portar a todas esas diferentes implementaciones de SDL. Y no me gusta la programación de estilo OpenGL, es simplemente fea. Y necesita c ++, sé que puede haber algunos envoltorios disponibles, pero no me gusta usar envoltorios, porque ...

  • Irrlicht. Muchas funciones, pero el soporte parece ser bajo y está dirigido a entusiastas. Los enlaces de C # se caen repetidamente. No soy un entusiasta de los motores, solo quiero hacer un juego. No veo que esto suceda con Irrlicht.

  • Ogre3D. Demasiado trabajo, es solo un motor gráfico. Tampoco hay soporte para múltiples plataformas y c ++.

  • Torque2D. Cuesta algo para usar, y no escuché muchas cosas buenas sobre soporte y documentación. También cuesta extra por cada plataforma.

Maxi
fuente
Las herramientas del SDK de FRB son malas (Pegamento en particular, no lo estoy usando) pero le ahorra tiempo al escribirlas y los formatos de archivo son simples si es necesario escribir sus propias herramientas. La API no es tan mala y parece adecuada para este alcance, el mayor problema en este momento es la falta de un puerto XNA 4.0 para PC y Xbox. Además, la redistribución de XNA y otros requisitos previos pueden ser parte de la instalación, y con clickonce puede tener la actualización automática y la implementación listas para funcionar.
Oskar Duveborn
Bueno, mi punto es que no los usaría, y por lo tanto las herramientas son inútiles. Siguen chocando conmigo además de su mala interfaz de usuario / sensación general. ¿Qué pasa si resulta que pierden cierta característica? Incluso si fueran de código abierto, no me gustaría acercarme a esas bases de código. Parece duro, pero realmente solo quiero un poco de programación relajada, y FRB parece un pastel de frustración. Imagínese: probé el editor de partículas y ni siquiera pude encontrar el botón para abrir un archivo de imagen. Cuál es posiblemente la característica más importante sobre la que se basa todo lo demás.
Maxi
No es una respuesta completa, pero Flash escala mejor de lo que podrías pensar. Si pasa a un lienzo de mapa de bits en lugar de usar la pila de visualización y realiza otras optimizaciones simples, puede exprimirlo mucho más de lo que parece con una solución más ingenua.
Gregory Avery-Weir
El elemento de lista en el Editor de partículas simplemente se llama "textura" en el panel de propiedades del emisor ^^ Hay tutoriales sobre todas las herramientas para que los creadores de contenido que no codifican puedan ayudar. Pero sí, las IU son realmente horribles desde el punto de vista del diseño de interacción.
Oskar Duveborn
1
Con respecto a que XNA es solo Windows, hay una implementación de código abierto de la API de XNA llamada MonoGame que se ejecutará en todo tipo de plataformas que no sean Windows: cocoa-mono.org/archives/400/… No lo he usado yo mismo pero sí existe
chaosTechnician

Respuestas:

10

Pygame es, con mucho, mi favorito. Dado que programar en python significa que programarás rápido y que las cosas en 2D son rápidas de hacer, pygame será divertido ...

jokoon
fuente
Como beneficio adicional si decides que quieres mudarte al mundo 3d, hay un pyglet que envuelve GL en piel de serpiente;)
Wayne Werner
9

He estado usando LÖVE por algún tiempo y me gusta mucho. Tendría que aprender Lua, pero de todos modos es un pequeño idioma divertido de aprender. Las personas en el foro son extremadamente útiles.

egarcia
fuente
¿Cuál es el rendimiento? ¿Qué IDE puedo usar?
Maxi
1
Secundo esto. Usamos Lua y LOVE para nuestro juego Global Game Jam y funcionó fantásticamente. Han reunido muchas bibliotecas de código abierto realmente geniales en una API común, y cada versión sigue mejorando. El rendimiento es excelente (¡Lua es increíblemente rápido!), Y muchas funciones avanzadas de OpenGL como FBO están expuestas, lo cual es raro en muchos motores 2D. Además de todo eso, es multiplataforma (Win / Mac / Linux). Definitivamente lo miraría bien.
Bob Somers
1
@Maxi: con amor solo necesitas un editor y una consola donde puedas escribirlove .
egarcia
2
¿Los rusos hicieron un juego con eso? Sería de Rusia con amor: P
Bart van Heukelom
5

Decidí ir con Flash. La nueva API Molehill 3D también se puede utilizar para dibujar sprites 2D en el espacio 3D mucho más rápido. No veo ninguna razón por la cual Flash no debería ser lo suficientemente rápido para el juego que describí anteriormente. Tendré que construir las herramientas yo mismo, pero probablemente habría necesitado hacerlo de todos modos. Usar AIR para construir herramientas también es bastante bueno en mi opinión. Flash también tiene el mayor alcance con plataformas, lo cual es genial.

Maxi
fuente
Prueba Cocos2d-x . Es lo que estoy usando para mi desarrollo de juegos independientes.
Stephen Furlani
1
Flash es probablemente una buena opción, ya que existen herramientas y bibliotecas muy buenas (maduras) para flash. La API de Molehill quitará una gran carga de la CPU (anteriormente, todo fue manejado por la CPU). Sin embargo, debes pensar en la distribución de tu juego. Flash generalmente significa un juego basado en navegador ...
bummzack 03 de
Y tenga cuidado con los juegos móviles, flash y móviles son una combinación tan pobre.
Gustavo Maciel
" Y tenga cuidado con los juegos móviles, el flash y los móviles son una combinación tan pobre ". @Gtoknu, ¿alguna razón por qué?
NemoStein
@NemoStein Intenta buscar en YouTube algún flash que se ejecute en móviles. Además, adobe suspendió su desarrollo de flash para Android, y no hay flash para iOS.
Gustavo Maciel
4

Prueba SFML

Svenstaro
fuente
Si bien es útil, SFML es solo una API de gráficos / red / sonido, no es un motor de juego con todas las funciones (aunque está bastante cerca).
a_m0d
2

Prueba Cocos2d-x . Es lo que estoy usando para mi desarrollo de juegos independientes.

Es una plataforma OpenGL (ES) probada y verdadera que tiene sonido, física e incluso un poco de 3D que ha estado disponible para el iPhone por un tiempo, y está llegando a otras plataformas.

Stephen Furlani
fuente
2

Como dijiste que te gusta Actionscript pero que buscas multiplataforma, echa un vistazo a HaXe + NME . HaXe es un lenguaje similar a Actionscript, pero puede compilarse en Flash, Javascript, PHP o C ++. NME es una biblioteca similar a la biblioteca de gráficos de Flash, pero también se ejecuta en otras plataformas. Esta combinación le permite compilar en muchas plataformas diferentes.

Todavía no he usado NME, pero mi primera prueba con HaXe + Molehill (hace solo unos días) produjo 60 fps al renderizar 10,000 sprites rotativos 16x16 en mi computadora portátil. Solo he estado usando HaXe durante unos días y no tengo suficiente experiencia con él para asegurarme de que sea lo correcto para ti, pero vale la pena echarle un vistazo.

amitp
fuente
1

Personalmente soy un gran admirador de Allegro 5 , pero es una API de C. Aún así, es una API simple que se quita de tu camino y proporciona acceso a:

  • Gráficos 2D (respaldados por OpenGL o D3D, dependiendo de la plataforma)
  • Sonar
  • Fuentes (incluidos tanto el mapa de bits como el TTF)
  • Entrada (mouse y teclado)
  • PhysicsFS (virtualización del sistema de archivos)
  • Carga de imagen

5.1 también agregará soporte de sombreador.

SDL 1.3 también se está formando bastante bien. Sam parece haber terminado de hacer los principales cambios de API, y lo que ya está dentro es bastante estable. Aún así ... aún no es beta, y se lanza Allegro 5.0.

De acuerdo, para juegos más complejos y avanzados, probablemente quieras emparejar Allegro 5 con algún tipo de biblioteca de física ( Box2D , por ejemplo). Aún así, puede llegar muy lejos y divertirse mucho, con nada más que Allegro 5, la biblioteca estándar C o C ++ y su propio código.

Greg Jandl
fuente