Videojuegos en C++

El game loop, dt, el teclado, colisiones, estados, entidades, ECS, pools, tilemaps, IA y animación: hacés Asteroides y un plataformero que se juegan con el teclado.

14 aulas · 12 horas de práctica · en el navegador, sin instalar nada

Temario

  1. El game loop: actualizar y dibujar — Un juego es un loop que se repite 60 veces por segundo: actualizar cambia el estado, dibujar lo muestra. Tu primer rectángulo que se mueve solo.
  2. Movimiento con velocidad y dt — Velocidades por segundo, no por cuadro: con dt tu juego va igual de rápido en cualquier compu. Rebotes, gravedad, un tope de velocidad y un cañonazo.
  3. El teclado — Tu primer juego que se juega: teclas mantenidas para moverse, recién apretadas para disparar, la diagonal que hace trampa y la pausa con Enter.
  4. Colisiones AABB — Cuándo dos cosas se tocan: cajas que se pisan en x y en y, un punto adentro de una caja y dos círculos. Y qué hacer después: no atravesar paredes y juntar lo que tocaste.
  5. Estados del jugador — Quieto, corriendo, saltando, cayendo, herido, muerto: el jugador como una máquina de estados con un enum class y un switch. Cada estado sabe qué hacer y cuándo pasar al siguiente.
  6. Entidades con herencia — Rocas, estrellas y ovnis en un solo vector: cada uno hereda de Entidad y se mueve a su manera. El loop no sabe qué es cada cosa, y no le hace falta.
  7. ECS: entidades como datos — Una entidad es un número y sus datos viven en un vector por componente. Los sistemas recorren esos vectores: movimiento, gravedad, vida y limpieza, con fuegos artificiales.
  8. Spawns y pools de objetos — Enemigos que aparecen con un reloj, cada vez más seguido y en lugares al azar, y balas que se reusan de un cajón fijo en vez de crearse y borrarse.
  9. Tilemaps — Un nivel escrito como texto: cada letra es una celda de 40 × 40. Contar lo que hay, preguntar por una celda sin salirse, no pisar paredes, juntar monedas y abrir la puerta con la llave.
  10. IA simple: perseguir y huir — Un perro que te persigue, una gallina que se escapa, un guardia que solo ve de cerca, una mosca que gira de a poco y un fantasma que se asusta. Todo con una resta y un vector normalizado.
  11. Puntaje, vidas y niveles — Lo que hace que un juego se juegue otra vez: vidas y game over, el combo, niveles que se ponen difíciles, la vida extra y el récord.
  12. Animación por cuadros — Las piernas que caminan, la moneda que gira y la explosión que se ve una vez: elegir qué dibujo toca según el tiempo, solo cuando hace falta y al ritmo justo.
  13. Taller: Asteroides — El clásico de 1979, entero: una nave que gira y empuja, la pantalla que da la vuelta, disparos que viajan con la nave, rocas que se parten en dos y en cuatro, y la nave que sobrevive dos segundos después de un choque.
  14. Taller: Plataformero de un nivel — Un nivel entero hecho con un tilemap: caer sobre los bloques y chocar de costado sin atravesarlos, un salto que se corta si soltás, pisar al enemigo y la bandera que solo cuenta con todas las monedas.

Es parte de