
Introducción al curso.
Resumen de la estructura y contenidos del curso.
Información sobre versiones de Unity y Visual Studio en el curso.
Introducción breve sobre programación, lenguajes de programación y el rol del programador en el desarrollo de videojuegos.
Breve explicación sobre IDEs e instalación de Visual Studio 2022, el IDE por defecto de Unity.
Primeros pasos utilizando Visual Studio 2022: configuración del entorno y utilización de métodos y propiedades de la consola.
Sugerencias para trabajar con el autocompletado.
Utilidad y uso de comentarios en C# (de una linea y multilinea).
Introducción a las variables.
Se repasan los tipos de dato básicos de C#.
Se crean variables (declaración e inicialización) de los tipos de dato básicos, se muestran sus contenidos en consola y se hacen cambios de valores. También se muestran errores y confusiones típicas.
Todo lo que se necesita saber a la hora de nombrar variables en C#
Ejercicio donde se tienen que decidir nombres adecuados para variables.
Se tratan operaciones aritméticas: suma, resta, multiplicación, división y resto de división entera (módulo).
Se muestran formas abreviadas de las operaciones aritméticas que se usan comúnmente al programar.
¿Cómo se evalúan las operaciones cuando hay varios operadores a la vez?
Se trata la operación de concatenación de strings
Ejercicio para poner a prueba conocimientos de operaciones aritméticas.
Entradas de usuario desde teclado.
Se repasa como hacer conversiones de datos típicas.
Ejercicio para repasar la concatenación de strings.
Ejercicio para poner a prueba varios conceptos estudiados en la sección.
Introducción a los condicionales, repasando ejemplos de la vida real y en videojuegos.
Estructura básica de la sentencia if.
Estructura if-else.
Operadores relacionales (o de comparación) para chequear magnitudes o igualdad.
Ejercicio para practicar operadores relacionales.
Ejercicio para practicar operadores relacionales.
Estructuras if - else if - else
Uso básico de operadores booleandos (AND, OR, NOT).
Ejemplo donde se hace uso de estructuras if - else if - else, operadores relacionales y operadores booleanos.
Ejercicio para practicar estructuras if - else if - else, operadores relacionales y operadores booleanos.
Ejercicio para practicar operadores booleanos.
Ejercicio para practicar operadores booleanos.
Ejercicio para practicar operadores relacionales y el operador módulo.
Introducción a los bucles o loops, repasando ejemplos de la vida real y en videojuegos.
Estructura del bucle while y ejemplos básicos.
Ejercicio de uso básico del bucle while.
Ejercicio de uso básico del bucle while.
¿Qué son los loops infinitos? ¿Cómo pueden afectar a nuestro videojuego o programa?
Demostración de uso del loop for. Comparación con loops while.
Ejercicio para practicar loops for.
Utilidad de la sentencia break.
Utilidad de la sentencia continue.
Introducción a los arrays y listas, repasando ejemplos de la vida real y en videojuegos.
Declaración e inicialización de arrays. Longitud de un array. Acceso a elementos.
Demostración de uso de loops para recorrer arrays.
Ejercicio para practicar recorrido de arrays.
Ejercicio para practicar recorrido de arrays llenando un array vacío.
Ejercicio para practicar recorrido y manipulación de arrays.
Introducción a las listas. Diferencias entre listas y arrays.
Sintaxis y uso del loop foreach. Diferencias con otros tipos de loops.
Ejercicio para practicar recorrido de colecciones con el loop foreach.
Introducción a los métodos. Ejemplos de métodos en videojuegos. Modularidad.
Sintaxis más básica de un método. Llamadas a métodos.
Definición y llamadas a métodos que reciben parámetros.
Definición de métodos con un valor de retorno.
¿Qué ocurre si se llama a un método pasando una variable con el mismo nombre que el parámetro?
¿Qué alcance tiene una variable? ¿Dónde puedo accederla?
Ejercicio para repasar la sintaxis básica de un método (sin parámetros ni tipo de retorno).
Ejercicio para repasar la sintaxis de un método con parámetros.
Ejercicio para repasar la sintaxis de un método que devuelve un valor.
¿Qué es un motor de videojuegos?. Ventajas de utilizar Unity.
Instalación de Unity y creación de un proyecto 2D.
Ventanas principales y manejo básico del editor de Unity.
Ejercicio para practicar movimiento, rotación y escala de objetos en el editor de Unity.
¿Qué función tiene la cámara? ¿Qué ocurre al pasar a play mode?
Configuración de Visual Studio con Unity.
Vista previa del proyecto a realizar en esta sección.
Dónde conseguir sprites. Importar sprites a un proyecto. Unidades del world space. Píxeles por unidad.
Ejercicio para entender la relación entre el tamaño de un sprite y sus pixeles por unidad.
¿Qué es la relación de aspecto? ¿Cómo elegir cuántas unidades toma la cámara?
Seteo rápido de orden de aparición de sprites utilizando la propiedad order in layer.
Componente Rigidbody2D y colliders. Interacción física entre objetos.
Repaso de las líneas de código que conforman el script por defecto de Unity (introducción a clases, namespaces y funciones de evento).
Cambiar posición y mover un objeto vía script (modificando componente Transform).
Sistema de entradas. Obtener entradas de usuario con el Input Manager. Mover objeto respondiendo a tales entradas.
Importancia de deltaTime. Independencia de frame rate.
Ejercicio para repasar tomas de entradas y movimiento de objetos.
Exposición de campos en el inspector. Ventajas.
Diferencias entre Rigidbody dynamic y kinematic. ¿Cuándo usar cada uno?
Limitar el movimiento de un Rigidbody kinematic para que no traspase límites.
¿Qué implica que un objeto sea padre de otro? Obtener referencias de componentes vía script.
Creación de un material físico para definir rebotes.
Ejercicio para practicar seteo de valores en el inspector con SerializeField.
Ejercicio para poner a prueba conocimientos de condicionales y operadores booleanos.
Función de evento OnCollisionEnter2D para ejecutar acciones al colisionar. Utilidad de las tags. Destrucción de objetos con el método Destroy.
Utilización de la grilla de Unity para establecer posiciones de objetos rápidamente.
¿Qué es un trigger?. Función de evento OnTriggerEnter2D.
Utilidad de un GameManager. Modificadores de acceso private y public. Hacer cambios de escena.
Importancia de los modificadores private y public.
Creación de la lógica para pasar de un nivel a otro.
Uso e importancia de los prefabs.
Ejercicio para practicar el uso de prefabs.
Introducción a la interfaz de usuario en Unity. World Space vs. Screen Space. Rect Transform. Pivote, anclajes.
Ejecutar un método al clickear un botón.
Ejercicio para practicar con elementos de interfaz de usuario.
Vista previa del proyecto.
Uso de sorting layers para una mejor organización del orden de aparición de objetos.
Creación de una animación simple. Componentes y assets relacionados a la animación.
Ejercicio de repaso de físicas.
Influencia de otras propiedades de los rigidbodies en el objeto.
Función de evento FixedUpdate. Diferencias con Update.
Atajos de vectores unitarios que apuntan en dirección a los ejes.
Aplicación de torque a objetos para lograr movimientos rotacionales vía físicas.
Proceso de creación de un scroll infinito.
Modificaciones al scroll de objetos para lograr un efecto parallax.
Creación de obstáculos. Repaso de relaciones entre objeto padre / objeto hijo.
Método Instantiate para hacer aparecer objetos en la escena. ¿Qué significa que un método está sobrecargado?
Uso de corrutinas para ejecutar acciones cada un cierto tiempo.
Introducción a la generación de números aleatorios. Hacer aparecer obstáculos en alturas aleatorias.
Ejercicio de repaso de colisiones y triggers.
Ejercicio de repaso de triggers y el método Destroy.
Introducción a campos, métodos y clases static. Ejemplos de uso.
Aplicación de los conceptos del modificador static para crear un Singleton que maneje el juego (Game Manager).
Crear un font asset para text mesh pro. Cambiar texto de interfaz de usuario via script.
Detener objetos en movimiento. Detener corrutinas.
Creación de un panel de game over. Activar y desactivar objetos vía script.
Ejercicio de repaso haciendo uso de conceptos básicos de programación.
Ejercicio de repaso de instanciación, corrutinas y generación de números aleatorios.
Introducción a los métodos getter, métodos setter y properties.
A partir de generación de números aleatorios, instanciar un objeto de un array elegido en forma aleatoria.
Introducción a los efectos de partículas y módulos básicos del sistema de partículas. Creación de efecto de explosión simple.
Instanciar y destruir efectos de particulas.
¿Cuál es la utilidad del método Awake en Unity?
¿Te interesa iniciar en el desarrollo de videojuegos con Unity y C#? Este curso es el mejor lugar para empezar!
Como creador de tutoriales y contenido relacionado al desarrollo de videojuegos en mi canal Indierama, frecuentemente puedo notar iniciantes que necesitan fortalecer sus bases de programación y manejo de Unity. Con esto en mente, la idea es detenernos a aprender las bases: aquellos conocimientos cruciales que, muchas veces, impiden a los iniciantes mejorar. En este curso, cada lección fue creada sin dar nada por sentado y dando el tiempo necesario en la explicación de cada concepto.
A lo largo de las lecciones, también deberán resolver muchos ejercicios. El foco del curso está en que, al terminar, sean capaces de enfrentar y resolver situaciones por su cuenta y con buenas prácticas, y no solo copiar y pegar código.
Existen muchos cursos que prometen convertirte en un maestro desarrollador de videojuegos. Pero siendo realistas: eso puede llevar años de trabajo duro. Ningún curso te va a convertir en un maestro, pero empezar en la forma correcta te va a acercar más al objetivo.
El curso inicia con varias secciones dedicadas únicamente a la programación en C#, sin Unity de por medio. Es decir, nos vamos a concentrar en programar sin otras distracciones. Se van a tratar temas indispensables de programación como variables, condicionales, bucles, arrays, listas y métodos.
Con estos conocimientos básicos de programación, agregamos al motor de videojuegos Unity a la ecuación. Vamos a crear tres juegos simples con el objetivo de introducir poco a poco, conceptos clave de desarrollo de videojuegos, programación y manejo de Unity:
Arkanoid: proyecto ideal para comprender desde el manejo básico de Unity y configuración del entorno y sprites, hasta movimiento de objetos, scripting, controles, físicas, colisiones, triggers, componentes básicos, interfaz de usuario, modificadores de acceso y más.
Infinite scroller: vamos a tratar más temas importantes como instanciaciones, corrutinas, generación de números aleatorios, efecto parallax, efectos de partículas, variables y métodos static, propiedades, singletons y más.
Top down shooter: nos introduciremos al movimiento y animación de personajes, manejo de audio, tilemaps, seguimiento de cámara, operaciones con vectores, etc. También habrá una sección opcional para adaptar controles al nuevo input system de Unity y podrán integrar un mando/gamepad.
Resumiendo, este es un curso diseñado para principiantes: desde personas con ningún conocimiento en programación y desarrollo de videojuegos, hasta personas que ya tengan un contacto previo con Unity y quieran lograr bases más sólidas. Si esto es lo que estás buscando, este curso es la mejor opción. Nos vemos ahí!