Programación Específica > Programación de Videojuegos
Programación de Videojuegos 3D
MauricioFranco:
Saludos Gente,
Para programar videojuegos 3D deben aprender a manejar las siguientes herramientas:
Lenguaje de programación: C++
Renderizador: OpenGL
Manejo de la escena: OpenSceneGraph
Detección de colisiones: OPCODE
Simulación física: ODE
Audio 3D: OpenAL
Scripting: LUA
Shaders: Cg
Animación de caracteres: Cal3D
Manejo de terrenos: Demeter o VTP
Inteligencia artificial: OpenAI
No pierdan el tiempo aprendiendo otras cosas.
A propósito, estoy buscando gente de Colombia con experiencia que quiera trabajar en la programación de videojuegos. Por favor, si hay una empresa o un grupo que se le mida avísenme.
Gracias.
JuanK:
Mi nombre e3s juan carlos... evidentemente.
Estoy desarrollando mi tesis de grado en c# y DirectX, y los ultimos seis meses me la he pasado en eso.
Con respecto a lo de no usar otras herramientas....
que andas pensando de la vida... has dado un muy mal consejo.
Librerias tan poderosas como allegro o directx nunca se podran de jar de lado,
y c++ es muy bueno y es el mas usado , pero es el unico, y en lo poco que llevo en esto puedo decir que es mucho mejor programar bajo directx en c# que en c++, no solo por la estructura del lenguaje , sino porque el managed directX ofrece una curva de aprendizaje más alta que c++ y es una libreria mucho mejor estructurada.
Me gustaria que estuvieramos en contacto, en unos 2 años espero poder montar una compañia relacionada con el tema, puede ser una com`pañia de desarrollo, una institución de enseñanza profesional o bien publicare algunos libros.
Juank:hippi:
MauricioFranco:
Pero DirectX y C# te limitan a Microsoft. Con OpenSceneGraph puedo desarrollar para PlayStation2, Dreamcast, Mac OSX, Linux, Unix, IRIX y Windows usando el mismo código. Además DirectX no realiza manejo de la escena con grafos, tampoco trabaja con clusters de PCs, mucho menos te permite conectarte con sistemas de inmersión como CAVE.
Aparte de todo eso una vez trabajé con Visual C++ v6.0 y tuve que rehacer el programa porque las STL de microsoft estaban dañadas. Sin hablar de lo complicado que es el código de Microsoft.
Los hilos también fallan.
Estas herramientas que propongo están basadas sobre estándares, son más profesionales y tienen mejor rendimiento que el DirectX.
JuanK:
Si eso es lo malo de DirectX , que te limita a windows, sin embargo no conozco de muchos que disfruten jugando en sistemas linux.
Por otro lado las herramientas que mencionas son herramientas que no son de uso general y que realmente lo que han hecho es crear su propia seri de librerias a partir de lenguajes como c y c++.
El codigode c++ no es complejo, realmente es codigo muy entendible, el problema es que estas herramientas han sido diseñadas para desarroladores "fuertes" al igual que el lenguaje c, porlo cual su complejidad no radica en la sintaxis ni en la gramatica del codigo, sino en el objeto real de la aplicacion.. para todos es evidente que programar una aplicacion standart en visual basic es 1000 veces màs rapido que c o c++ patra desarrollar ese tipo de aplicaciones, sin embargo su alcance es limitado, y si quieres hacer un juegazo te pasara lo mismo con las otras herramientas.
Por otra parte el DirectX es la libreria de más alto rendimeinto existente en el mercado, de alli se desprende que más del 80% de los juegos para pc se desarrolen bajo DirectX.
Adicionalmente C#, al iogual que el resto de la familia del .netFrameWork han sido planeados para que en mediano plazo sean ejecutados en plataformas unix o mac sin nisiquiera recompilar el codigo, al igual que como sucede con java actualmente.
En todo caso creo que puedes no estar equivocado con tu opinion, cada cual es influenciado de algun modo por su experiencia propia, y en particular siempre he sido un amante de la programacion pura, .. con decirte que no me decidi a utilizar ninguna libreria grafica, hasta que no hice la mia propia en assembler y c....
Juank
MauricioFranco:
Cada quien tiene su filosofía. Pero en este caso estaríamos comparando únicamente GNU C++ vs C#, y OpenGL vs DirectX.
C# sería extremadamente lento para un videojuego si se ejecuta en una máquina virtual, al igual que Java. GNU C++ te permite compilar código nativo en cada plataforma.
Cuando me refiero a lo complicado del código de Microsoft, no me refiero al C++. El estándar C++ es una belleza, sencillo y potente, pero Microsoft se enreda hasta en las cosas más simples. Unix tiene una mejor estructura de programación (despúes de todo tiene 40 años de experiencia).
Las herramientas de las que hablo si son de propósito general, las usan hasta en la NASA. DirectX simplemente es para videojuegos.
DirectX no tiene mejor rendimiento de renderización que OpenGL, y está muy lejos de manejar las escenas de forma eficiente como OpenSceneGraph.
Y por último, el 80% de los videojuegos de PC están hechos con DirectX debido a acuerdos contractales entre Microsoft y el resto del planeta. No porque Windows represente una ventaja.
Sin embargo tienes razón respecto a Linux, aún está madurando, pero no es la única alternativa.
Navegación
[#] Página Siguiente
Ir a la versión completa