language-agnostic

language agnostic - Pros y contras de los marcos de juego



language-agnostic (11)

acaba de comenzar en el desarrollo de juegos de hobby

Debes programar algunos juegos antes de intentar tu propio marco, de lo contrario no sabes qué poner y cómo escribirlo. Acabarás reescribiéndolo para "hacerlo bien", cuando realmente hay muchas formas buenas (y malas) de hacerlo, dependiendo de para qué se use.

Los "marcos" también pueden ser una molestia, ya que ofrecen una solución parcial a un problema. Por ejemplo, solo extiendes unas cuantas clases y boom, tienes un juego. Pero si tu juego no se adapta al diseño del marco, acabarás luchando con él y hackeando. El enfoque de "caja de herramientas" tiende a ser un mejor enfoque, ya que solo proporcionó funcionalidad sin forzarlo demasiado en cómo debe usarlo. Por ejemplo, las bibliotecas estándar de C son toolbox y no lo obligan a estructurar su código de una manera determinada.

Para empezar tienes que preguntarte:

  • ¿Qué tipo de juegos te gustaría escribir?
  • ¿Qué te gustaría desarrollar para?
    • ¿Navegador web?
    • ¿Facebook?
    • ¿ORDENADOR PERSONAL?
    • PC y Mac? es decir, plataforma cruzada
    • ¿Consola?
    • iPhone y iPad?
  • qué idioma le gustaría usar (pero esto puede ser establecido por la plataforma que elija)

La curva de aprendizaje para escribir juegos puede ser bastante pronunciada, ya que es posible que tenga que aprender:

  • como programar en un nuevo idioma
  • cómo funciona una nueva API
  • Cómo hacer los gráficos y el sonido.
  • como depurarlo
  • Tal vez como conectarlo a otro sistema.

No se desanime, esto suena como mucho trabajo! La clave para escribir buenos juegos es sobresalir y tener la determinación de continuar y terminar. ¿Has visto la película, Indie ?

Mi consejo:

  • Comience de manera simple : hay mucho que aprender, si toma demasiado para comenzar, se asustará y pensará que es muy difícil. Asi que...
  • Lenguaje sencillo: escuchará a muchas personas que se despotrican en Internet acerca de qué tan buenos son ciertos idiomas. Bueno, todos tienen sus pros y sus contras. Algunos son más fáciles de aprender que otros. Por ejemplo, Python o Lua son bastante fáciles de aprender. Son lenguajes de script, que son mucho más tolerantes y menos complicados para los juegos juntos. No tienen cosas como punteros, asignación de memoria, etc. para preocuparse.
  • ¡Sólo haz un juego! - Escuchará a otras personas hablar sobre patrones y singletons y diseño impulsado por datos, etc. Nada de eso importa cuando comienza. No estás tratando de impresionar a nadie con tu código. ¡La gente te juzgará por el resultado final, no por el código ! ¡Confía en mí, algunos de los mejores juegos que has jugado en la consola, etc. tienen un código terrible !
  • Use una biblioteca pequeña y bien mantenida . Lo haré fácil, hay otras opciones, pero:
    • Si quieres elegir Python (¡una buena opción!) usa pygame . Utilice Eclipse (para Java Dev) con PyDev . Magia y gratis!
    • Si quieres usar Lua (¡una buena opción!) usa Love
  • Busca otros ejemplos de juegos : Pygame tiene muchos ejemplos y juegos que lo utilizan. Verifique la licencia y, si tiene permiso, simplemente copie el código. Parche, empalme, pero ponga un comentario sobre dónde obtuvo el código, es correcto y puede ser necesario de acuerdo con la licencia. No ignore la licencia .
    • Mira a Ludum Dare . Toneladas de grandes ejemplos y código fuente para ver cómo se hace rápidamente.

Luego, una vez que haya hecho algunos juegos, considere las bibliotecas y los idiomas más complicados. Luego puede hacer preguntas más específicas sobre cómo resolver ciertos problemas. ¡Que te diviertas!

Esta pregunta está dirigida a cualquier persona que esté comenzando a desarrollar juegos de pasatiempos . Lo primero que viene a la mente es:

¿Qué lenguaje / framework debo usar?

Lista de soluciones:

Plantilla de respuesta:

Nombre del marco (vinculado)

Pros:

  • Pro1
  • Pro2
  • ...

Contras:

  • Con1
  • Con2
  • ...

Las ventajas de cualquier marco (juegos, web, etc.) es que eliminan el código innecesario que normalmente escribirías.

Los contras a menudo aparecen más adelante, una vez que quiera ir más allá de las capacidades del marco, puede ser muy difícil. Con muchos de los marcos más complejos, extender su funcionalidad para que haga algo para lo que no fue diseñado, tendrá que escribir mucho de su propio código.


Pro para XNA en mi opinión es que las aplicaciones XNA pueden ejecutarse en Xbox360 además de PC, y puedes elegir tu idioma favorito de cualquier cosa que sea compatible con .NET Framework, que es bastante.


Si tienes tiempo, hazlo todo tú mismo. Vale la pena la experiencia y aprenderá mucho, en lugar de cómo trabajar con el framework X. ; ^)

Pros

  • Control total
  • Experiencia de aprendizaje fuerte
  • Código consistente entre el motor del juego y el programa.
  • Tiende a ser adecuado para la aplicación a la que se aplica.
  • Soporta cualquier idioma / entorno

Contras

  • Dificultad alta
  • No hay documentación en línea
  • En general, menos genéricos. Más difícil de aplicar a otros juegos.
  • Más difícil de usar para otras personas.
  • Probablemente más buggier que los frameworks más populares.
  • No está bien probado.
  • Más difícil de conseguir ayuda.

Microsoft XNA Game Studio

Pros:

  • Utiliza lenguajes .NET; Memoria gestionada, facilidad del entorno de Visual Studio, etc.
  • Buena mezcla de alto nivel y bajo nivel.
  • Soporta 2D y 3D muy bien
  • Está probado Mira el Xbox Live Arcade, todos esos juegos están hechos con XNA
  • Los juegos se pueden ejecutar fácilmente en una Xbox en red

Contras:

  • Utiliza lenguajes .NET; no se puede usar Java, C ++, etc.
  • Aún no hay demasiados recursos (es decir, libros), aunque es fácil de aprender y usar, por lo que puede no ser un problema
  • Sólo para Windows. Mono (en Linux) no es compatible con XNA en absoluto.
  • XNA 3.0 fue lanzado menos de un año después de 2.0, y ahora estamos en 3.1; Los cambios frecuentes como estos pueden dificultar la documentación, es decir, los libros se vuelven obsoletos rápidamente y muchas cosas se rompen al actualizar un juego 2.0 a un juego 3.0.
  • A partir de 2014, discontinued .

jMonkeyEngine

Pros

  • Utiliza Java; Memoria gestionada, altamente compatible con muchos IDE maduros (Eclipse, NetBeans, etc.), altamente portátil
  • Buena mezcla y alto nivel y bajo nivel.
  • Scenegraph 3D moderno
  • Construido sobre LWJGL , una biblioteca de juegos muy madura y que funciona bien
  • Muy ligero no agrega mucha sobrecarga
  • Construido en modelo 3D cargando en una variedad de formatos.
  • Construido en un moderno escenario basado en nodos en 3D.
  • Fácil de usar.
  • Fuente abierta; En constante evolución y mejora.
  • Incluye sacrificio, control de colisiones, etc.
  • Tiene la opción de guardar y leer su propio formato de modelo binario ultracompacto y ultrarrápido.
  • Lista completa .

Contras

  • Utiliza Java, por lo que compila JIT y, por lo tanto, puede ser un poco más lento que C ++ y otras opciones.
  • No se ha utilizado en muchas aplicaciones comerciales (y, por lo tanto, no está "probado").
  • No tiene editor adjunto de ningún tipo, todo debe hacerse en código puro.
  • Difícil de hacer juegos en 2D (para eso podrías probar Slick ).

Destello

Flash es una gran herramienta para aquellos que tienen una experiencia limitada en programación o arte, pero que desean comenzar a desarrollar un juego.

Pros:

  • Los símbolos hacen que la creación gráfica y la manipulación sean muy fáciles.
  • Los símbolos tienen cuadros delimitadores incorporados; Los cuadros delimitadores tienen una detección de colisiones incorporada.
  • Puertos fácilmente a la web
  • Las capas integradas y la arquitectura de visualización hacen que la visualización del contenido sea simple
  • Mucho soporte, documentación, bibliotecas.
  • El arte vectorial es fácil de crear.

Contras:

  • Relativamente lento
  • Ningún método u sobrecarga del operador
  • Requiere una compra, ya sea de Creative Cloud o de Flash.
  • Pixel art debe ser portado, lo que puede ser agravante

Recomiendo altamente flash si tienes acceso a él, es uno de los programas que uso más a menudo.


SDL

Pros

  • SDL admite oficialmente Windows, Mac OS X, Linux, iOS y Android
  • Es utilizado por el software de reproducción de video, emuladores y juegos populares, incluido el galardonado catálogo de Valve y muchos juegos de Humble Bundle.
  • Fuente abierta
  • SDL está escrito en C, funciona de forma nativa con C ++, y hay enlaces disponibles para varios otros idiomas, incluidos C # y Python.

Contras

  • No hay IDE especial como Unity
  • Un poco bajo nivel

OGRE

Pros:

  • Toneladas de características 3D
  • Multiplataforma, utiliza DirectX o OpenGL
  • Arquitectura de plugin para aún más características
  • No intenta ser un motor de todo, solo un motor de gráficos (ni siquiera trata de manejar la entrada, como muchas bibliotecas de gráficos tienden a hacer)

Contras:

  • Utiliza el patrón Singleton
  • Procesamiento 2D o primitivo muy difícil de hacer (polígonos individuales, líneas, etc.)
  • Toneladas de código hacen que la curva de aprendizaje sea bastante pronunciada.

pygame

Pros:

  • Fácil de empezar y crear algo visible.
  • Multiplataforma
  • Un montón de juegos de código abierto disponibles para inspeccionar la fuente.
  • Los pros del lenguaje Python (flexibilidad, escritura dinámica, cadenas / matrices / tuplas, etc.).

Contras:

  • En cuanto al rendimiento, no se adapta a juegos muy grandes (lo que rara vez es el desarrollo de juegos de hobby).
  • Sobre todo adecuado para 2D, aunque 3D es posible.
  • Difícil de distribuir como código cerrado.

También se puede insertar SDL como pros y / o contras.


pyglet

Pros:

  • Dificultad baja
  • Multiplataforma
  • OpenGL gráficos acelerados por defecto
  • Más mejoras gráficas OpenGL fáciles de agregar
  • Lenguaje python

Contras:

  • Menos conocido que el pygame
  • Juego ''loop'' es un poco poco convencional
  • Conocimiento de OpenGL requerido para gráficos avanzados y para maximizar el rendimiento