Ir al contenido

publicidad
publicidad

Foto

Demasiados caminos para el novato...


Este tema ha sido archivado. Esto significa que no puedes responder en este tema.
4 respuestas en este tema

#1

Escrito 11 agosto 2010 - 14:01

Bueno, vamos allá... No es otro post con la típica pregunta '¿Por donde empiezo en el mundo de los videojuegos?'. La respuesta la tengo más que memorizada, pues al fin y al cabo todo el mundo suele decir lo mismo.

Os leo de vez en cuando, y queria escribir, así que he tenido que hacer un esfuerzo y recordar la contraseña de mi cuenta de Meristation, después de algo de tiempo inactiva. Es una duda bastante particular, vereis... Obviamente, me gusta el dsarrollo de videojuegos, lo encuentro muy desafiante y una forma de expresarte artísticamente mediante la informática... blablabla...

Empezé con algo de LUA hace tiempo con el intérprete de PSP, he estado haciendo algun addon para World of Warcraft (LUA/XML), también se algo de C/C++ porque aprendí hace unos años y este año, que acabo de terminar el primer curso de la ingenieria superior de informática (Aún estoy con el antiguo plan) pues he visto también algo de POO (Y mientras me estaba mirando cosillas de XNA/C#, aunque lo justito para saber hacer cosas básicas en 2D), además de estar enseñándome Pyhton este verano. El caso es que me pregunto... ¿De aquí a donde?

Quitando el aprender más esos lenguajes, no se exactamente donde dirigirme. Mi meta es desarrollar videojuegos a modo de hobby, formar un estudio independiente con gente de la universidad y amigos o si lo veo, llegar a ganarme la vida con ello, pero de momento, con saber trabajar de forma profesional con un equipo pequeño y sin preocupaciones por los beneficiosseria algo estupendo.

Me he mirado SDL, y parece un buen comienzo para empezar. PyGame parece ser lo mismo pero con Python. También he oído hablar de DirectX/OpenGL ¿Qué es exactamente? ¿Librerías gráficas de más bajo nivel? ¿Conviene aprenderlo antes que los motores gráficos como SDL, Allegro o OGRE? OGRE me pareció bastante complicado, ya que nunca he hecho nada en 3D, así que empecé a mirarme Game Engines, como el UDK o el Unity. ¿Convendria que fuera haciendo algo con estos motores? ¿Son como las herramientas de alto nivel del desarrollo de videojuegos, no?

Segun mis ideas, me parece que hay como tres niveles de desarrollo... el mas bajo de todos, con cosas como OpenGL y DirectX, el nivel medio donde estan las librerías tipo SDL y OGRE y el más alto nivel con herramientas de desarrollo como DarkBASIC y Unity. ¿Estoy equivocado o es así? ¿Por donde empiezo? ¿Tendré que acabar dominándolo todo?

Por ahora, puesto que no tengo mucha experiencia en programación, me tira más el aprender algún motor de desarrollo, así puedo hacer cosas chulas mientras aprendo algo de las librerías de nivel medio (SDL/OGRE) y despues ya pasar a hacerlo con OpenGL/DirectX, o comprar la licencia para distribuir si sale algo entre un grupo de gente. En todo esto... ¿XNA donde encaja? Supongo que es como una librería gráfica de nivel medio, ¿No?.

Por ahora me he descargado Unity para probar, y tengo una VM con Fedora donde tengo puestas las librerías de SDL y OGRE, pero antes de empezar con algo quiero amueblarme bien las ideas, los conceptos y mis metas, si no, no sacaré nada de provecho.

EDIT: Viendo varios motores, tambien me doy cuenta de que hay mucha variedad... hay quienes te lo dan casi todo, y otros que te dan muchas menos cosas o facilidades.

  • Koradrell

  • Antediluvian

  • vida restante: 100%
  • Registrado: 05 ene 2004
  • Mensajes: 259
#2

Escrito 11 agosto 2010 - 19:33

Bueno, más o menos se puede clasificar de la siguiente manera:

OpenGL y DirectX son APIs para acceder a las funcionalidades de la grafica, a nivel relativamente bajo. Por ejemplo, estas apis, te permiten entre muchas cosas, cojer un array que contiene puntos en el espacio 3D, y pintarlos por pantalla, definir luces.

Sobre estas APIs, se montan motores graficos como unity y ogre. Estos motores graficos intentan abstraer al programador de la complejidad de uso de las APIs, añadiendo un sinfin de funcionalidades como por ejemplo, cargar un modelo en 3D de un archivo y pintarlo por pantalla, cargar un "heightmap" y representar el terreno a partir de ese "heightmap", implementar algoritmos complejos de sombreado etc... Todo bien puesto para que el programador no tenga que comerse el coco en como hacer eso, y de una manera mas o menos eficiente. En el caso de unity, además, aporta herramientas de desarrollo soportadas por el motor, para hacer mucho mas facil el desarrollo del juego.

Entonces, por lo que respecta a XNA, como bien dices queda por ahi en medio, entre un motor 3D y DirectX, pero mucho más cerca de DirectX. XNA está implementada sobre DirectX, de manera que el programador no tenga que tratar con la api de directX que es nefasta, es como una pequeña capa sobre DirectX en c# que lo hace más facil de usar. Corregidme si me equivoco.

Yo, bajo mi punto de vista, empezaria con OpenGL. Creo que como programador que quieres ser, creo que deberias tener antes de ponerte a programar, unas bases de como es el modelo con el que trabajan las tarjetas graficas, las matemáticas que hay detrás, que son los shaders, etc... A partir de ahi, si lo que te gustaria es hacer juegos, cogeria un motor ya hecho y crearia el juego a partir de el, pero creo que tener una base es fundamental, para que cuando estés programando el juego con un motor ya hecho, sepas lo que estás haciendo, que no aparecen las cosas por arte de magia.

Bueno espero haber-te sido de ayuda.

Koradrell.

PD: Por cierto, en que universidad estás estudiando?

#3

Escrito 11 agosto 2010 - 22:56

Gracias por responder, me has aclarado bastantes cosas :D .

La verdad es que empezar con OpenGL 'a pelo' parece como empezar la informática por las matemáticas. Tendré en cuenta el aprender OpenGL; además he visto por ahí referencias a un tal "Red Book" que es como si fuera el libro esencial de OpenGL.

Aunque claro, como decia al principio del hilo, hay como varios caminos, así que no creo que vaya a centrarme solo en OpenGL... supongo que al final tendré que aprender algún motor, pues hacerte un juego desde OpenGL/DirectX si nada más parece una tarea un poco titánica jejejeje. ¿Hay mucha diferencia entre hacerlo desde algun motor como OGRE a hacerlo desde un Game Engine (Unity, ShiVa)? Y volviendo a OpenGL... ¿Es este un buen punto de entrada para empezar en el 3D?

En cuanto al 2D, supongo que debido a que és más simple, no es tan necesario un Game Engine, y se puede hacer todo desde las librerías gráficas.

PD: Universidad de Valencia
PD2: ¿Sabeis de alguna gran comunidad de desarrolladores de vieojuegos en español? Algo así a lo GameDev o Gamasutra XD. El foro más activo que conozco es este ;)

  • Koradrell

  • Antediluvian

  • vida restante: 100%
  • Registrado: 05 ene 2004
  • Mensajes: 259
#4

Escrito 12 agosto 2010 - 08:23

Yo a lo que me referia, no es a aprender opengl a saco, sino aprender las bases del renderizado en 3D, para que comprendas que es lo que estas haciendo cuando a un motor le dice "Ei, pintame este model!", o bien, "Ei, haz una rotación de este modelo sobre el eje de las Y". Te dije OpenGL porque creo que es más facil de usar que DirectX, o por lo menos que las versiones de estas APIs que usé yo.

Koradrell.

  • Sante05

  • Methuselah

  • vida restante: 100%
  • Registrado: 21 jul 2001
  • Mensajes: 182
#5

Escrito 12 agosto 2010 - 16:21

PD2: ¿Sabeis de alguna gran comunidad de desarrolladores de vieojuegos en español? Algo así a lo GameDev o Gamasutra XD. El foro más activo que conozco es este ;)


http://www.stratos-ad.com


Este tema ha sido archivado. Esto significa que no puedes responder en este tema.
publicidad
publicidad