Empezando a desarrollar motor gráfico para MMORPG

Desde
27 Sep 2024
Mensajes
32
Reacciones
27
Honor
37
Creador del tema
Buenas, estoy diseñando un motor gráfico de cero en c++, en este vídeo podéis ver el avance de lo que llevo programado, creación de ventana de juego, admisión de ordenes por teclado y ratón, cámara y movimiento libre de la misma, iluminación y sombras y en concreto en esta imagen el terreno que es una maya diferente a los objetos que llevará el juego (arboles, casas,personajes,etc..). La parte de introducción de elementos 3d también está programada, iré mostrando avances conforme vaya avanzando.

No voy a crear tutoriales de como se hace porque es un trabajo enorme realizarlo y explicarlo me llevaría tres veces más trabajo y no tengo tanto tiempo para hacerlo, aquí solo iré exponiendo los avances.Un saludo.

 
Creador del tema
Creación motor gráfico para MMORPG. Parte 2.

Siguiendo con el desarrollo del motor gráfico en esta ocasión agregamos 3 texturas al suelo (más adelante el terreno lo diseñaremos mejor y de otra manera y con otras capas), creamos hierbas de 3 tipos con movimiento en el 40% de ellas con texturas 2d y árboles de 1 tipo también con movimiento. Por ahora no se crearon objetos 3d, todo está hecho con código y unas pequeñas imágenes para las texturas. Lo importante de esto es precisamente el código no el diseño que ahora es bastante simple y cutre pero suficiente para pruebas y para empezar a meter cosas 3D.

 
Se ve muuuy bien, siempre he querido crear mi propio motor... por lo menos algo báscio para aprender pero siento que requiere muchisimo tiempo de investigación y pruebas. Te felicito, tiene muy buena pinta!
 
Creador del tema
Gracias, sí has dado en el clavo, mucho tiempo y pruebas, aunque esto que hice si no fuera por la IA sería imposible, o sea, no imposible pero sí más tedioso, básicamente porque con la IA vas buscando código necesario y como montarlo y te va explicando como hacerlo, no es perfecto pero yo lo que hice fue así, con código de la IA, si no existiera la IA tendrías que buscar en foros o documentación en inglés, muuuuucho más complejo, de esta manera la IA lo busca por tí y ya te da las respuestas.

De todas formas para hacer funcionar esto tienes que saber un poco de programación e informática sino olvídate porque aunque mayoritariamente vas copiando y pegando lo que te dice hay cosas que no las hace bien y más o menos tienes que saber que cambiar o decirle que cambie o explicarle tú como quieres que lo cambie.

Yo uso chatgpt pero hay otros motores de IA específicos para programación que igual son mejores pero ni idea, por ahora voy tirando con chatgpt. Si quieres hacerte una idea puedes preguntarle directamente como hice yo "como puedo programar un motor gráfico desde cero en c++" y a partir de ahí ya vas viendo que te comenta y te haces una idea. Que programas necesitas , como se compila, etc...

Por otro lado está guay lo de programarlo porque ves como funciona realmente un motor gráfico, cuando creas por ejemplo el terreno o el viento o cualquier cosa siempre te dice "Unity/UE5 y demás motores" es como lo hacen, y flipas en plan ostia que movida¡¡.

Un saludo¡
 
Gracias, sí has dado en el clavo, mucho tiempo y pruebas, aunque esto que hice si no fuera por la IA sería imposible, o sea, no imposible pero sí más tedioso, básicamente porque con la IA vas buscando código necesario y como montarlo y te va explicando como hacerlo, no es perfecto pero yo lo que hice fue así, con código de la IA, si no existiera la IA tendrías que buscar en foros o documentación en inglés, muuuuucho más complejo, de esta manera la IA lo busca por tí y ya te da las respuestas.

De todas formas para hacer funcionar esto tienes que saber un poco de programación e informática sino olvídate porque aunque mayoritariamente vas copiando y pegando lo que te dice hay cosas que no las hace bien y más o menos tienes que saber que cambiar o decirle que cambie o explicarle tú como quieres que lo cambie.

Yo uso chatgpt pero hay otros motores de IA específicos para programación que igual son mejores pero ni idea, por ahora voy tirando con chatgpt. Si quieres hacerte una idea puedes preguntarle directamente como hice yo "como puedo programar un motor gráfico desde cero en c++" y a partir de ahí ya vas viendo que te comenta y te haces una idea. Que programas necesitas , como se compila, etc...

Por otro lado está guay lo de programarlo porque ves como funciona realmente un motor gráfico, cuando creas por ejemplo el terreno o el viento o cualquier cosa siempre te dice "Unity/UE5 y demás motores" es como lo hacen, y flipas en plan ostia que movida¡¡.

Un saludo¡
Totalmente de acuerdo. Yo estoy desarrollando un videojuego tipo Rust en Unity y GPT me ahorra muchisimo tiempo, porque le pido mucha ayuda para optimizar mis scripts, también le pido mucho explicaciones sobre cualquier cosa que no entiendo. Sin duda la IA vino a facilitarnos la forma de investigar y aprender. Sigue así amigo, espero seguir viendo más avances de tu motor a futuro 🤩
 
Tremendo avance! Para hacerlo desde cero en C++ ya tener input, cámara libre, iluminación/sombras y ahora terrain con capas + hierba/árboles con “wind” es bastante sólido. Se nota que estás construyendo una base buena para ir escalando.

Una pregunta, en qué API estás trabajando OpenGL/Vulkan/DirectX y cómo estás manejando el terreno, heightmap, tiles/chunks con LOD, o algo tipo clipmap? Me interesa sobre todo cómo piensas optimizar el render cuando empieces a meter muchos props y personajes.
 
Creador del tema
Estoy usando OpenGL, en el siguiente vídeo voy a explicar justo como se maneja los chunks con distancia que es como lo hice ahora, el resumen es que si la cámara está a X distancia del objeto se dibuje o no, pero aún falta el siguiente paso que es que aparte de eso solo pinte lo que el ángulo de la cámara ve, que es más para optimizar recursos y los chucks más para mundo enorme que no se dibuje todo de golpe.
 
Creador del tema
En este vídeo os enseño la siguiente parte de la evolución del motor, que se dibujen los gráficos si la cámara está a cierta distancia. Esto se hace para cuando tengamos un mundo abierto extenso no se tenga que cargar todo el mapa con objetos y texturas del tirón y que carguen solo a cierta distancia, tanto terreno como objetos.

 
Creador del tema
En esta última actualización podemos rotar los objetos en sus 3 ejes, subirlos o bajarlos del suelo, editarlos o borrarlos una vez que los pusimos si es necesario y vemos en pantalla donde los colocamos.

 
Creador del tema
En este vídeo os comento unas mejoras de programación que fueron:
-Movimiento de objetos mejorada
-Selección múltiple de objetos
-Copiar/Pegar/Deshacer/Rehacer
-Cargar ficheros FBX básicos
-Mejoras y accesos por teclado

 
Back
Top