C++ 3D

Iniciado por NOIS, 18 Marzo 2015, 22:25 PM

0 Miembros y 1 Visitante están viendo este tema.

NOIS

Buenas, estoy interesado en aprender programación orientada a videojuegos en 3D, con el lenguaje base C++ y algo profesional, nada tipo GMaker ni nada que implique no programar por ti mismo.

He leído por ahí que lo que se suele usar es OpenGL, pero quería preguntar antes por aquí por si tenéis alguna recomendación mejor o si también consideráis que OpenGL es la mejor opción que me facilitaseis algún link donde haya buenos tutoriales o manuales para aprender a usar esa librería.

Gracias de antemano.
NOIS dev7

engel lex

te recomiendo algo... la programación de videojuegos no la hagas desde 0... inventar el agua tibia no te hace más profesional...

a menos que realmente (y por realmente realmente me refiero a realmente) estés muy bien con c++ al punto que te digan "puedes hacer un sistema operativo" y respondas "si, me tomará unas semanas pero no hay problemas" entonces no intentes empezar desde 0...

por qué?

primero: diseñar el motor grafico... es decir diseñar una base que pueda mostrar todos los graficos en pantalla de forma optima, un motor de manejo de objetos 3d desde formatos de archivo y transformaciones de matrices a diestra y siniestra, ya que openGL es un menjador de graficos de pantalla y realmente es 2d(como tu pantalla), tu tienes que hacer una buena parte de las cosas para que se via 3d

segundo: diseñar los handler de captura de teclado y mouse... lo más simple, aún así no dejan de ser un par de miles de lineas de código

tercero: diseñar los handler de elementos graficos... se tienen que mover, interactuar, saber si se tocan, etc...

y de ahí no he toca aún sonido, captura de animaciones, lectura de archivos, inserciones... y apenas con eso estamos terminando el motor del juego... luego viene sobre eso el juego...


por eso los estudios gastan millones de $$ creando motores de juego para hacer sus juegos sobre ellos...

lo más cercano que he visto a un motor de bajo nivel para c++ es Angel Engine y ellos mismos aclaranque aunque es posible crear un juego, no lo recomiendan más que para practicar...

para hacer un buen juego profesional, tienes unity, cryengine, udk, entre otros... son motores de juego bien diseñados, corregidos y completos, que hacen todo lo que indiqué arriba y más... y ya habrás visto tu los juegos creados solo en ellos 3...
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

ivancea96

Cita de: engel lex en 18 Marzo 2015, 22:54 PM
segundo: diseñar los handler de captura de teclado y mouse... lo más simple, aún así no dejan de ser un par de miles de lineas

Que bruto xD


OpenGL está muy bien. A parte, puedes simplificarlo con una librería, como GLFW, que te trae simplificados los procedimientos más tediosos.

Pero igualmente, pese a que OpenGL renderice todo por ti, un juego 3D necesita modelos, que hay que cargar (salvo que quieras mostrar objetos simples 'hardcodeados'); en caso de haber mapas grandes, necesitarás un método para cargar el mapa por partes; y muchos etc más.

Si quieres hacer pruebas, hazlas. Pero si quieres hacer un juego de cara a su comercialización, o un juego de «grandes medidas», te diría que te lo pienses dos veces. Y si finalmente estás seguro de ello... estructuralo bien antes de comenzar :p

NOIS

De momento no pretendo hacer ningún juego a gran escala, no estoy tan loco xD, primero quiero aprender a programar bién con algo que en un futuro me pudiera servir para algo de grandes dimensiones, sobre todo algo que me permita hacer cosas con calidad gráfica, es decir, como comentaba he leído por algunos foros que OpenGL está muy bien pero por los vídeos que he visto de juegos hechos con eso, la calidad de los gráficos es bastante baja.

Pretendo poder hacer algo como mínimo con una calidad de gráficos como la del Wow con posibilidades de poder hacer algo de altísima calidad, como ya digo, pretendo aprender para que me sea útil en el futuro, y tal como avanzan las cosas hoy en día se podría decir que mañana lo mínimo que se va a utilizar van a ser resoluciones de 8K con gráficos más reales que la vida misma.

Por eso quería información sobre alguna librería y motor gráfico potentes, sin importar lo complicado que pueda ser aprender a programar con ello, se me da bastante bien asimilar conceptos y formas de programación.

Gracias por vuestros aportes :D

Saludos!
NOIS dev7

engel lex

la calidad no depende del OpenGL (hasta donde se todos los juegos en consolas deben ir por opengl, creo que la única excepción es windows con directx, fuera de esas 2 librerías básicamente no hay más nada), en tal caso dependiendo de la version de opengl puedes explotar más características... la calidad viene dada por tus modelos, sus texturas, capa de normales, capa especular, capa de bumps, capa de colores, etc... y claro... como los maneje tu motor...

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

NOIS

Entonces, en base a eso que motor y herramientas de trabajo me recomendaríais?

PD: Quiero que sea algo con lo que mis proyectos sean o puedan ser multiplataforma.
NOIS dev7

engel lex

arriba mencioné un motor, está en c++, codigo libre (comentan los creadores que sacrifica eficiencia en pro de legibilidad, ya que es para estudio) y multiplataforma
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

NOIS

Vale, le echaré un ojo ahora y me pondré después en serio con ello.

Muchas gracias por la ayuda, llevaba tiempo buscando por Internet y la verdad es que nadie deja nada claro respecto a la programación 3D por ahí.

Saludos!
NOIS dev7

Miseryk

Opengl es un asco, murió al igual que Linux, DirectX9 lo hizo ******, y ni hablar de DX10 -> + +, aunque uno sea el más capo con C++ mega hacker o lo que quieras, programar juegos es algo totalmente distinto y mucho más complejo.

Edit: te recomiendo que uses el motor gratis de Unreal que es el engine más groso que existe, bueno, sin mencionar crysis (pero no es free).
Can you see it?
The worst is over
The monsters in my head are scared of love
Fallen people listen up! It's never too late to change our luck
So, don't let them steal your light
Don't let them break your stride
There is light on the other side
And you'll see all the raindrops falling behind
Make it out tonight
it's a revolution

CL!!!

NOIS

El caso es que había oído algo del Unreal engine pero pensaba que solo era para modelado y animación, por los vídeos que visto de animaciones con el Unreal engine 4 tiene muy buena pinta, así que gracias, lo miraré.
NOIS dev7