2009-12-02 17 views
6

con algunos amigos comenzamos este proyecto basado en java independiente basado en plataforma para un juego de simulador de combate espacial (algo así como la saga largamente muerta del comandante de ala). Ninguno de nosotros es un programador 3D, por lo que el camino será largo.OpenGL para simuladores espaciales

Mi pregunta es: ¿en nuestro lugar comenzarías a aprender OpenGL (quizás a través de GLUT) o hay una mejor posibilidad hoy? ¿Qué hay de Direct3D? ¿Algún libro que sugieras? Pedimos un par, específicamente

  • OpenGL de Dave Shriner Guía de programación
  • Principio OpenGL juego de Lucas Benstead Programación

Gracias :-)

+1

Si nunca antes ha realizado la programación en 3D, es probable que desee establecer su punto de mira un poco más bajo que el simulador de espacio. al menos al principio. ¿Quizás un cubo giratorio? Si comienzas con el objetivo de formar el próximo comandante de ala, te estás preparando para el fracaso. – Breton

+1

Tienes razón, al principio será algo así como "guerras del cubo" –

+1

Asegúrate de obtener la fuente actualizada de 'Programación del juego OpenGL inicial de Luke Benstead'. El código en el cd no funciona 'out of the box'. Puede obtener el código actualizado aquí: http://www.kazade.co.uk/downloads/boglgp/ –

Respuesta

5

Considere el uso de un motor de código abierto 3d como Ogre3D o Irrlicht. De esta forma puedes concentrarte en hacer un juego: contenido, juego.

Ambos motores definen una capa de abstracción que puede asignarse a los procesadores Direct3D u OpenGL.

EDITAR: al principio no noté que mencionó Java, de todos modos ambos motores admiten enlaces de Java.

+1

Genial, no sabía Irrlicht. Parece optimizado para juegos de fps, pero creo que es un buen comienzo. –

+0

También está el motor de juegos Yake (http://www.yake.org/) construido encima de Ogre. –

0

Si desea permanecer independiente de la plataforma DirectX ganó 't hacer como está restringido a las plataformas de Microsoft Windows

1

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

2

Puede elegir un motor 3D de fuente abierta como Ogre3D.

Pero si realmente quiere escribir el motor de gráficos por su cuenta (bastante interesante), comience por aprender álgebra lineal. No es algo muy avanzado, pero debería sentirse muy cómodo expresándose en vectores de traducción, matrices de rotación y similares.

Si ya está familiarizado con esos conceptos, elija Direct3D u OpenGL: esto depende más de la plataforma disponible. Si desea codificar en un entorno Mircosoft, elija Direct3D, todo lo demás, elija OpenGL.

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

1

Encontré OpenGL más fácil de comenzar, ya que la curva de aprendizaje no es tan pronunciada. Puede obtener resultados rápidos que ayudan mucho con la frustración/motivación inicial. Toneladas de ayuda, etc. Palabras de advertencia: la programación 3D es intrínsecamente compleja y gastará más energía en la creación de tecnología gráfica que el juego en sí. Considera adoptar Ogre3D si realmente quieres ver el juego terminado: o) (descargo de responsabilidad: sé que también hay otros motores pero Ogre es estable, probado y viene con buena documentación)

3

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

OpenGL ES 2.X es un subconjunto simplificado de OpenGL para sistemas integrados con hardware programable como teléfonos. Por ejemplo, en OpenGL puede haber múltiples formas de realizar tareas, pero en Open GL ES 2.X, solo hay una forma.Debido a que hay menos opciones en OpenGL ES 2.X, hay mucho menos que aprender para dominar OpenGL ES 2.X. La Guía de programación de OpenGL ES 2.0 tiene 480 páginas y la Guía de programación de OpenGL, Séptima edición, tiene 936 páginas.

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

+0

Gracias, en realidad, creo que OpenGL ES es exactamente el subconjunto de OpenGL que estaba buscando. –

+0

muy, muy buen consejo! (y WebGL también se basa en ES 2) –

Cuestiones relacionadas