Soy un desarrollador web de C # y quiero ampliar mi conjunto de habilidades y divertirme mientras lo hago. Conozco algunos de los conceptos básicos de C ++ y me encantaría escribir un motor de juego / juego 2D simple para mí usando C ++. ¿Qué otras bibliotecas o SDK necesito y dónde encontraría algunos tutoriales y recursos informativos para avanzar?
Ya he examinado XNA con C #. Hay muchos recursos para eso, pero prefiero usar productos que no sean de Microsoft. El objetivo de esto es divertirse un poco mientras se convierte en un programador más completo.
Tenga en cuenta que no estoy pidiendo el mejor lugar para comenzar. Solo estoy pidiendo un lugar para comenzar.
¡Gracias por cualquier ayuda!
Sugeriría usar SDL . Ha existido desde hace mucho tiempo, por lo que la documentación y el soporte son bastante buenos, y es una de las formas más fáciles que conozco para obtener una superficie de dibujo en la pantalla. Le dará práctica para escribir clases en C ++ (ya que probablemente quiera envolver mucho las llamadas a la función SDL C) y también le dará algo de experiencia usando punteros y referencias y haciendo un poco de administración de memoria básica. Administrar su propia memoria es una de las principales diferencias entre C ++ y C #.
fuente
Personalmente, elegiría Allegro 5 , por las siguientes razones:
Tiene un sistema de compilación basado en CMake. Esto hace que sea mucho más fácil que la mayoría de los sistemas de compilación para trabajar en múltiples plataformas. Esto parece algo menor, pero en general es bastante importante. Hace que la construcción de la biblioteca sea mucho más simple.
SFML todavía está en un flujo significativo. 2.0 es un cambio bastante sustancial. Mientras que Allegro ya ha experimentado un cambio significativo con la versión 5, y ahora se trata de estabilidad.
Cubre la modularidad de una manera diferente a SFML. Con SFML, solicita componentes específicos, pero los obtiene todos. Si solicita el componente de gráficos, obtendrá todos los componentes de gráficos. Con Allegro 5, siempre obtienes el componente gráfico. Pero si no desea utilizar los cargadores de mapas de bits de Allegro, no tiene que hacerlo; Puedes usar el tuyo.
Tiene muy buena documentación. SFML utiliza documentación de estilo Doxygen, pero incluso eso es bastante espartano. Mientras que Allegro 5 es más completo, con funciones agrupadas en función de los sistemas específicos que cubren. No es perfecto, pero en general es mejor.
Son lo suficientemente inteligentes como para no intentar enhebrar. Con C ++ 11 / Boost. Los subprocesos están ampliamente disponibles o están a la vuelta de la esquina, usar otro envoltorio de subprocesos puede ser más que problemático: puede ser peligroso hacer que su código funcione correctamente.
fuente
Creo que un lugar fantástico para comenzar es LazyFoo . Esto lo pondrá en funcionamiento con SDL más rápido que en cualquier otro lugar que haya visto. Recomiendo entrar rápidamente en OpenGL (tan pronto como pueda soportarlo) porque obtendrá mucho más por su dólar de programación, con aceleración de hardware. Si sigue esa ruta, le recomiendo esta guía .
fuente
Recomendaría SFML si está utilizando c ++. Obtendrá algo en la pantalla rápidamente y usarlo con su código de juego c ++ es sencillo.
fuente
Teniendo en cuenta que OpenGL acelera el lado 2D de las cosas en estos días, no es tan importante tener acceso a los procesadores de software rápidos que Allegro y SDL tienen (o tenían en versiones anteriores). Sin embargo, cuando elijo una biblioteca, me concentro en la madurez del proyecto, la base de usuarios y los documentos más que la velocidad (siempre que la velocidad sea razonable), y diría que SDL y Allegro ganan en esos frentes. SDL también ha lanzado títulos triples AAA como Civ: Call to Power.
fuente