APRENDE LOS PATRONES DE DISEÑO MÁS UTILIZADOS EN LA INDUSTRIA CON ESTE CURSO DE PATRONES DE DISEÑO PARA VIDEOJUEGOS
DIME SI ESTO TE SUENA FAMILIAR...
- Conoces los patrones de diseño pero no sabes cuándo aplicarlos o peor: no conoces los patrones de diseño.
- Tu código es difícil de leer y modificar.
- No consigues destacar en las entrevistas de trabajo.
- Sabes que se puede escribir un código más flexible y mantenible pero no sabes cómo.
- No tienes un mentor del que puedas aprender y seguir creciendo como desarrollador de videojuegos.
SI TE HAS VISTO REFLEJADO EN ALGUNO DE ESTOS CASOS NECESITAS APRENDER A APLICAR PATRONES DE DISEÑO

¿Cuales son las ventajas de utilizar patrones de diseño?
Nos aportan un lenguaje común con el que comunicarnos con el resto de programadores, además obtendremos un código homogéneo.
Son soluciones contrastadas a problemas comunes que se repiten en todos los proyectos. Estas soluciones suelen cumplir los principios SOLID y eso es una gran ventaja.
Te ayudarán a destacar en las entrevistas de trabajo ya que una pregunta que siempre se repite es que explique los patrones de diseño que conozcas o hayas aplicado.
El código resultante de aplicar un patrón será mucho más mantenible que el código de no aplicarlo. Además cualquiera que conozca estos patrones será capaz de entenderlo y modificarlo.
Cuando aprendes a utilizar patrones de diseño te puedes centrar en la lógica de tu algoritmo y no preocuparte por los detalles de la implementación ya que esto vendrá dado por el patrón.
Este conocimiento te acompañará durante toda tu carrera como desarrollador de videojuegos y marcará una diferencia.
Todo lo que necesitas saber para aplicar los patrones de diseño en tus videojuegos
MÓDULO 1

BIENVENIDA. CONFIGURACIÓN INICIAL
- Presentación del curso.
- Creación del proyecto inicial.
- Ponte cómodo: crea un espacio de trabajo a tu medida.
- Introducción a los patrones de diseño.
MOVIMIENTO DE LA NAVE
- Veremos el diagrama inicial del movimiento.
- Crearemos la nave y la lógica de movimiento en la propia nave.
- Veremos la problemática de tener el input en la propia nave cuando necesitamos hacer un juego multiplataforma, o cuándo queremos cambiar el input por la IA de un bot.
- Diagrama añadiendo más tipos de controles.
- Explicación del patrón Adapter y veremos el diagrama de la solución aplicando este patrón.
- Explicación del patrón Strategy.
- Añadiremos nuevos tipos de input aplicando el patrón Adapter y Strategy.
- Al final del módulo tendremos la nave moviéndose con un control para teclado o joystick, y otro control para dispositivos móviles.
MÓDULO 2

MÓDULO 3

¡QUÉ EMPIECE EL FUEGO! DISPAROS DE LA NAVE
- Veremos el diagrama inicial para los disparos de la nave.
- Explicación del patrón Mediator y veremos el diagrama aplicando este patrón sobre la nave para extraer la responsabilidad de disparar.
- Añadiremos la funcionalidad necesaria en el Input para conectar con la creación de proyectiles.
- Explicación del patrón Factory Method y diagrama aplicando este patrón para la creación de proyectiles.
- Implementaremos la creación de proyectiles con el patrón Factory Method, el cuál nos permitirá añadir más tipos de proyectiles.
AMPLIANDO LOS DISPAROS DE LA NAVE
- Añadiremos otro comportamiento del proyectil distinto.
- Explicación del patrón Template Method y diagrama aplicando este patrón para la lógica de proyectiles.
- Añadiremos más proyectiles aplicando el patrón Template Method, cada proyectil tendrá un tipo de movimiento distinto
MÓDULO 4

MÓDULO 5

CREACIÓN DE LAS NAVES ENEMIGAS
- Veremos la problemática de no abstraer la construcción de naves del spawner de enemigos.
- Explicación del patrón Builder y diagrama aplicando este patrón sobre la creación de naves.
- Abstraeremos la creación compleja de las naves con el patrón builder y lo combinaremos con el patrón Factory Method para abstraer la elección del prefab a utilizar por la nave.
- Añadiremos la lógica para empezar y terminar las batallas.
- Explicación del patrón Facade.
- Aplicaremos el patrón Facade para la lógica de empezar y terminar la batalla.
¡QUÉ EMPIECE LA BATALLA! DESTRUCCIÓN DE NAVES Y PUNTOS
- Veremos el diagrama añadiendo la lógica de destrucción de naves y acumulación de puntos.
- Analizaremos la problemática de hacerlo directamente en la nave al colisionar.
- Explicación de los patrones Singleton.
- Aplicaremos el patrón Singleton para contar los puntos y mostrar la pantalla de GameOver.
- Explicaremos los patrones Observer Y Event Queue para luego combinarlos.
- Refactorizaremos el código anterior para desacoplarnos gracias al Obsever y Event Queue.
MÓDULO 6

MÓDULO 7

MENÚ Y FLOW DEL JUEGO
- Estados del juego, victoria y derrota.
- Explicaremos el patrón State y lo aplicaremos a los estados del juego.
- Primera versión del flow inicial y el patrón Service Locator.
- Primera versión del flujo del menú.
- Explicación del Command y CommandQueue.
- Aplicaremos el patrón Command y CommandQueue para terminar el flujo del juego.
ALMACENADO DE PUNTOS Y LEADERBOARD
- Crearemos el sistema para almacenar los puntos de las batallas.
- Explicación del patrón Composite.
- Combinaremos el patrón Composite con el Command para hacer comandos más complejos.
- Desarrollaremos el menú de leaderboard y lo conectaremos con el menú aplicando el patrón Mediator.
MÓDULO 8

MÓDULO 9

TOCA PONERLO BONITO
- Es momento de hacer que nuestro juego luzca bonito, añadiremos el arte para mejorar nuestro juego visualmente.
- Añadiremos el arte para toda la UI.
- Crearemos varias naves y proyectiles distintos.
- Haremos que el background se mueva con un offset para que de la sensación de movimiento.
- Configuraremos nuestro nivel para que el juego sea divertido.
SOBRE EL CURSO
El curso está totalmente orientado a aprender practicando, por eso iremos desarrollando un videojuego desde 0 aplicando los patrones de diseño.


Para el curso utilizaremos Unity 3D por su versatilidad y por ser uno de los motores más utilizados en la industria, pero los conocimientos que adquieras los podrás aplicar con cualquier motor que elijas.
PATRONES QUE UTILIZAREMOS
Patrones de creación
- Factory Method: Abstrae cómo creamos los objetos.
- Builder: Permite crear objetos complejos por partes.
- Singleton: Se asegura de que solo exista una instancia.
Patrones estructurales
- Adapter: Nos abstrae de la clase concreta permitiendo más flexibilidad.
- Facade: Hace de intermediario entre los consumidores y varios sistemas.
- Composite: El consumidor no sabrá si hay 1 o 100 objetos detrás de este.
Patrones de comportamiento
- Template Method: Define un esqueleto del algoritmo.
- Command y Command Queue: Encapsula una orden y la encola.
- Mediator: Encapsula cómo interactúan varios objetos entre sí.
- Strategy: Permite intercambiar una familia de algoritmos.
- State: Permite cambiar el comportamiento de un objeto en función de su estado.
Patrones de desacoplamiento
- Service Locator: Proporciona un acceso global a los servicios sin acoplarte a la clase concreta.
- Event Queue: Desacopla cuando un evento se envía y cuando se ejecuta.
Patrones de optimización
- Object Pool: Nos permite reciclar los objetos y optimizar el rendimiento y la memoria.

CURSO PATRONES DE DISEÑOPARA VIDEOJUEGOS
19,99 €
- Acceso de por vida al curso.
- Descarga el código y diagramas para practicar.
- Acceso a todas las actualizaciones.
CURSO COMPLETO PARA POTENCIAR TU CARRERA COMO DESARROLLADOR

ELLOS YA HAN DADO EL PASO...

Francisco Javier Pascual, game developer
<< Pese a que hay muchos lugares en los que aprender patrones, el enfoque práctico de este curso ayuda a interiorizarlos con un enfoque completamente práctico aplicado en el desarrollo de un videojuego desde cero.

Javier Hidalgo, analista programador
<< Los conceptos del curso están muy bien explicados, se acompañan de ejemplos que ayudan a entender mejor los patrones. Primero vamos programando como haríamos sin usar patrones y vemos los problemas que nos surgen y cómo utilizar el patrón adecuado a cada problema.

Francisco Reyes, game developer
<< El curso vale completamente la pena. Dani es un excelente profesor que se empeña en dejar lo más claros los temas y se sale de los típicos patrones que todo el mundo enseña: «Singleton».
DESCUBRE COMO LOS PATRONES DE DISEÑO TE PUEDEN AYUDAR EN TU DÍA A DÍA COMO DESARROLLADOR DE VIDEOJUEGOS
¡HOLA!

POR SI AÚN TIENES DUDAS, AQUÍ VAN LAS PREGUNTAS MÁS FRECUENTES
¿El curso es para todos los niveles?
Para poder hacer el curso con soltura y aprovecharlo al máximo necesitarás unos conocimientos mínimos de programación y de Unity.
¿Durante cuánto tiempo tendré acceso al curso?
Una vez accedas al curso tendrás acceso de por vida, lo que significa que podrás hacer el curso a tu ritmo y verlo tantas veces como necesites.
¿Qué programas utilizáremos para el curso?
Utilizaremos Unity 2019.4 LTS, pero puedes utilizar cualquier versión de Unity. Además los conocimientos aprendidos los podrás aplicar a cualquier motor.
¿Qué resultados me garantizas si sigo las lecciones?
Los resultados obtenidos dependerán mucho de tu implicación en el curso ya que se trata de un curso práctico donde el alumno debe practicar la lección y escribir su propio código (aunque yo también proporcionaré el código resultado).
¿En qué idioma está el curso?
Todos los vídeos y artículos del curso están en español, pero el código del proyecto está en inglés ya que es el estándar de la industria.
¿Qué diferencia a este curso de cualquier otro curso de patrones?
Este curso está totalmente orientado a videojuegos y se focaliza en los patrones más utilizados para desarrollar videojuegos.