Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





recompilacion y amasacre de preguntas para aprender xD

Iniciado por sms al 04 logaritmo de 22, 01 de Noviembre de 2007, 08:45:17 PM

« anterior - próximo »

sms al 04 logaritmo de 22

hola, tengo una lista enorme de questions xD

en fin, cuando alguien quiere empezar a programar un motor grafico...

¿por donde se empieza antes de tocar codigo?

que conceptos basicos se tienen que tener claros

el motor por ejemplo mu gustaria que fuera OPEN GL

no se si me entendeis, o sea cosas como el tipo de iluminacion que se usara, tamaño maximo de los mapas, efectos... etc...

toda propuesta is welcome xD

Zaelsius

Un motor gráfico suele nacer como solución a las necesidades de un proyecto de videojuego. O como mucho, atenderá las necesidades de un cierto grupo de desarrolladores.

Si no tienes un juego en mente o no defines claramente quienes son los posibles usuarios finales, difícilmente podrás conocer los requisitos que quieres que cumpla tu motor gráfico.

Es como decir, "quiero construir un motor de coche". ¿Para qué tipo de coche o.O? ¿Con qué consumo medio de carburante? ¿Y qué potencia se espera de él? ¿Diesel o gasolina?


Viendo que no lo tienes claro, yo en tu lugar me pondría a desarrollar algun pequeño juego con un motor de terceros. Así verás qué es lo que se pide de ellos y cómo funcionan. O haz un estudio de motores para un determinado tipo de juegos. O bájate los fuentes del Irrlicht y estúdialos. O cómprate el algun libro de arquitectura de motores 3d ( Amazon ).

Pero así, tan perdido, no te recomiendo que empieces a trabajar en un motor. Si quieres aprender OpenGL no hace falta que hagas un motor. Te bastaría hacerte un pequeño framework para cargar y pintar modelos, sprites etc. Tampoco sé si tienes claro el concepto de motor 3d  :?:

sms al 04 logaritmo de 22

Cita de: "ZaelSiuS"Un motor gráfico suele nacer como solución a las necesidades de un proyecto de videojuego. O como mucho, atenderá las necesidades de un cierto grupo de desarrolladores.

Si no tienes un juego en mente o no defines claramente quienes son los posibles usuarios finales, difícilmente podrás conocer los requisitos que quieres que cumpla tu motor gráfico.

Es como decir, "quiero construir un motor de coche". ¿Para qué tipo de coche o.O? ¿Con qué consumo medio de carburante? ¿Y qué potencia se espera de él? ¿Diesel o gasolina?


Viendo que no lo tienes claro, yo en tu lugar me pondría a desarrollar algun pequeño juego con un motor de terceros. Así verás qué es lo que se pide de ellos y cómo funcionan. O haz un estudio de motores para un determinado tipo de juegos. O bájate los fuentes del Irrlicht y estúdialos. O cómprate el algun libro de arquitectura de motores 3d ( Amazon ).

Pero así, tan perdido, no te recomiendo que empieces a trabajar en un motor. Si quieres aprender OpenGL no hace falta que hagas un motor. Te bastaría hacerte un pequeño framework para cargar y pintar modelos, sprites etc. Tampoco sé si tienes claro el concepto de motor 3d  :?:

explicame un poco mas los conceptos que has propuesto xD o pasame algun link que los explique...

sobre el motor pues... para poner un ejemplo, un juego tipo hl2 (es un ejemplo) xq tambien hay motores desorbitados como los del crysis que son "todo terreno" xD

es que me gustaria aprender, ya me entiendes xD

EDIT: vale, o sea... lo que tu me propones que que me baje algun motor gratuito que haya por ahi y que lo estudie ¿correcto?

vale... puedo usar por ejemplo el del quake que es antiguo... me lo he bajado y la verdad no le veo muchos "archivos" de codigo asi que supongo que sera sencillo :)

ya sabes, soy un newbie pero me hace ilusion aprender :)

tamat

ah bueno, si solo quieres uno tipo HL2... creo que lo hicieron dos tios en un fin de semana... </sarcasmo>

Yo creo que muchos conceptos sobre engines no los puedes entender hasta que te encuentras con el problema que resuelven, si primero ves la solucion sin conocer el problema entonces dificilmente lo entenderas.

Asi que te repito lo que te ha dicho zaelsius pero con otras palabras: primero piensa un juego, luego piensa que componentes necesitaras para programar dicho juego, y luego programa ese engine.

Y por si no pillaste el sarcasmo de mi primera linea, Halflife2 usa un motor que programaron durante 4 años un equipo de unas 20 personas profesionales del gremio, te aseguro que entre el engine del Crysis y el del HL2 no hay una diferencia tan grande como para hacer del segundo algo asequible. Que tal... un pong?
Por un stratos menos tenso

davidgf

Cita de: "tamat"
Yo creo que muchos conceptos sobre engines no los puedes entender hasta que te encuentras con el problema que resuelven, si primero ves la solucion sin conocer el problema entonces dificilmente lo entenderas.

Que gran verdad tamat, es para ponerla en un libro
Tàrraco: una aventura por la Tarragona romana (http://tarraco.davidgf.net)

Zaelsius

Cita de: "sms al 04 logaritmo de 22"

vale... puedo usar por ejemplo el del quake que es antiguo... me lo he bajado y la verdad no le veo muchos "archivos" de codigo asi que supongo que sera sencillo :)


¡Noooo! ¡El código de Quake no! ¡Es horrible! El código de id nunca fue un buen ejemplo de prácticas de programación ;)

El código del primer Unreal es mejor, mucho mejor estructurado y diseñado.

sms al 04 logaritmo de 22

Cita de: "ZaelSiuS"
Cita de: "sms al 04 logaritmo de 22"

vale... puedo usar por ejemplo el del quake que es antiguo... me lo he bajado y la verdad no le veo muchos "archivos" de codigo asi que supongo que sera sencillo :)


¡Noooo! ¡El código de Quake no! ¡Es horrible! El código de id nunca fue un buen ejemplo de prácticas de programación ;)

El código del primer Unreal es mejor, mucho mejor estructurado y diseñado.

¿y se puede descargar?

cuando se empieza un engine grafico se hace primero el menu ¿o se mete por linea de comandos?

[EX3]

Cita de: "sms al 04 logaritmo de 22"cuando se empieza un engine grafico se hace primero el menu ¿o se mete por linea de comandos?
Empezar por el menu es como empezar una casa por el tejado. Al principio te basta con poder inicia el ejecutable mediante parametros o tener un menu guarrindongo en texto sin florituras, lo justo para acceder a lo que tengas implementado.

A mi parecer, lo primero a tener en cuenta en un diseño de motor de un juego, que no un motor grafico, es el nucleo del mismo, osease, el manager de recursos, el motor de niveles y el sistema, aunque basico en un principio, de entidades. El resto es ir ampliando ladrillos en los muros de cada una de estas partes o implementar nuevas sobre estas, la idea es hacerlo de forma que pueda ser escalable y facil de mantener.

Si estamos simplemente hablando de un motor grafico, la gestion de texturas y demas recursos graficos, el como trabajaras la geometria 3D y sus vistas y los modelos de objetos y sus animaciones. El resto lo mismo, ir ampliando el asunto con implementacion de shaders, particionamiento de espacios para los niveles, etc...

Salu2...
José Miguel Sánchez Fernández
.NET Developer | Game Programmer | Unity Developer

Blog | Game Portfolio | LinkedIn | Twitter | Itch.io | Gamejolt

sms al 04 logaritmo de 22

Cita de: "[EX3"]
Cita de: "sms al 04 logaritmo de 22"cuando se empieza un engine grafico se hace primero el menu ¿o se mete por linea de comandos?
Empezar por el menu es como empezar una casa por el tejado. Al principio te basta con poder inicia el ejecutable mediante parametros o tener un menu guarrindongo en texto sin florituras, lo justo para acceder a lo que tengas implementado.

A mi parecer, lo primero a tener en cuenta en un diseño de motor de un juego, que no un motor grafico, es el nucleo del mismo, osease, el manager de recursos, el motor de niveles y el sistema, aunque basico en un principio, de entidades. El resto es ir ampliando ladrillos en los muros de cada una de estas partes o implementar nuevas sobre estas, la idea es hacerlo de forma que pueda ser escalable y facil de mantener.

Si estamos simplemente hablando de un motor grafico, la gestion de texturas y demas recursos graficos, el como trabajaras la geometria 3D y sus vistas y los modelos de objetos y sus animaciones. El resto lo mismo, ir ampliando el asunto con implementacion de shaders, particionamiento de espacios para los niveles, etc...

Salu2...

o sea... por lo que me estais explicando cuando quieres programar o hacer un motor grafico primero tienes que saber exactamente para que tipo de juego usaras el engine, y los "conceptos" de como funcionara este (es obvio que por ejemplo el motor del hl2 funciona de manera completamente distinta del motor de crysis por ejemplo y ademas ambos juegos usan escenarios completamente distintos, sobre todo en tamaño)

y luego este programador deberia empezar a hacer cosas basicas asi con un menu guarrillo o con linea de comandos como el formato de los mapas y la administracion de archivos y algunas cosillas y despues ir añadiendo el resto ¿no?

interesante...

la verdad es que me parece fascinante, si :)

gracias a tod@s por vuestros consejos y por explicarme como va este mundillo ;)

tamat

Por un stratos menos tenso

misscelan

Yo empecé mi motor creando un skybox con una caja en medio y una cámara libre y queriendo hacer un supermario64, cambié la caja por mapas bsp, luego añadí modelos.....
Ahora mi juego no tiene nada que ver con el supermario...

Muchos te dirán que crees mucha documentación antes de empezar, si yo lo hubiera hecho así habría abandonado el proyecto a las pocas semanas (ahora llevo más de 2 años con él), supongo que dependerá de cada uno, de las ganas, de si tienes más integrantes en el equipo...

Bueno que me enrollo mucho, suerte!!.

Tei

si necesitas escribir un programa, no escribes primero un compilador, para luego escribir tu programa para ese compilador.

el ejemplo es exagerado, y no es exactamente el mismo caso, pero en un cierto porcentaje (un 30% quizas) se puede decir lo mismo:

si necesitas hacer un juego, no tiene mucho sentido escribir un motor para ese juego.

la trampa esta en que no hay tanta diferencia entre hacer un juego, y hacer un motor para luego hacer un juego para el. al final es muy posible que hagas las mismas cosas.  aunque he de reconocer que yo nunca he echo un engine de cero (al menos 3D), asi que hay que coger lo que digo con pinzas.

de todos modos tambien es verdad que hacer un engine supone crear la separacion entre dos ambitos, el motor (que hace de framework), y el juego en si, a traves de una api, lenguaje de scripting, cargador de recursos flexible, etc.. como sea.    Esto te lo puedes ahorrar si haces directamente un juego, y no un engine.   A no ser que tu juego sea mediano grande, no creo que valga la pena hacer un engine.

otro problema con los engines, es que hay mucha gente que se pega la vida haciendo engines y nunca hacen un juego con el.  si el objetivo era aprender y tal, esta muy bien, pero no es una actividad que produzca juegos, y por tanto puede ser un tanto irreal y un tanto paja mental.

resumiendo:

juegos sencillos => no necesitan un engine
hacer un engine => puede que nunca hagas un juego con el
juegos medianos => empieza a ser recomendable un engine
hacer un engine != hacer un juego
skills hacer engine != skills hacer juego






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.