¿Cuál es un buen libro para comenzar a programar un juego 2D C ++? [cerrado]

8

Tengo una licenciatura en Informática y mientras estaba en la universidad, creé un juego 2D simple en Game Maker. Me gustaría recrear este juego en C ++ como un comienzo para aprender a crear juegos en C ++. Lo que sería un buen libro para comenzar a programar juegos en C ++ para alguien que tenga un poco de experiencia en C ++ (Mis clases de CS Major se enseñaron usando Java y tuve una clase en C ++ para aprender la sintaxis) y conocer los conceptos detrás de los objetos, métodos, herencia, etc.

Este sería un hobby mío mientras acumulo experiencia hasta que algún día pueda trabajar en la industria de videojuegos.

sange
fuente
Si necesita motivación (y tiene tiempo), puede participar en pyweek o en uno de los concursos de
pygame

Respuestas:

8

Viendo que estaba usando Game maker, supongo que está en Windows, así que salte al fondo con el SDK de direct-x. Los ejemplos proporcionan el código fuente y también le dan una idea de la potencia disponible para usted. El hecho de que quieras hacer un juego en 2D no significa que debas seguir con una biblioteca en 2D, en algún momento probablemente quieras hacer algo que la biblioteca no implemente en sí misma (sombreadores o rotaciones o algo aleatorio que simplemente NECESIDAD para su proyecto).

SDL, y probablemente SFML y Cinder, proporcionan un enfoque de alto nivel para "ser lo básico" para ser un motor, por lo que tendría todo el poder de hacerlo desde cero (por lo que podría tener sombreadores de píxeles en SDL), pero no aprenderías cómo se hicieron las cosas. Luego estarías haciendo C ++ real dentro de un marco auxiliar, lo que ayudará a hacer las cosas, pero no será una gran ayuda para enseñarte cómo desarrollar juegos si alguna vez vas a trabajar en una empresa de desarrollo de juegos.

SDL, SFML e incluso Cinder son formas inteligentes de evitar aprender sobre las cosas difíciles en C ++. Normalmente envuelven OpenGL, lo cual es útil para aprender si desea codificar gráficos para máquinas que no son de Windows, pero también hay toneladas de recursos para realizar el trabajo en Direct-X (probablemente más, ya que el virus de Windows se ha extendido a todos los rincones del mundo).

Si no quieres aprender cosas arenosas, entonces está bien, pero de lo contrario, no tengas miedo de comenzar desde una aplicación Win32 sin procesar.

Te sugiero que, para tu comodidad, comiences con todos los diferentes paquetes de ayuda que puedas encontrar, pero dirígete a escribir tu propio motor de renderizado. Escribir un motor es muy divertido y puede proporcionarle un recurso para mirar hacia atrás en sus proyectos futuros. Nada crea un buen código como la sabiduría de hacerlo mal en el pasado.

Richard Fabian
fuente
Gracias por la respuesta, tengo experiencia en C ++ y me gustaría entrar en las cosas arenosas para tener experiencia en ello. Me encantaría que este pasatiempo finalmente conduzca a una carrera en la industria de los videojuegos una vez que obtenga algo de experiencia laboral.
Sange
7

Recomendaría mantenerse alejado de esa biblioteca de Cinder. Navegar por los tutoriales es tan desmotivador como puede ser. Elija algo fácil, divertido y rápido para codificar, como SFML . Piense en ello como un reemplazo moderno orientado a objetos para SDL. Si las características satisfacen tus necesidades, instálalo, sigue los tutoriales y simplemente comienza a jugar con él. Puede encontrar códigos fuente para proyectos SFML existentes en los foros para ver cómo implementan cosas, como el bucle del juego, cómo organizan el código y los objetos y cómo se comunican entre sí y con Wikitiene una serie de tutoriales y códigos fuente que puede usar en sus proyectos. Y los foros están activos, por lo que puede pedir ayuda allí en cualquier momento.

El mago
fuente
Nunca había oído hablar de eso, ¡parece mucho más apropiado que la ceniza para los juegos! bonito.
Iain
4

No conozco ningún libro específico para juegos 2D, pero deberías mirar las respuestas aquí . Después de todo, los juegos 2D y 3D tienen mucho en común. Hay muchos juegos en 3D que tienen un juego en 2D.

Tal vez podría consultar los tutoriales de Lazy Foo , que cubren muchos temas importantes paso a paso. Usan SDL y OpenGL.

Carnby
fuente
3

Puede que esté un poco anticuado, pero Advanced 2D Game Development fue un libro bastante bueno. Echale un vistazo.

Miguel Moll
fuente
Acabo de comprar este libro (¡esperando que llegue!). ¿En qué términos diría que está anticuado?
Zolomon
Bueno, desde que salió en 2008, la tecnología ciertamente ha cambiado. Pero los métodos más probables son los mismos. Lo siento, ha pasado un tiempo desde que lo leí y no se me ocurre nada.
Miguel Moll
2

¿Por qué no intentar comenzar con algo como http://libcinder.org/ ? Todo es gratis y tiene todos los tutoriales que necesita para comenzar.

Iain
fuente
0

Más allá de un libro, es importante decidir qué tipo de juego quieres hacer. Eso ayudará a informar su camino en general. Sugeriría elegir algo simple, Buscaminas o Tetris o tal vez Lightcycles of Tron, donde la lógica del juego es bastante sencilla y los requisitos gráficos son mínimos solo para obtener algo básico.

dash-tom-bang
fuente
0

Si bien hay muchos libros por ahí, no he encontrado uno con el que estoy contento. La mayoría parece apegarse a los "juegos" que no son particularmente interesantes desde la perspectiva del juego, y realmente no entran en los detalles de implementación de gráficos, bucles de juegos, etc.

Mi recomendación sería, en lugar de buscar un libro, aprender a través de la búsqueda en Google. Hay toneladas de tutoriales en línea para hacer juegos simples, solo elige un juego como Tetris (o lo que sea), hazte una lista de tareas de programación y luego, cuando te quedes atrapado en algo (tal vez no estés seguro de cómo aceptar la entrada en tiempo real , o cómo dibujar gráficos en la pantalla) busque la respuesta a esa pregunta específica. Repite cada vez que te quedes atascado, y para cuando termines, tendrás una idea bastante buena de cómo se arma un juego.

Ian Schreiber
fuente