Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Directx Vs Opengl

Iniciado por SkyNetBCN, 13 de Abril de 2005, 09:46:58 AM

« anterior - próximo »

SkyNetBCN

 Buenas Gente!!! Tengo una duda de novatillo... alquien me podría explicar qué diferencias "reales" existen entre un juego, por decir algo, programado con DirectX o con OpenGL? y a la hora de programar... en qué cambia?
Muchas Gracias! Un saludo...  (uoh)  

zupervaca

 directx es mas que un api grafico, con directx puedes hacer todo un juego, opengl es solo un api grafico, realmente no se pueden comparar ya que son cosas diferentes, en lo unico que tienen en comun, que es su api grafico, basicamente son iguales y tienen funciones equivalentes, si quieres multiplataforma usa opengl, si quieres windows y xbox usa directx

saludos

vincent

 Pues la verdad es que cada vez cambia menos. En lo que a gráficos se refiere, DirectX y OpenGL són muy parecidas. Lo bueno de DirectX es que es una libreria de más alto nivel también, y tiene muchas funciones que en OpenGL te tendrias que currar tu a mano.
Desarrollo en .Net y metodologías http://devnettips.blogspot.com

zupervaca

 si estas empezando te recomiendo directx por que efectivamente te lo dan todo muy mascao y practicamente sin conocimientos matematicos puedes crear un juego o motor 3d, ademas las futuras plataformas dicen que usaran directx, me refiero a playstation 3 y xbox 2, lo cual nos indica que directx puede ser el futuro que tengan en mente las grandes compañias como sony y microsoft, sobre nintendo no se mucho del tema, pero se que sony tendra consola nueva y que ademas incluira buenas herramientas para poder crear juegos, cosa que tiene muy buena pinta

saludos

pd: el problema que le veo a opengl es que necesitaras otras librerias como openal etc para poder crear un juego, ademas tendras que meter el glut si quieres aprovechar multiplataforma, cuando digo multiplataforma me refiero a windows, linux y mac por que realmente no hay mas  :D y todos sabemos que donde mas se puede uno divertir es haciendo juegos para consolas

Minos

 Respecto a la playstation3 es falso lo de directx.

PlayStation 3 usara OpenGL y CG para shaders.

http://news.com.com/PlayStation+3+to+be+ea..._3-5606515.html

Ya veis que seria un poco tirarse piedras contra su tejado de parte de sony si apoyase DirectX, aparte de que Microsoft haria algo... xDD

Ademas desde la X-Box, Nvidia y Microsoft andan un poco molestas entre ellas. Asi que Nvidia se va a hacer el chip de la PS3 y ATI el de la X-Box.

Nvidia siempre ha apoyado a OpenGL.

Minos

 
Cita de: "zupervaca"pd: el problema que le veo a opengl es que necesitaras otras librerias como openal etc para poder crear un juego, ademas tendras que meter el glut si quieres aprovechar multiplataforma, cuando digo multiplataforma me refiero a windows, linux y mac por que realmente no hay mas  :D y todos sabemos que donde mas se puede uno divertir es haciendo juegos para consolas
Mi concepto de multiplataforma tb seria ps2 y la futura ps3. Es decir, estar bien estructurado para TODAS las plataformas.

OpenGL con OpenAL y OpenDE/Newton es genial para hacer motores. Aprenderas mucho usando estas. Mas que si te dedicas solo a usar la clase Mesh de DirectX (es un ejemplo).

Si lo que quieres es hacer un juego no uses DirectX ni OpenGL a pelo. Usa un engine ya echo o parte ya hechas. Por ejemplo Ogre3D para el render o el motor Haddd.

Por cierto: Sony crea entorno de programacion asequible para la PS2, y este usa Linux (ah, y tb tiene un wrapper de OpenGL)

zupervaca

 por que antes de postear no leemos el primer post y vemos que dice DUDA DE NOVATILLO, no puedes decir a alguien que esta empezando a que se meta en 3 o 4 librerias para hacer un juego, ademas lo que pide es que diferencias hay entre programar con uno y con otro y creo que yo se lo he expuesto bien, si realmente quieres saber que usaran los motores del futuro por debajo mira el motor del unreal 3 y sus caracteristicas ya que el futuro nos indica que solo unos pocos crearan los motores 3d y estos los haran multiplataforma con herramientas, osea, nos tocara a los programadores hacer 3 chorradas de turno usando motores 3d ya existentes

saludos

pd: espero que esas herramientas de play3 no usen kde o gnome ya que dan pena en comparacion con el entorno grafico de windows y yo he probado estos entornos en carne propia :D  

CoLSoN2

Cita de: "zupervaca"por que antes de postear no leemos el primer post y vemos que dice DUDA DE NOVATILLO, no puedes decir a alguien que esta empezando a que se meta en 3 o 4 librerias para hacer un juego
Pues qué quieres que te diga, yo creo que es mucho más fácil aprender a usar un motor de los no muy complicados, como puede ser Irrlicht, que hacer algo decente en DirectX. Sí, dibujar un triángulo es muy fácil, pero hacer un juego en DirectX tiene mucho más trabajo que usar un motor ya hecho, obviamente.
Manuel F. Lara
Descargar juegos indie  - blog sobre juegos indie y casual
El Desarrollo Personal.com  - blog sobre productividad, motivación y espíritu emprendedor

Minos

Cita de: "zupervaca"por que antes de postear no leemos el primer post y vemos que dice DUDA DE NOVATILLO, no puedes decir a alguien que esta empezando a que se meta en 3 o 4 librerias para hacer un juego,
Como dice Colson2 no puedes hacer un juego usando solo DirectX o OpenGl tendrias que ir a por un engine de mas alto nivel.

TU tampoco puedes ir diciendo que la playstation3 usa opengl y que sony apuesta por el cuando no te has informado ni contrastado la informacion.

Citar
pd: espero que esas herramientas de play3 no usen kde o gnome ya que dan pena en comparacion con el entorno grafico de windows y yo he probado estos entornos en carne propia biggrin.gif

No usan entorno grafico si no quieres (es mas, recomiendan no usarlo, leete el enlace). Para programar como sabras no hace falta raton sino escribir codigo fuente.
Y respecto a el nivel de los entornos graficos... es otro tema, pero informate antes y aprende a usar compilar el codigo para ti si algo no te gusta.

zupervaca

 na seguis sin leer es que no os enterais  :P

CitarBuenas Gente!!! Tengo una duda de novatillo... alquien me podría explicar qué diferencias "reales" existen entre un juego, por decir algo, programado con DirectX o con OpenGL? y a la hora de programar... en qué cambia?
Muchas Gracias! Un saludo...

¿quien ha hablado de usar motores de altos niveles? es que os flipais solos  <_<  

Buffon

 Bueno veo que la gente se desfasa un poco jejeje buen royo ante todo gente  :(

Puesto que habeis comentado mucha gente es mi turno ^^

-----------
LIBRERIA GRAFICA
-----------

Pues ante todo la que más te guste, eso si, recomiendo efusivamente antes de usar un motor gráfico hecho aprender a hacer algo por tu cuenta, por ejemplo aprender a cargar un fichero en formato md5 o 3ds, quizas usando una libreria externa como podria ser lib3ds pero que sepas como se organiza y como acceder a sus datos, las ventajas que tienen y todo eso.

Otra cosa a la hora de programar gráficos, por experiencia personal es primero hacerlo en modo texto.

Me explico en una web pedían hacer un buscaminas, pero no lo pedian en ventanita sino en modo texto, esto tiene sus ventajas y sus inconvenientes, primeramente te olvidas de todo el tema gráfico, que es muy costoso y te centras en lo principal del juego que es la lógica del mismo.

por ejemplo programando en C++ te creas una clase llamada Buscaminas que implemente toda la logica y que tenga varias funciones.

(  int *getTabla() )
(  bool setClick(int x, int y) )
(  void pintar() )
...

y desde tu main principal, simplemente muestres por linea de comandos el tablero en modo texto:



una vez tienes tu clase buscaminas funcionando lo único que tendrias que hacer es ponerte con opengl y usando esa misma clase empezar todo el tema de interaccion con el usuario.

si en vez de opengl, crees que es muy comodo hacerlo con C# por el tema de utilizar solo controles del mismo y utilizar los eventos para mostrar el resultado por pantalla, pues usas C#
-----------------------------------------

Ah y al principio no vas a hacer un superjuego, simplemente iras aprendiendo las bases, así que no utilices un motor grafico superdesarrollado, por que ni lo vas a entender ni lo vas a aprovechar.

yo creo recomendable seguir estos pasos.

1- tres en raya
2- buscaminas
3- tetris
4- arkanoid
5- arkanoid 3D o variante
6- habitacion 3D con control sobre el muñeco por tu parte :)

siempre que se te quede alguna duda en uno de los puntos, hacer un juego parecido :) hasta que se te resuelva.
------------------------------------

HABLEMOS DE LOS IDES

Por que usar el NotePad teniendo el Visual Studio ?

pues la verdad la primera vez que programes, si puedes usar un editor del estilo notepad o emacs (que esta disponible para windows la version xemacs) y programar a pelo las primeras funciones, es lo más recomendable, por que? el editor de visual studio te quita mucho trabajo de encima, tienes una clase y no recuerdas un atributo y pones myinstancia. <--- y aki te desglosa una lista con todas las funciones, atributos, privados/publicos/protected, con todas las propiedades (C#) uf con todo, una descripcion de la misma si la contiene en codgo xml de todo de todo. Esto para el programador novato es la gloria, pero es apenas más inútil al principio de la programacion que otra cosa. Yo recomiendo los primeros programas hacerlos a pelo, saber como se hace un makefile!!! por dios la gente no tiene ni idea >_<

te curras la clase buscaminas a pelo, la representas en modo consola.
la debugas tu mismo con casos criticos.
empiezas a montarte una interfaz gráfica que llame a las funciones del buscaminas getTable() setClick(x,y) y segun el resultado dibuje por pantalla.

hacerte un makefile que te lo compile todo, recuerden que Visual Studio tiene una utilidad muy buena llamada nmake :) entre otras cosas si tienes el QT DESIGNER es la mar de util para hacerte el makefile de tu proyecto.

Eso si, una vez domines mas o menos el tema, te olvidas del Emacs, te olvidas del Notepad y te lias con el VisualStudio, cualquier problema sabras encontrarlo en el codigo pero tendras todas las comodidades que este IDE te da :)
-----------------------

OPENGL vs DIRECTX

yo empece con OPENGL por facilidad de aprendizaje, y la verdad pasar a Direct3D ha sido más facil teniendo claros los conocimientos aprendidos con OPENGL, aunque aún asi las funciones llenitas de null parameters asustan xDDDD

Buffon

 Ah por cierto,  he estado mirando en el ftp de telefonica y tenia por ahí perdido esto =)

http://www.telefonica.net/web/boza/opengl95.exe <---- librerias de opengl para quien por alguna extraña razon no las tenga
http://www.telefonica.net/web/boza/glutdlls37beta.zip <---- librerias GLUT para mejorar el crear una ventana o manejar otras cosas como eventos de interrupciones del hardware :)

Minos

 Sobre el tema que ha salido de los IDEs.
Tambien puedes utilizar Code::Blocks que es un IDE muy bien desarrollado y soporta varios compiladores, entre ellos el gratuito de Microsoft (VT2003) o MingW (GCC).
Ademas de que es totalmente gratuito y muy facil de usar.

Minos

 ahh, se me olvidaba, y para .NET SharpDevelop






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.