Scripting

Cronograma de actividades

  • (10%) Taller #1 - Repaso [Semana 2]
  • (15%) Entrega #1 proyecto [Semana 4]
  • (20%) Entrega #2 proyecto [Semana 7]
  • (10%) Taller #2 - Recapitulación [Semana 10]
  • (20%) Entrega #3 proyecto [Semana 13]
  • (20%) Entrega #4 proyecto [Semana 16]
  • (5%) Asistencia CWF [Antes de acabar el semestre]

Taller 1

1. Realizar cinco programas y responda dos preguntas de teoría, se debe usar C# como lenguaje de Programación, click en el enlace para realizar la autoasignación de los enunciados
Ejercicios

✨Revisar la autoasignación en clase con el profesor, realizar preguntas, si hay algo que no se comprenda.

Taller 1

2. Peparar una actividad, de duración 3 min, donde por medio de interacción con el grupo, se practique el concepto de función, recuerde que es lo mismo que un módulo o un método. Se debe realizar el ejercicio durante la exposición la próxima clase.

Taller 1

3. Realizar los retos de manejo de terminal de la siguiente pagina:
Command Challenge 🖥️

4. Realizar 20 firmas diferentes de funciones con sus respectivas invocaciones, se debe evidenciar diferentes variaciones de funciones, con parametros, sin parametros, con retorno, sin retorno, usar diferentes tipos de datos como clases, cadenas, matrices, etc,. Se debe entregar en un repositorio.

Taller 1

5. Participa del programa exquisito, escribiendo líneas de código en el programa colaborativo

6. La clase de entrega, preparar una presentación de max 7 minutos, para exponer a sus compañeros, los resultados obtenidos, incluya conclusiones y bibliografía.

Criterios de evaluación

  • (10%) Asistencia a clase
  • (10%) Diapositivas y exposición en clase
  • (10%) Argumentación individual
  • (10%) Entrega en repositorio y manejo de terminal
  • (20%) Participación programa exquisito
  • (20%) Cinco ejercicios resueltos y funcionando
  • (20%) Ejercicio interactivo en clase

Referentes

Entrega 1 - Proyecto semestre

Juego de plataforma usando framework Corgi Engine de Unity

Instrucciones

  1. Escoger equipo de 2 - 3 personas, se puede repetir personas del taller 1
  2. Crear un repositorio por equipo, según las instrucciones de clase
  3. Crear el nombre del juego y logo (Puede usar namelix, chat gpt4...)
  4. Crea la historia del juego

Instrucciones

  • Se deben cambiar los personajes, los nombres y assets, para que no se usen los insumos por defecto del motor.
  • Usar una metafora inventada, y personalizar todos los elementos a usar en el proyecto, incluyendo fondos, plataformas, enemigos, heroe, sonidos, ...
  • La primera entrega debe contener las secciones como se muestran en el siguiente enlace: mapa de navegación.

Instrucciones

Crear estructura del proyecto según la siguiente imagen:

⚠️ No modifique o edite los archivos de la carpeta CorgiEngine, siempre que se use, se deben copiar los archivos al directorio del proyecto del estudiante o usar los conceptos de POO como herencia o interfaces para usar el código.

Instrucciones

La primera entrega del proyecto debe incluir:

  • Nombre - Logo
  • Historia
  • Nivel 1 - Diseño manual / Diseño en Unity
  • Sección: Home / Menú principal
  • Sección: Instrucciones
  • Sección: Créditos

Instrucciones

Cada nivel debe tener un level design creado a partir de un borrador, para la primera entrega se debe diseñar e implementar en el motor el nivel completo, debe incluir el proposito del jugador y la siguiente lista de elementos:

  • Enemigos (3 tipos diferentes)
  • Obstáculos (2 diferentes)
  • Monedas

Instrucciones

  • Power ups (1 por nivel)
  • Llaves
  • Plataformas:
    • Estandar
    • De empujar
    • Que se caen
    • Móviles (siguen una ruta)
  • BONUS: Easter Egg 🐰

Criterios de evaluación

  • (10%) Asistencia a clase
  • (10%) Repositorio proyecto
  • (20%) Navegación entre secciones
  • (20%) Diseño de nivel
  • (20%) Presentación (diapositivas/actualizacion)
  • (20%) Funcionamiento del proyecto

Configuración de CorgiEngine

Navegación entre escenas - CorgiEngine

Creación nivel - Plataformas

Ejemplo juego estudiantes


Juego JumpSkyward UNITY

Entrega 2 - Proyecto semestre

Para esta entrega se continuará con la configuración del segundo nivel, la decoración de las plataformas y el fondo, y el diseño de nuevos scripts.

Entrega 2 - Proyecto semestre

  • Diseño manual nivel 2
  • Implementación diseño nivel 2 en Unity
  • Configuración pantalla perdió (Game over)

Entrega 2 - Proyecto semestre

  • Creación de scripts nuevos:
    • Eventos actualización de monedas
    • Cambio de nivel
    • Power up - Ejemplo: Inmunidad
    • Ventana interactiva
  • Actualización de repositorio, por cada integrante del equipo
  • Actualización readme.md (stackedit)

Entrega 2 - Proyecto semestre

  • Uso de PickableItems, puertas o portales
  • Creación de diagramas según los scripts creados del juego (borrador)
  • Digitalización de diagramas (staruml o visio)
  • BONUS: Easter Egg 🐰, Nivel 2

Criterios de evaluación

  • (10%) Asistencia y entrega puntual
  • (10%) Exposición y actualización diapositivas
  • (10%) Actualización repositorio, cada integrante
  • (10%) Actualización diagramas clases
  • (20%) Diseño nivel 2 (Manual y digital)
  • (20%) Script con eventos, uno por estudiante
  • (20%) Personalización gráfica, plataformas y fondo

Ventana game over

Portales

Monedas

Eventos

Taller #2

Es es un taller de recapitulación, donde se repasarán los conceptos de programación orientada a objetos, principios SOLID, patrones de diseño y delegados en C#. Se realizarán ejercicios prácticos para aplicar estos conceptos en el contexto del desarrollo de videojuegos con Unity y C#.

Taller #2 - Instrucciones

  1. Cambiar de equipo, dos o tres personas.
  2. Crear un nuevo repositorio privado para el taller, con el nombre del equipo y el número del taller.
  3. Compartir un usuario con el profesor para tener acceso al repositorio con el engine de referencia.

Taller #2 - Diseño

  1. Diseñar un nuevo nivel para el juego, aplicando los principios SOLID y patrones de diseño aprendidos en clase.
  2. Implementar el patrón Singleton para gestionar el estado del juego y asegurar que solo haya una instancia de la clase GameManager.
  3. Aplicar el patrón Observer para notificar a los objetos del juego sobre cambios en el estado del jugador, como la recolección de monedas o la pérdida de vidas.

Taller #2 - Diseño

  1. Utilizar delegados para crear eventos personalizados que permitan una comunicación flexible entre los objetos del juego.
  2. Realizar el diagrama de clases donde represente:
    • 3 tipos de torres
    • 3 tipos de enemigos
    • 1 nivel
  3. Implementar el nivel usando un tile map para el fondo
  4. Implemente el sistema de oleadas
  5. Implemente ganar y perder

Taller #2 - Bonus

  • Implementar easy - medium y hard
  • Implementar compra de torres
  • Implementar power up - Que se recarga
  • Implementar ayudantes temporales

Criterios de evaluación

  • (10%) Asistencia a clase
  • (10%) Diapositivas y exposición en clase
  • (10%) Cambio de equipo
  • (10%) Diagrama de clases
  • (20%) Programación Torres
  • (20%) Programación de enemigos
  • (20%) Mécanicas del juego y patrones de programación aplicados

Referencias

Referencias

Taller #2

Implementar y probar las siguientes características en un proyecto utilizando C#:

  • Aplicar los principios S.O.L.I.D en el diseño de software orientado a objetos.
  • Implementar el patrón de diseño Singleton para asegurar una única instancia de una clase en el sistema.
  • Aplicar el patrón de diseño Observer para notificar a los objetos sobre cambios en el estado de otro objeto.

Taller #2

  • Utilizar delegados para crear una funcionalidad personalizada en el sistema.
  • Desarrollar una pequeña aplicación en Unity y en consola que demuestre estos patrones y principios.

Taller #2

Responder las siguientes preguntas teóricas:

  • ¿Qué son los principios SOLID y cómo contribuyen a un buen diseño orientado a objetos?
  • Explica cómo el patrón Singleton asegura que solo haya una instancia de una clase y cuáles son sus posibles usos.

Taller #2

  • ¿Cómo funciona el patrón Observer y en qué situaciones es útil?
  • ¿Qué es un antipatrón? explique por medio de dos ejemplos.

Taller #2

Desarrollar ejercicios prácticos sencillos, similares a los siguientes:

  • Crear una clase `Logger` utilizando el patrón Singleton para registrar mensajes en un archivo de texto.
  • Implementar el patrón Observer en una aplicación que permita a varios objetos observar cambios en un objeto central, como una clase `Subject` que notifica a sus `Observers`.

Taller #2

  • Consulte un código o librería nativo de C# que use el patrón decorador.
  • Definir y utilizar delegados para implementar el patrón observer.

Taller #2

  • Configurar el proyecto para usar otros patrones de diseño. Implementar dos de los siguientes patrones en una aplicación sencilla:
    • Patrón Decorador
    • Patrón Facade
    • Patrón Strategy
    • Patrón Adapter

Taller #2

  • Compartir el código y colaborar en el repositorio de Git.
  • Asignar tareas de programación a cada miembro del equipo.
  • Realizar commits y push de los cambios de manera regular.

Taller #2

  • Mínimo 10 commits por estudiante. Todos los miembros del equipo deben participar subiendo cambios.
  • Crear un proyecto nuevo, con ejemplos básicos donde se prueben los conceptos explorados en el taller.

Taller #2

  • Realice ejemplos cortos, realice su implementación en unity y en c sharp por separado
  • ¿Que diferencias hay en cada implementación del patrón?
  • ¿Qué beneficios existen al usar patrones?
  • Crear una presentación donde se publiquen las evidencias del taller
  • Realizar una exposición con los resultados en clase

Taller #2 - Singleton CorgiEngine

Taller #2 - Referentes

Referentes

Criterios de Evaluación

  • (10%) Asistencia a clase
  • (10%) Diapositivas y exposición en clase
  • (10%) Argumentación individual
  • (10%) Uso del repositorio
  • (20%) Aplicación de los principios SOLID y patrones de diseño
  • (20%) Trabajo en equipo y nuevo grupo
  • (20%) Funcionalidad y claridad del código en C#

Entrega #3 - Proyecto semestre

Entrega #3 - Proyecto semestre

  • Diseño e implementación Nivel 3
  • Ventana de achievements
    • Escena donde se vea los logros entre 5 - 10
    • Cada logro debe tener un estado
    • Si el logro se alcanzó, aparece activado
    • Si el logro no se alcanzó, aparecer bloqueado
    • Botón reiniciar logros en configuración

Entrega #3 - Proyecto semestre

  • Actualización información sobre los achievements en la presentación, incluir título, descripción e imagen de cada logro.
  • Diseño mécanica de cada logro
  • Programación de logros
  • Implementación AI en 3 enemigos, usando el AIBrain, AIAction, AIDecision
  • Diseño Easy, Medium (Diseño, explicación)

Entrega #3 - Proyecto semestre

  • Bonus:
    • Easter egg nivel 3
    • Enemigo con mínimo 5 estados diferentes en su AIBrain
    • Programación de Feedbacks

Criterios de evaluación

  • (10%) Asistencia a clase
  • (10%) Actualización de presentación
  • (20%) Presentación cada estudiante
  • (20%) Programación y configuración logros
  • (20%) Programación AI enemigos 3 en total
  • (20%) Diseño de modo medium y hard

Referentes - AI Brain, AIDecision, AIAction

Referentes - Achievements

Referentes - Vibe Coding Feedback Coding

Referentes - Bosses

Referentes - Bosses

Referentes - Jump Skyward (Proyecto estudiantes)


Juego JumpSkyward UNITY

Entrega #4 - Proyecto semestre

  • Crear ejecutable del juego personalizado
  • Creación gameplay final
  • Programación de tres Feedbacks
    • Sonido (fondo, achiements, boss)
    • Cámara (shaker impacto, ataque...)
    • Animación (ventanas, monedas,...)

Entrega #4 - Proyecto semestre

  • Implementación de 2 funcionalidades no vistas de corgi
    • Tienda/Inventario
    • Habilidades (Volar, nadar...)
    • Recolección de armas
    • Checkpoints
    • ...
  • Implementación modo: Easy, Medium, Hard

Entrega #4 - Proyecto semestre

  • Personalización animaciones del personaje
  • Finalizar decoración nivel
  • Control de ganar/perder

Entrega #4 - Proyecto semestre

  • Programación Boss Final con mínimo 7 estados
    • Sobreescritura de AIAction
    • Sobreescritura de AIDecision
    • Uso de Feedbacks
  • Actualización diapositivas de clase
  • Actualización readme.md
  • Mínimo 20 commits por estudiante

Entrega #4 - Proyecto semestre

  • Bonus:
    • Easter egg nivel 4
    • Nivel secreto (Volar, nadar)
    • Pagina web del proyecto github pages

Criterios de evaluación

  • (10%) Asistencia a clase
  • (10%) Entrega puntual
  • (20%) Implementación Boss
  • (20%) Implementación de dos extras de corgi
  • (20%) Modo: easy, medium y hard
  • (20%) Implementación de feedbacks

Referencias