Pregunta

Con algunos amigos comenzamos este proyecto amateur basado en Java, independiente de la plataforma, para un juego de simulador de combate espacial (algo así como la saga de Wing Commander).Ninguno de nosotros es programador 3D, por lo que el camino será largo.

Mi pregunta es:En nuestro lugar, ¿comenzarías a aprender OpenGL (tal vez a través de GLUT) o existe una mejor posibilidad hoy?¿Qué pasa con Direct3D?¿Algún libro que puedas sugerir?Pedimos un par, específicamente

  • Guía de programación OpenGL de Dave Shriner
  • Los inicios de la programación de juegos OpenGL de Luke Benstead
¿Fue útil?

Solución

Considere el uso de un motor 3d de código abierto como Ogre3D o Irrlicht . De esta forma puede concentrarse en hacer un juego:. Contenido, modo de juego

Ambos motores definen una capa de abstracción que puede asignar a Direct3D o OpenGL backends.

EDIT: en un primer momento no me di cuenta que usted ha mencionado en Java, de todos modos ambos motores soportan enlaces Java

.

Otros consejos

Si usted decide aprender los gráficos de bajo nivel de programación en lugar de utilizar un motor de alto nivel 3d como Ogre3D o Irrlicht, yo recomiendo empezar con OpenGL ES 2.X, que es un subconjunto de OpenGL.

OpenGL ES 2.X es un subconjunto simplificado de OpenGL para sistemas embebidos con hardware programable, tales como teléfonos. Por ejemplo, en OpenGL puede haber varias maneras de realizar tareas, pero en Open GL ES 2.X, no hay una sola manera. Porque hay menos posibilidades de elección en OpenGL ES 2.x, hay mucho menos que aprender a dominar OpenGL ES 2.X. El OpenGL ES 2.0 Guía de programación es de 480 páginas, y la guía de programación OpenGL, séptima edición es 936 páginas.

Además, el uso de OpenGL ES 2.X le dará una audiencia más amplia de hardware para su juego. Debido a que es un subconjunto de OpenGL, el código escrito para OpenGL ES 2.X va a funcionar en un sistema completo de OpenGL con poca o ninguna modificación. gráfica del juego pueden trabajar en una variedad de equipos de destino desde el escritorio a los teléfonos inteligentes.

Usted puede optar por un motor 3D de código abierto como Ogre3D .

Pero si realmente desea escribir el motor de gráficos por su cuenta (muy interesante), comenzar por aprender álgebra lineal. No las cosas bastante avanzada, pero debe ser muy cómodo con expresarse en vectores de traslación, las matrices de rotación y similares.

Si ya está familiarizado con estos conceptos, elige cualquiera de Direct3D u OpenGL - esto depende más de la plataforma disponible. Si te gusta para codificar en un entorno de Mircosoft, elija Direct3D, todo lo demás, elegir OpenGL.

La elección de las bibliotecas adicionales depende del lenguaje de programación. GLUT mejores alternativas que son probablemente SDL (C) o Qt (C ++).

Bueno, si nunca antes has hecho programación de gráficos 3D, opta por la simplicidad y aprende sobre la marcha.Solía ​​haber un conjunto de tutoriales realmente interesantes de NeHe (Neon Helium) para OpenGL, que fue el camino que tomé.

He encontrado OpenGL más fácil comenzar con como la curva de aprendizaje no es tan empinada. Usted puede obtener resultados rápidos que ayuda mucho con la frustración inicial / motivación. Palabras toneladas de ayuda, etc. de advertencia sin embargo - la programación en 3D es de por sí complejo y para gastar más energía en la tecnología de construcción de gráficos de juego en sí. Considerar la adopción de Ogre3D si realmente quieres ver el juego terminado: o) (disclaimer: Sé que también hay otros motores, pero Ogre es estable, probada y viene con una buena documentación)

Si desea permanecer independiente de la plataforma DirectX no va a hacer, ya que se limita a las plataformas Microsoft Windows

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top