Introducción a desarrollo en Unity 2D

Iñaki Agustin Lapeyre

El objetivo de este curso es capacitar al alumno para crear un videojuego completo (Game Loop cerrado) ejecutable en Windows y/o Web, priorizando las buenas prácticas de ingeniería de software, la escritura de código limpio y una comprensión profunda del motor Unity 6 y C#.

Modalidad

Virtual
Desde Buenos Aires, Argentina

Horarios y días

Viernes 18:00 hs

Duración

8 clases - 2 meses

Software

Unity 6

Comienza el 17 de Abril

Requisitos de hardware

Componente

Requisito mínimo

Recomendado

SO (Windows)

Windows 10 (21H1, build 19043+) o Windows 11 (21H2+) (64-bit).

Windows 10/11 actualizado.

CPU

Arquitectura X64 con soporte para instrucciones SSE2.

Intel Core i5 / AMD Ryzen 5 o superior.

GPU

Compatible con DX10, DX11, DX12 o Vulkan.

GPU Dedicada (NVIDIA GTX 10-Series / RTX o AMD RX Series).

RAM

8 GB (Mínimo operativo realista).

16 GB o más (Estándar para evitar swapping).

Almacenamiento

HDD estándar.

SSD (Crucial para tiempos de compilación y carga de assets).

Programa

Fundamentos de Ingeniería y Entorno de Unity

El Core Loop - Física y Input System

Interacción, Diseño de Niveles y Optimización

Automatización y Escalabilidad

Arquitectura de Datos y Máquinas de Estados

Game Loop, Singleton y UI

Game Feel y Feedback Sensorial

Empaquetado, Persistencia y Distribución

Módulo 1

  • Configuración de Unity Hub y Unity 6.

  • Control de Versiones (Git): Implementación de repositorios, concepto de atomicidad en "Commits" y "Push" a GitHub.

  • Se establece el VCS (versión control system) como una red de seguridad indispensable ("Deshacer") antes de escribir lógica.

Fundamentos de Ingeniería y Entorno de Unity

Establecer un flujo de trabajo profesional desde el inicio, priorizando el control de versiones y la comprensión de la memoria.

Entorno de Desarrollo

  • Diferenciación entre tipos de valor y referencia en memoria.

  • Estructura de métodos (acciones vs. retorno de datos) y control de flujo.

Lógica C# y Gestión de Memoria

  • Ciclo de vida de MonoBehaviour: Diferencias críticas entre inicialización y bucles de actualización (Start vs Update).

API de Unity

Módulo 2

  • Rigidbody2D: Manipulación de física y la importancia del FixedUpdate para la estabilidad de la simulación.

  • Colisionadores: Configuración de BoxCollider2D y detección de suelo mediante Raycast u OverlapCircle para evitar estados booleanos inconsistentes.

El Core Loop - Física y Input System

Implementación de un controlador de personaje físico utilizando el Input System moderno y cámaras dinámicas.

Física 2D Determinista

  • Creación de Input Action Assets y configuración de Action Maps.

  • Desacoplamiento de la entrada lógica (Actions) del hardware físico (Binding).

Input System (Unity 6)

  • Implementación de CinemachineCamera (Unity 6) con configuración de zonas muertas para filtrar ruido de entrada y evitar mareo por movimiento.

Cámara

Módulo 3

  • Uso de Tilemaps (Grid, Palette, Layers) para el pintado de escenarios.

  • Optimización de Física: Implementación de CompositeCollider2D para fusionar geometría de colisión y reducir la carga de cálculo físico.

Interacción, Diseño de Niveles y Optimización

Construcción de entornos y gestión eficiente de colisiones.

Arquitectura de Niveles

  • Diferenciación técnica entre colisión física (OnCollisionEnter) y disparadores lógicos o sensores (OnTriggerEnter).

Lógica de Interacción

  • Uso estricto de CompareTag para evitar la asignación de memoria (string allocation) en el Heap durante las comparaciones.

Gestión de Memoria

Módulo 4

  • Uso de Listas dinámicas vs Arrays estáticos para la gestión de entidades.

  • Iteración de colecciones mediante bucles foreach.

Automatización y Escalabilidad

Transición de la edición manual a la generación procedural y gestión de colecciones dinámicas.

Estructuras de Datos

  • Concepto de "Molde" vs "Instancia" y uso de Overrides.

Sistema de Prefabs

  • Generación en tiempo de ejecución (Instantiate) y gestión de destrucción (Destroy).

Ciclo de Vida de Entidades

Trade-off: Introducción teórica al Object Pooling como la solución escalable para evitar picos de Garbage Collection en proyectos avanzados.

Módulo 5

  • Creación de contenedores de datos para estadísticas (Velocidad, Vida) que permiten balanceo en tiempo real sin recopilación.

Arquitectura de Datos y Máquinas de Estados

Desacoplar los datos de configuración de la lógica de comportamiento (Data-Driven Design).

ScriptableObjects

  • Implementación de estados lógicos (Idle, Run, Jump) mediante enum y control de flujo switch.

Máquina de Estados Finita (FSM)

  • Vinculación de la FSM lógica con el Animator Controller mediante parámetros y transiciones, o control explícito por código.

Sistema de Animación

Módulo 6

  • Implementación de una clase estática global (GameManager) para gestión de estado.

  • Limitación de su uso para evitar acoplamiento excesivo y deuda técnica.

Game Loop, Singleton y UI

Centralización del flujo de juego y arquitectura de interfaz de usuario.

Patrón Singleton

Interfaz de Usuario (UI)

  • Control de flujo de aplicación (Menú, Gameplay, Game Over, Reinicio) mediante SceneManager.

Gestión de Escenas

  • Teoría de Canvas y Anchors para independencia de resolución de pantalla.

  • Manipulación de TextMeshPro referenciado desde el Singleton.

Módulo 7

  • Coyote Time: Implementación de temporizadores para permitir saltos post-contacto, priorizando la sensación de control sobre la física realista.

Game Feel y Feedback Sensorial

Mejora de la experiencia de usuario (UX) mediante diseño invisible y respuesta del sistema.

Diseño Invisible

  • Instanciación de sistemas de partículas y gestión de efectos de sonido (AudioSource) para feedback inmediato.

  • Screen Shake: Uso de Impulse Sources (Unity 6) para impacto visual en eventos críticos.

Feedback Audiovisual

  • Uso de Corrutinas (IEnumerator) para manipular el flujo temporal (pausas dramáticas, delays) antes de reinicios.

Control de Tiempo

Módulo 8

  • Uso de PlayerPrefs para almacenamiento local de datos simples (HighScore) entre sesiones.

Empaquetado, Persistencia y Distribución

Finalización del ciclo de desarrollo, persistencia de datos y publicación del producto.

Persistencia de Datos

Build Pipeline

  • Compilación para WebGL y configuración de hosting en plataformas como Itch.io para generar un entregable de portafolio.

Despliegue

  • Configuración de Build Settings (iconos, resolución).

  • Conceptos de optimización: Compresión de texturas y Code Stripping.

Arancel

Si sos miembro de Buenos Aires Game Devs, BTVA, o tenés cupón, abonás solo el 50%!

por mes

80000 ARS

60.000 ARS

30.000 ARS

por mes

Valor de Inscripción (única vez): 20.000 ARS