Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Q es lo q tiene DirectX, q no tenga Linux?

Iniciado por lluc, 28 de Marzo de 2007, 11:54:49 PM

« anterior - próximo »

lluc

Holas! Solo es una pregunta inocente, sin mal intención de críticas a ningún SO, de un inexperto como yo… Quizás la pregunta del titulo es un poco rara pero me gustaría comprender un poco más, sobre desarrollo de videojuegos y Linux.

¿Que pasa con los juegos y Linux? Por que el tema de desarrollo de videojuegos con y para Linux esta tan complicado? Al menos esta es la impresión de me da (perdón si me equivoco)!!

Pasa un poco lo mismo con Mac, Microsoft tiene le monopolio de los juegos en PC. ¿No hay ninguna empresa que crea q todos los usuarios de Linux merezcan unos buenos juegos, y q vean en ellos también un mercado potencial?

Se que se pueden generar contenidos en Linux. Yo estoy utilizando el Maya en Ubuntu, y en principio no hay razón para que, estos contenidos generados en Linux, puedan ser utilizados en el propio Linux para hacer juegos.
Hay mucho soft interesante en Linux, creo q suficiente para crear juegos buenos, en un entorno totalmente “libre”.

¿Todo el problema esta en que no hay DirecX para Linux? ¿No hay una alternativa “Directx open source” para linux?

Perdón si no e enfocado bien la pregunta, pero es q tengo muchas dudas sobre el tema!

Salu2s!

Vicente

El problema no es DX principalmente (que tienes OGL), es la base de ordenadores con Linux o MacOS frente a los que tienes con Windows. Y ya que desarrollas para Windows, pues usas DX.

Un saludo!

Vicente

Neodivert

Creo que preguntas por OpenGl, otra libreria 3D como DirextX pero multiplataforma.


Claro que hay recursos para crear para Linux, pero seguro que más bien es por interes, supongo que es más fácil programar solo para el SO más utilizado (No he dicho ni mejor ni peor, no quiero peleas xD), que "perder el tiempo" haciendo ports a otros SO´s.


Y si alguien más te contesta te obligo a que le hagas caso a él y me ignores, yo solo soy un programador principiante de 17 años que va por los arrays. xD  :lol:  :wink:

Junse

En realidad para ser justos, no se puede decir que opengl es igual a directx ya que directx es tambien sonido, red y dispositivos de entrada.
Pero esto mayoritariamente con vicente y tambien agregar lo que pasa en algunos casos como el de ATI que hasta hace poco no daba unos buenos drivers para ese sistema operativo y eso complicaba mucho si los juegos necesitaban aceleracion grafica.

senior wapo

Producir software para una plataforma implica darle soporte técnico a los usuarios y tener los programadores documentación y herramientas adecuadas para su tareas concretas.

Poca base de usuarios, acostumbrados a software gratis, una plataforma heterogénea, sin mecanismo de distribución de aplicaciones estandarizado y con drivers de video 3D subpares. No es muy alentador para invertir.
Aunque alguna estadística que he visto en indiegamer hace suponer que merece la pena darle soporte en juegos casuales.

Todo eso, y más cosas, está siendo solucionado, a buen ritmo,  mientras lees esto. Pero hasta ahora no era así.

En cuanto a programar juegos, es la plataforma donde más rápido he conseguido resultados en C++ con menos bugs, seguida de Mac, y muy por detrás, windows. Otra cosa es el rendimiento. Mi experiencia al respecto es haberme currado código que usa OpenGL en los tres sistemas, Direct3D 6, Direct3D 7 y  Direct3D 9. Se notan las diferencias bien rápido.

Faltarle, le faltan cosas, claro, como un acceso fácil y estandard a codecs de video para hacer streaming a texturas. Pero vaya, en general tienes la mayoría de lo que puedas necesitar.

Para juegos 2D sin aceleración no tienes ningún problema.

PD: Como quiero más usuarios, abajo los frikis-linuxeros-espanta-gente-normal, que aconsejan con comandos de consola habiendo alternativas GUI. He tenido que usar más consola para hacer funcionar Windows Vista (hola netsh.exe y mklink.exe) que Ubuntu Feisty.

fjfnaranjo

La problemática de los videojuegos para GNU/Linux es bastante variada.

En primer lugar están los APIs. Como tu bien apuntabas, DirectX es el API principal utilizado en Windows para todo lo relacionado con los videojuegos y la multimedia. DirectX implica todo ello, osea, te permite controlar los gráficos, los sonidos, el vídeo, la música, la red... Su integración es excelente, hasta el punto de que esta solo integrado con Windows :( .

Como alternativa principal a DirectX, y es imprescindible tomar una alternativa para programar para GNU/Linux, tenemos OpenGL, pero como correctamente indicaba un compañero más arriba, esto solo nos solucionaría el apartado gráfico, y nos veríamos obligados a buscar otras librerías para el sonido (OpenAl, por ejemplo), la red, los vídeos ... casi todo está correctamente resuelto, o como dicen por aquí, están en ello.

¿Ventajas e inconvenientes? Haz una búsqueda en el foro en modo FLAME (temas con mas de 50 respuestas) y encontrarás bastante. Yo siempre pongo como baza principal para OpenGL que lo que programas en DirectX lo estas programando para Microsoft, y lo que programas en OpenGL, lo estás programando para todos (Microsoft incluido). No obstante, hay muchas personas que sostienen que la potencia de OpenGL es inferior, y lejos de entrar en esa discusión, pasaré al siguiente punto.

Como la mayoría de la gente ("se supone") usa Windows, el principal esfuerzo de los desarrolladores de drivers para tarjetas gráficas (que vienen a ser los propios fabricantes) esta en el sistema operativo de Microsoft, y más concretamente, en DirectX, lo que hace que algunas features de las tarjetas o incluso características esenciales considerando los tiempos en los que estamos, sean difíciles o inaccesibles para usuarios de otros sistemas operativos.

Intentando arreglar esto, hay mucha gente que se dedica a crear drivers mejores, pero los datos que los fabricantes de hard gráfico dan son severamente escasos.

En general, hay una gran comunidad de usuarios con una mentalidad muy clara con respecto a los sistemas operativos (osea, sin tener ni zorra idea de que existe el sistema operativo GNU) que propicia todo esto, pero hay soluciones para todo, si eres buen programador y buen buscador de info en google (y sabes inglés).

Y normalmente, los resultados en Linux son cojonudos, pero requiere de varias cosas, de que tu programes bien, y de que el usuario sepa configurar bien su gráfica, que disponga de unos buenos drivers, bla bla bla

Al final lo que importa es lo que importa, si trabajas en la industria, programas para el user más común, y esto significa programar para Windows. Y ya que programas para Windows, pues usas lo integrado y lo que más accesible está, DirectX, y claro, salvo algunas (importantes) excepciones (UT, Doom3-Quake4), pasas de los usuarios de GNU...

¿Un error? Pues no se macho, la pasta es la pasta, pero yo lo tengo claro. He decidido que me adaptaré a cada situación como pueda, pero si Id Software puede hacerlo, ¿Por qué nosotros no?

Como apunte cultural: DirectX 10 solo estará disponible para Windows Vista, los usuarios de Windows XP tendrán que conformarse con una versión reducida (DirectX 9.0 L). OpenGL, OpenAL, SDL, etc... seguirán creciendo libres para todos y sin que te cueste nada, gracias al esfuerzo de muchos.

Larga vida al Software Libre.
fjfnaranjo.com - Creating entertainment - Creando entretenimiento
fjfnaranjo [4t] gm4il [d0t] c0m (mail y msn)

Vicente

Cita de: "fjfnaranjo"Como apunte cultural: DirectX 10 solo estará disponible para Windows Vista, los usuarios de Windows XP tendrán que conformarse con una versión reducida (DirectX 9.0 L). OpenGL, OpenAL, SDL, etc... seguirán creciendo libres para todos y sin que te cueste nada, gracias al esfuerzo de muchos.

DirectX10 solo estará para Windows Vista y DirectX 9.0L es como se llama a la capa de DirectX9 en Windows Vista, no es una versión reducida de DX10 para XP. De DX10 en XP olvidaos ;)

Aún así queda bastante para que DX10 se imponga en el mercado... Un saludo!

Vicente

lluc

Muchas gracias compañeros!!
Habéis echado mucha luz, para mi, sobre este tema!

Creo q cada vez mas hay mas gente que funciona con Linux, y esto será un factor muy importante para q las empresas trabajen mas en esta plataforma.

También creo q una nueva forma de sacar rendimiento económico a los videojuegos, q se esta poniendo de moda; basada en un juego gratuito on-line, pero q pagas por tener complementos y dinero virtual... como WarRock, Soccerfury... será un modelo q tendrá muy buena acogida en Linux.
Quizás me equivoque, pero si me comentáis q se esta trabajando en ello, es posible q veamos juegos profesionales. Con una potente industria detrás, para Linux !! esperemos q sea así!!

Viva el software libre !!!

Fran

Para mi (además de lo minoritario que es) otro punto importante es q las empresas de Videojuegos son, ante todo, empresas. Y no creo q haya nadie que se vaya a poner a hacer un port de un juego por 25 o 30 kilos para que los usuarios de Linux, acostumbrados a software gratis, no paguen nada. Es simplemente rentabilidad. Las iniciativas para Linux han de venir desde dentro de Linux. No creo que ninguna empresa mediana-pequeña vaya a invertir nada en algo que no tiene tasa de retorno

lord_taran

Como usuario habitual de Linux, es decir, que es mi SO predeterminado, daré mi punto de vista:
 - Es lamentable que no exista un sistema de paquetería estandarizado en todas las distribuciones. La libertad es lo que tiene, que provoca muchas soluciones paralelas que pueden dar más riqueza pero marean al usuario final, aparte de que quizás por trabajar en varios proyectos en vez de en uno ninguno termine de estar totalmente maduro. Hoy en día, si yo lanzara un juego para Linux, me preocuparía de hacer que funcionara en Ubuntu y como alternativa usaría Autopackage, el mismo sistema que Develish para Nuts & Scraps.
 - Creo que la integración de DirectX es muy muy importante en esto, precisamente ayer lo estaba pensando, que ya es casualidad. Aunque me llama la atención que Microsoft haya decidido que en Vista se use OpenAl... (que me corrija el fanboy de Vicente si me equivoco [va de coña, por si acaso]). No sólo eso, sino que bajarte el Sdk de DirectX e integrarlo en Visual Studio para hacer un nuevo proyecto al menos hace años era muy fácil, seguro que ahora todavía más. Y eso sin hablar de XNA... En Linux hace falta un equivalente a DirectX y módulos para integrarlo fácilmente con los principales IDE's, Anjuta, KDevelop, Eclipse, Code Blocks, etc, etc.
 - Si programas juegos en 2D no hay problema, tienes SDL, Allegro, Python + Pygame...
 - Lo de las tarjetas gráficas es un horror, tanto por los drivers existentes como por la dificultad de instalarlos. Por suerte pronto vendrán integrados con Ubuntu, pese a que haya gente a la que no le guste. Que digo yo que con usar otra distribución tienen suficiente, y pueden dejarnos en paz a los demás :P

Todo lo anterior vale tanto para el programador aficionado que hace juegos para aprender o por diversión como para la empresa. Por otro lado lo de que el usuario de Linux está acostumbrado a tenerlo todo gratis es muy relativo, no creo que el porcentaje de usuarios de Linux que pasa totalmente de comprar juegos sea mucho mayor que el de usuarios de Windows, excepto que los usuarios con menos conocimientos que ni conocen la mula ni como crackear un juego ni nada están en Win, claro xD Pero yo he jugado al Neverwinter Nights y a sus expansiones en Linux, y los foros oficiales del juego tenían una gran comunidad de jugadores linuxeros. Por supuesto que hay mucho talibán, que algunos no quieren los juegos ya gratis sino libres, pero creedme que muchos jugadores desearíamos tener juegos de calidad en Linux. Incluso me pensaría el volver al WoW si sacaran un cliente :P

Sinceramente creo que, si existiera una manera de desarrollar juegos igual de fácil y cómoda para Windows y Linux, todo el mundo lo haría, al menos todo el que sepa lo que es Linux (teorías conspiratorias de que M$ pudiera pagar por exclusividades aparte, que no creo que sean ciertas), pues nadie va a preferir dirigirse a un mercado de 10.000 pudiendo dirigirse a uno de 10.100 xD Lo que no entiendo es leer en foros, cuando alguien pregunta a un grupo aficionado si sacarán la versión Linux, sobre todo cuando usan tecnologías que hacen el port una tarea fácil, le respondan en plan despectivo que se dejen de tonterías y usen Windows. Generalmente no son los desarrolladores (creo que eso no lo he visto nunca), sino otros jugadores...
n saludo!
Lord Taran
Las Noyas de Taran

lluc

Si q es verdad que el mercado de gamers en Windows es mucho mayor q en Linux, pero Linux es un mercado inexplorado, y el primero q llegué triunfara!
Pero antes quizás se deban de poner facilidades des de Linux para que la industria entre sin miedo.
El problema es q no habido una empresa q apueste fuerte por Linux.

CoLSoN2

Cita de: "lluc"Si q es verdad que el mercado de gamers en Windows es mucho mayor q en Linux, pero Linux es un mercado inexplorado, y el primero q llegué triunfara!
O se pegará un porrazo. De ahí el miedo a no entrar.
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

tamat

Decir que directx es como openGL pero con cosas de audio, input y red me parece errado.

DirectX tiene clases, para todo, openGL no tiene ni una misera clase. Eso significa que si usas openGL tendras que programarte tu sistema de vectores, matrices, de meshes, de materiales, de boundings, frustum, camara, etc, etc, etc.

Y eso solo si nos referimos al apartado grafico. Y esto lo digo yo que solo programo en openGL pero las cosas como son, openGL es una libreria de bajo nivel para pintar graficos.
Por un stratos menos tenso

lluc

CoLSoN2: Quizas me e pasado con la afirmación, pero la primera empresa q triunfe en Linux triunfara mucho!!







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.