viernes, diciembre 18, 2020

RAM ROM CHECK: Un curso de cómo crear videojuegos con... Ghost'n Goblins!

El proyecto RAM ROM CHECK nació como un intento de compartir cosas que he explicado docenas de veces en charlas y cursos, orientándolas para intentar enseñar a programar videojuegos a mi sobrino (y un poco más adelante a mi hija). Ya que hacía el esfuerzo, tenía todo el sentido del mundo publicar el contenido en forma de vídeo-podcasts o tutoriales para que cualquiera pudiera beneficiarse también.

Figura 1: RAM ROM CHECK: Un curso de cómo crear
videojuegos con... Ghost'n Goblins! 

El objetivo es enseñar los conceptos básicos de programación de videojuegos, a través de los grandes clásicos de los juegos Arcade. Y además porque a los que nos gusta jugar, nos gusta jugar a todo. A los modernos y a los clásicos, como dice muchas veces mi amigo Lazaro Fernández con sus compañeros del Podcast para gamers Hadoken Rojo.

¿Quién soy que he venido aquí a hacer esto?

Soy Iñaki Ayucar, actualmente Head of Software en Telefónica, anteriormente Microsoft DirectX MVP, Associate Technical Director en Electronic Arts y Microsoft Game Studios, y antes fundador de la empresa Simax Virt donde hacíamos simuladores de conducción. Aunque hice todos mis esfuerzos con los simuladores de conducción, os garantizo que nunca conseguí que Chema Alonso aprendiera a conducir un coche bien. Ni el su maligno-movil, como él lo llama, siquiera.


He tenido la oportunidad de formar parte del equipo de desarrollo de videojuegos como FIFA, Star Wars BattleFront, Need For Speed, BattleField, Mirror’s Edge, Titanfall, Dragon Age, UFC, Kinect Sports Rivals (entre muchos otros), aprendiendo durante años de mis compañeros en estudios como DICE, Visceral, RARE, EA Sports, BioWare, Criterion, ReSpawn, etcétera. Gente de un increíble talento de los que aprendes cada día.

¿Por qué vamos a aprender con videojuegos clásicos?

La evolución de los juegos desde los años 80 ha sido enorme en el plano técnico. Hemos pasado de videojuegos puramente 2D con apenas una docena de sprites en pantalla, a entornos virtuales gigantescos y mundos abiertos en los que, en ocasiones, resulta difícil distinguir claramente imágenes digitales de planos reales.

A pesar de eso, muchos videojuegos actuales mantienen los mismos principios básicos que los juegos de entonces: suele haber un jugador que se enfrenta a retos de todo tipo mientras intenta sobrevivir a hordas de enemigos que intentan abatirlo. Hay puzzles, hay investigación y exploración, plataformas, carreras, enemigos finales, etcétera.

En aquellos años, las limitaciones técnicas eran tan grandes, que se aseguraron de exprimir hasta el último bit, los conceptos que hacían que un juego resultara divertido y adictivo. Tanto, que parte de ese conocimiento desarrollado entonces, perdura intacto hoy en día.

Por eso, aquellos juegos son ideales para iniciarse en el mundo de la programación de videojuegos: nos permiten cubrir muchísimos conceptos que siguen siendo totalmente válidos, mientras nos divertimos haciendo algo que nos gusta y que gracias a la tecnología actual, resulta muy sencillo, casi al alcance de cualquiera. Además, toda la tecnología utilizada está disponible sin coste para que no haya que desembolsar ni un solo Euro para poder completar estos tutoriales.

¿Cuál será el primer juego creado?

Pues vamos a ir a por el Ghosts ‘n Goblins! que es un candidato ideal, porque incluye animación, varios tipos de personajes, modos de juego, dinámicas, premios, armas, jefes finales de nivel, y muchos conceptos más que nos interesa mucho aprender. Y sobre todo, mola, mola, mola mucho. Un guerrero medieval luchando contra Ghosts y contra Goblins... ¿qué puede molar más?


Figura 3: GamePlay de Ghost'n Goblins!

¿Qué necesitamos para seguirlo?

Solo necesitaréis algo de conocimiento de programación y un poquito de conocimiento de matemáticas, sobre todo algunas nociones básicas de álgebra, entender qué son las coordenadas cartesianas, qué es un vector, y poco más. No vamos a hacer en motor 3D ... por ahora, donde sí que necesitarías un poco más de matemáticas, física, etcétera. A parte de eso, con esos pocos recursos, podéis poneros manos a la obra. Toma nota de la lista:

Un PC: El juego en sí es tan sencillo que casi cualquier PC sirve. Podéis consultar los requisitos mínimos de Unity, que será el motor que utilizaremos 
 
Unity: como motor de videojuegos, utilizaremos uno de los más populares, potentes, y que ofrece una rampa de aprendizaje muy asequible: Unity. Podéis descargarlo desde la web de Unity.

Arte del juego: Para poder centrarnos en la programación, descargaremos el arte del juego original de una de las muchas páginas de internet en las que está disponibles. En nuestro caso:

o Sprites: desde Spriters Resource

o Sonidos y música: desde Sounds Resource

Visual Studio: para editar el código y contar con todas las funcionalidades avanzadas que nos da un entorno de desarrollo completo, tales como depuración, búsqueda de referencias, navegación por el código, syntax highlighting o intellisense, utilizaremos Visual Studio que lo puedes descargar aquí.

Y ahora el Curso

Para hacer los videos más divertidos y se vean resultados rápido, los contenidos no siguen tanto un orden lógico, como en un curso tradicional, sino que intentan ir acompañando al desarrollo del juego. En ocasiones, conceptos muy básicos aparecerán en episodios avanzados en vez de al principio. Esto se hace así a propósito para no sobrecargar los primeros episodios de explicaciones teóricas que resultarían demasiado pesadas.  En el momento de escribir este artículo, están disponibles los primeros cinco episodios. Disfrútalos.

- Episodio 1: Introducción al editor de Unity, análisis y comprensión de los componentes que forman nuestro juego.


Figura 4: RAM ROM Check [Ghosts 'n Goblins - Episode 1]

- Episodio 2: Creación de nuestra primera escena, sistemas de coordenadas, proporciones y primeros componentes del juego.


Figura 5: RAM ROM Check [Ghost ' n Gobblins - Episode 2]

- Episodio 3: Animación clásica, animación en videojuegos, creación de Sprites en Unity y primeros pasos para crear el personaje principal del juego.


Figura 6: RAM ROM CHECK [Ghost 'n Gobblins - Episode 3]

- Episodio 4: Estructura básica del código de una aplicación, principios básicos de física, el ciclo de vida de los componentes de Unity, programación de los primeros comportamientos del player, movimiento del personaje por la escena y algunos de los conceptos más importantes a la hora de programar un videojuego que funcione bien en cualquier plataforma. 


Figura 7: RAM ROM CHECK [Ghost 'n Gobblins - Episode 4]

- Episodio 5: Ahora vamos a programar más a fondo el player para que tengamos ya jugabilidad en este proyecto.


Figura 8: RAM ROM CHECK [Ghost 'n Gobblins - Episode 5]

- Episodio 6: En este episodio vamos a trabajar más la jugabilidad del videojuego.


Figura 9: RAM ROM CHECK [Ghost 'n Gobblins - Episode 6]

- Episodio 7: Vamos a jugar con los Zombies, disparos y cómo matar con estilo.


Figura 10: RAM ROM CHECK [Ghost'n Gobblins - Episode 7] 

Los siguientes episodios irán profundizando en conceptos como buenas prácticas a la hora de desarrollar código, conceptos más avanzados de programación y pequeños tips&tricks para hacer que nuestro videojuego sea prácticamente indistinguible del original. Todo ello mientras vamos avanzando en la creación del juego, con todos sus componentes: enemigos, plataformas, modos de juego, final boss, etcétera.


Espero que os guste el proyecto de RAM ROM CHECK, y si queréis consultarme algo, podéis hacerlo a través de mi buzón público en https://MyPublicInbox.com/iayucar

Saludos!

3 comentarios:

  1. Es Genial a divertirse creando juegos.. Gracias

    ResponderEliminar
  2. Enhorabuena! Unos tutoriales magníficos.
    A nivel de contenidos de los vídeos : 10
    Calidad técnica de los vídeos: 10
    Explicaciones del tutor: 10. Se ve que no solo es un gran profesional, también es un gran comunicador.
    Muchas gracias!

    ResponderEliminar
  3. Muy buen curso. Espero con impaciencia la próxima lección.

    ResponderEliminar