Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Primeros Pasos Novato

Iniciado por javirueda, 24 de Agosto de 2005, 10:24:49 PM

« anterior - próximo »

javirueda

Hola buenas, es la primera vez que entro en este tema y me gustaria que me dijese alguien cuales son los primeros pasos para aprender a programar videojuegos. Yo se programar mas o menos en c, c++, visual basic... pero en este tema estoy pez del todo.
Un saludo. Javi

_Grey

 Programar mas o menos no te ayudara, profundiza en C/C++, y date una vuelta por Amazon -> Computers & Internet > Programming > Game Programming. Me imagino que esperaras links a tutoriales, estan bien si, pero con el tiempo tambien veras los libros como muy buena ayuda, en especial para profundizar lo primero que e comentado, el lenguaje de programacion, C/C++ o el que prefieras.

Tambien podrias valorar el j2me, en mobiles puedes hacer juegos sencillos en 2D con java, quiza sea uno de los sitios mas accesibles, por lo menos mas que embarcarse en el tipico "megaproyecto de PC".

Por otro lado podras estar al dia visitando sitios como Gamedev.net, con sites hosteados con muchos tuitoriales , como NEHE famosa por sus tutoriales de OpenGL, desde lo mas basico, hasta un nivel mas que respetable.

Seguro que apareceran mas aportaciones, pero deberas saber moverte por ti mismo, este tipo de preguntas son un poco "topico", y antes de hacer una pregunta de C/C++ mira bien tus libros o google, las pregutas muy sencillas no estan bien vistas, dan la impresion de estar ayudando a un estudiante que no se mueve.

En fin, suerte, y codifica mucho que al final pesa mas que otra cosa.

Saludos.

Ray

 Si ya sabes C++ ya puedes empezar a programar un juego al tiempo que aprendes, yo empezaría por hacer uno muy simple, por ejemplo el pong (el clásico de tenis), crear una replica exacta te servirá como ejercicio, quizás te lleve uno, dos, o más meses, pero si consigues acabarlo exactamente igual tendrás ya una buena base sobre la que empezar a crear otros más complejos además de la satisfacción de haber programado tu primer videojuego.

Descarga el emulador de máquinas recreativas MAME y haz replicas exactas fijándote en videojuegos clásicos, (aqui lo encontrarás junto con miles de juegos www.planetemu.net),  de manera que el hacerlos te obligue a buscarte la vida para conseguirlo, en lugar de hacer solo las cosas que se te den bién o te gusten más (consejo de expertos).

Con la ayuda de manuales y libros, Google, y los foros (siempre por este orden) encontrarás todo lo que necesitas, tampoco viene mal tener a mano un buen libraco de C++. Tambien creo que existe uno de SDL en castellano por ahí, que al parecer es lo mas recomendable para facilitar todo el tema de lo que necesitarás de momento. Busca tutoriales en castellano en formato PDF y archivos de ayuda en CHM o HLP que son muy útiles y prácticos como referencia rápida.

Céntrate en la metodología y el desarrollo general en lugar de los gráficos o sonidos, para este primer juego que te propongo te servirá con un simple pitido y rectángulos de un color. Hazlo independiente de los gráficos de manera que en lugar de llenar el programa de llamadas a SDL_FillRect (suponiendo que utilices SDL) Crea tu propia clase Graficos y un metodo llamado MiRectangulo, e incluye dentro de él la funcion SDL_Fillrect, de manera que la puedas sustituir fácilmente en un futuro por la de cualquier otra libreria (glRectf de OpenGL o FillRect de GDI), asi con sencillos cambios podras actualizar tus programas. Progresivamente ves haciendo clases para el sonido, los controles, y todo lo demas.

Apunta todo lo que vayas a usar en el juego (Raquetas, pelota, marcador...), y crea clases a partir de ello. Luego deberas pensar la forma en que interactúan unas clases con otras para desarrollar sus respectivos métodos. Aunque no sepas demasiado C++ puedes practicar este tipo de clases al tiempo que haces el juego. Usa la encapsulación de manera estricta, la herencia te servira para cuando tengas clases de objetos parecidas como por ejemplo la raqueta del jugador y la raqueta de la maquina. Tambien el polimorfismo sera de gran ayuda. Además procura que el código de la función principal sea legible e independiente de cualquier librería o plataforma, algo así:
...

Pelota.Desplazar();

if (Pelota.ComprobarGolpeRaqueta(RaquetaJugador1)==true)
    {
    Pelota.InvertirDireccion();
    Sonido.EmitirPitidoCorto();
    }
...

De esta manera "los problemas" del juego estarán en sus clases. Estas clases podrás reutilizarlas en otros juegos con el mínimo esfuerzo, modificándolas, ampliándolas, y desechando las que ya no uses, al final acabaras teniendo clases para todo tipo de cosas que te facilitará muchísimo el crear nuevos juegos.

Haz replicas de juegos pequeños y termínalos, no hace falta que hagas todas las fases o pantallas, haz versiones demo de dichos juegos, no pierdas tiempo diseñando tu los gráficos, cópialos directamente con la tecla y pégalos en el Paint u otro similar, recórtalos y guárdalos en un bmp sin mas complicaciones, haz lo mismo con los sonidos.  Si consigues acabar juegos como el Pac-Man, Asteroids, Arkanoid, tetris, etc... ya tendrás nivel más que suficiente para empezar a desarrollar tus propios juegos y para profundizar en la programación gráfica (incluida la 3D).

Y este es mi humilde consejo que no se si sera precisamente el mas correcto, pero tal vez algo de ello te sirva, tambien puede que no sea el mas divertido y espectacular, pero yo creo que se aprende mas y mejor a programar así que intentando hacer un Quake en el que te lo den todo hecho.

Un saludo y hasta otra.






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.