una - java grafica
Inicio de la programación de Gráficos y Juegos(Java y tal vez C++) (10)
Siempre he tenido interés en crear mis propios juegos, y ahora en la universidad tengo la oportunidad de crear algunos juegos en 2D y 3D usando Java y C ++ para aquellos que están de esa manera inclinados.
Nunca antes había programado un juego, menos aún gráficos, así que soy completamente nuevo en el área. Después de un viaje rápido a la biblioteca, hoy encontré muy poca información sobre cómo iniciar el desarrollo de juegos 2D o incluso la programación de gráficos en Java o C ++. Puedo programar en Java a un nivel razonable, pero nunca he tocado C ++.
- ¿Alguien puede recomendar buenos libros para iniciar la programación de gráficos en Java o C ++?
- No tengo experiencia en C ++, pero he programado en C y Java y me siento razonablemente cómodo en ambos. ¿Debería dar el salto y sumergirme en C ++ cuando hay marcas importantes en juego? Escucho muchas cosas buenas sobre C ++ en lo que respecta a la programación de juegos, así que no estoy seguro de cuál es la mejor opción para mí.
- Estoy buscando escribir un juego 2D en mi propio tiempo por un poco de diversión antes de empezar a trabajar duro en la universidad. ¿Alguien puede recomendar algunos buenos recursos para aquellos interesados en escribir sus propios juegos usando OpenGL y Java / C ++?
- Para aquellos que han seguido mis otras preguntas aquí, soy terrible en Maths y tengo muy poco conocimiento incluso de los fundamentos. ¿Va a ser un problema serio para mí? Si necesitara conocimientos de Matemáticas, ¿qué recomiendas?
Me disculpo si mis preguntas parecen un poco vagas, ya que soy un novato completo cuando se trata de muchos de estos temas. Cualquier ayuda que pudiera proporcionar sería muy apreciada.
EDITAR: Ya he comprobado la pregunta titulada " programación de juegos ", pero he descubierto que realmente no atiende mis preguntas específicas.
Algo para ayudarlo a ingresar a OpenGL es GLUT: el OpenGL Utility Toolkit . Se encarga de una gran cantidad de configuración de bajo nivel que es un problema tratar si está comenzando un proyecto OpenGL desde cero. Hace que sea más fácil saltar directamente y comenzar a poner cosas en la pantalla. GLUT no se ha actualizado por un tiempo, pero también puede probar FreeGLUT , que es un reemplazo de fuente abierta más reciente de GLUT y está incluido en varias distribuciones de Linux desde el primer momento.
Aquí hay algunos libros que utilicé al escribir código OpenGL en C ++:
Fundamentos de gráficos por computadora
También puede consultar el MIT OpenCourse sobre gráficos por computadora . Podría ayudar a complementar su desarrollo.
¡La mejor de las suertes!
Estoy pasando por un proceso similar al suyo en este momento. Encontré el siguiente sitio útil, tiene un gran tutorial (invasores del espacio en Java):
http://www.cokeandcode.com/node/6
Puedes obtener el código fuente y jugar con él. Probablemente se beneficie de un IDE, si no tiene un favorito, puede probar Netbeans (netbeans.org), que es gratis y creo que es bastante bueno.
En cuanto a los libros, este está bien (está centrado en Java):
http://www.amazon.com/Killer-Game-Programming-Andrew-Davison/dp/0596007302
Personalmente, decidí usar Java para juegos (por ahora) porque estoy muy cómodo con Java y mucho menos con C ++. Pero encontrará que la mayoría de la gente usa C ++ para juegos comerciales. En realidad, comencé con pygame (framework de juegos de python), que también es bueno para empezar, especialmente si conoces Python.
Honestamente, ve a comprar una xbox 360 y descarga el paquete XNA SDK gratis para comenzar. Actualiza tus habilidades matemáticas y modifica algunos juegos independientes en su kit de muestra. ¡Construye un juego pequeño, invita a algunos amigos a tomar unas cervezas y diviértete!
Vas a aprender mucho más rápido, que tocar C / C ++ / Java, y también te divertirás haciéndolo bien.
La programación de juegos, especialmente cuando se trata de gráficos, implica una buena cantidad de matemáticas. Al menos, querrá tener una familiaridad básica con vectores y matrices, específicamente con respecto a la representación de transformaciones de rotación, traducción y escalado. Con ese fin, recomiendo Geometric Tools for Computer Graphics . Un curso de álgebra lineal no le haría daño, aunque probablemente ya esté en su plan de estudios.
En cuanto a la programación de juegos en Java, recomiendo echar un vistazo a jMonkeyEngine , un motor de juegos de código abierto con todo tipo de código de ejemplo divertido para que comiences. Originalmente se basó en el motor presentado en el libro 3D Game Engine Design (el mismo autor que Geometric Tools), que es otra buena fuente de información sobre programación de juegos en 3D. También hay código C ++ y documentos sobre varios temas en gráficos 3D en el sitio oficial de ese libro.
Respuesta corta: ¡No escriba en C ++! Pasará más tiempo aprendiendo el idioma que aprendiendo sobre juegos, física, colisiones, etc.
Obtenga una copia de Python y PyGame. Es fácil comenzar, pero en realidad aprenderás montones. Después de haber aprendido Java, se sorprenderá de lo fácil que es Python para hacer las mismas cosas.
Una vez que te sientas cómodo con tu conjunto de habilidades, mira Panda3D . Es lo que se usa en Pixar / Disney. Si decides ensuciarte las manos con C ++ en esta etapa, entonces bucear en Panda3D va a ser bueno.
Todos los estudios principales usan Python al igual que Google. Si termina por especializarse en C ++, se convertirá en un programador de sala de máquinas. Muy necesario, pero no tan glamoroso.
Ah, mencionaste las calificaciones, etc. A menos que necesites tomar un curso de programación C ++, estarías desperdiciando tiempo y energía valiosos en ello.
Sé que preguntaste específicamente por Java o C ++, pero descubrí que PyGame (basado en SDL) ha sido una buena introducción para mí en las técnicas básicas de juego. Tienen un par de tutoriales y ejemplos completos, y Python es un lenguaje muy claro y fácil de aprender.
También sugeriría la opción de Xbox 360 si ya tienes una. Eso es lo que voy a pasar a continuación, para que pueda aprender todas las cosas en 3D que PyGame no es tan bueno.
En cuanto a las matemáticas, es probable que puedas vivir sin habilidades reales para juegos simples en 2D. Si pretendes realizar algún tipo de simulación física, tendrás que aprender de verdad algunas matemáticas reales. Incluso los juegos 2D básicos, como andar en moto sobre saltos, implican mucha matemática física para hacerlo funcionar / divertido
Tengo este libro: Principio de C ++ a través de la programación de juegos . Puede parecer trivial al principio, pero te enseña mucho a medida que lo atraviesas. No hay programación basada en GUI en este libro, solo la consola. Lo cual es bueno hasta cierto punto si quieres ver cómo una "historia" completa de un juego puede unirse.
También puedes visitar Gamedev.net , tienen una gran cantidad de recursos y artículos para que comiences. Buena suerte. :)
Yo recomendaría comenzar con C ++ y SFML. C ++ tiene la biblioteca más grande disponible de código existente y cada ejemplo que encuentre probablemente estará orientado a C / C ++. SFML es una biblioteca de ventanas y gráficos (comparable a SDL si ha oído hablar de eso) utilizando un diseño orientado a objetos que se ajusta mejor a C ++. Te permitirá comenzar a trabajar con una ventana OpenGL desde el principio, y la documentación también es bastante buena.
Actualmente estoy haciendo exactamente lo mismo que ahora en la universidad, ¡pero casi he terminado de estudiar esa parte de mi curso! ¡¿Cómo de bizzare!?! Mite también puede enviarle material de clase adicional, si es útil.
Además de los libros, creo que deberías consultar estos sitios:
Opengl Programming Guide: The Official Guide to Learning Opengl, Versión 2.1, Addison Wesley, 2007
Aquí están los libros que también vería: Hearn & Baker, Computer Graphics con OpenGL, Prentice-Hall, 2003.
También consideraría seriamente usar C ++ como su lenguaje de programación. De lo que me han enseñado y lo que he estado leyendo, la rama del lenguaje C / C ++ es la más utilizada por la industria del juego, por ejemplo escuché a STEAM que hizo que la serie de vida media usara C ++ y algunos otros.
Aquí hay un libro libre de C ++ en Internet: Thinking in C ++, 2nd ed. Volumen 1 © 2000 por Bruce Eckel
Esto es lo que aprendí de: C ++ en 24 horas, Sams Teach Yourself