Información general


Tipo de asignatura: obligatoria

Coordinador: Juan José Pons López

trimestre: Primer trimestre

Créditos: 4

Profesorado: 

Marco Antonio Rodríguez Fernández

Curso académico: 2025

Curso de impartición: 2

Lenguas de impartición


  • Catalá
  • Castellano

Las clases de la asignatura se realizarán principalmente en catalán, aunque la bibliografía, la documentación y los materiales de apoyo estarán mayormente en inglés.

Competencias / Resultados de aprendizaje


Competencias específicas
  • E7. Desarrollar videojuegos en lenguajes interpretados para prototipar la jugabilidad, la experiencia de usuario y el balanceo.

Competencias generales
  • G3. Reunir e interpretar datos relevantes (normalmente dentro de su área de estudio) para emitir juicios que incluyan una reflexión sobre temas relevantes de índole social, científica o ética.

  • G5. Desarrollar las habilidades de aprendizaje necesarias para acometer estudios posteriores con un alto grado de autonomía.

competencias transversales
  • T2. Trabajar como miembro de un equipo interdisciplinario ya sea como un miembro más o realizando tareas de dirección con el fin de contribuir a desarrollar proyectos con pragmatismo y sentido de la responsabilidad, asumiendo compromisos y teniendo en cuenta los recursos disponibles.

Presentación de la asignatura


Los lenguajes interpretados son ampliamente utilizados como recurso en la programación de aplicaciones y videojuegos, debido a su gran flexibilidad, versatilidad, sencillez y eficiencia. A su vez integrados en aplicaciones compiladas más complejas, proporcionan herramientas de gran valor como el desarrollo, ejecución y depuración interactiva a tiempo real, ahorrando recursos y tiempo de compilación en la aplicación (o motor) principal.
En esta asignatura introduciremos uno de los lenguajes interpretados de más uso actualmente en la industria de los videojuegos: Lua (www.lua.org).
Al tratarse de una asignatura de segundo curso (donde ya se han cursado tres asignaturas previas de programación) se da por seguro que el alumno/a tiene un conocimiento adecuado de los fundamentos de programación, la programación orientada a objetos y la programación aplicada a los videojuegos. En este sentido, cabe destacar que se realizará una breve introducción al lenguaje y sus características particulares, para centrarse de forma rápida en las aplicaciones de la programación mediante scripting en entornos de juego. Es muy recomendable que el alumno/a haya alcanzado satisfactoriamente los contenidos de las asignaturas previas de programación, para poder seguir con normalidad la asignatura.

El aula (física o virtual) es un espacio seguro, libre de actitudes machistas, racistas, homófobas, transfobas y discriminatorias, ya sea hacia el alumnado o hacia el profesorado. Confiamos en que entre todas y todos podamos crear un espacio seguro donde podamos equivocarnos y aprender sin tener que sufrir prejuicios de otros.

 

Contenidos


1.- Introducción a los lenguajes interpretados
1.1.- Paradigmas y clasificación de los lenguajes de programación
1.2.- Lenguajes compilados vs lenguajes interpretados
1.3.- Conceptos básicos sobre lenguajes interpretados
2.- Programación con Lua
2.1.- Características básicas
2.2.- Usos habituales
2.3.- Intérprete / IDE
2.4.- Modos de desarrollo
2.5.- Chunks y blogs
2.6.- Reglas gramáticas
2.7.- Reglas no escritas y estilo de programación
2.8.- Variables locales y variables globales
2.9.- Operadores habituales (aritméticos, relacionales y lógicos)
2.10.- Operadores específicos (concatenación y tamaño)
2.11.- Constructores de tablas
2.12.- Retorno múltiple
2.13.- Funciones de orden superior
2.14.- Argumentos variables
2.15.- Metataulas y metamétodos
2.16.- Simulación de la programación orientada a objetos
3.- Programación gráfica con el motor Love2d
3.1.- Eventos
3.2.- Programación gráfica y bucle de juego
3.3.- Máquinas de estado finitas (FSM)
4.- Aplicación del scripting en entornos de juego: Modding
4.1.- Archivos de datos (csv, xml, json).
4.2.- Archivos de configuración de juego.
4.3.- Integración en aplicaciones y motores de juego
4.4.- Análisis estructural de un juego comercial.
4.5.- Uso de Lua y Xml, para la generación de mods.
5.- Aplicación del scripting en entornos de juego: Incrustación de Lua en el motor Unity3d
5.1.- Integración de un intérprete de Lua como siete.
5.2.- Carga en tiempo de ejecución.
5.3.- Interacción con los objetos de Unity3d

Actividades y sistema de evaluación


La nota de cada alumno se calculará siguiendo los siguientes porcentajes:
A1. Ejercicio en clase: Tablas con Lua 1.8%
A2. Ejercicio en clase: Barcode Fighters 1.8%
A3. Ejercicio en clase: Sprites con Lua2 1.8%
A4. Ejercicio en clase: Luathon 2.8%
A5. Ejercicio en casa: Modding con Lua 1.8%
A6. Práctica de laboratorio: Sesión introductoria con el intérprete de Lua 5%
A7. Práctica de laboratorio: Programación de un juego con Love2d 12%
A8. Práctica de laboratorio: Programación de un juego estructurado con Love 12%
A9. Práctica de laboratorio: Integración del scripting en Lua con un juego realizar sobre un engine gráfico 11%
A10. Examen Final 50%
Nota final = A1 0,018 + A2 0,018 + A3 0,018 + A4 0,028 + A5 0,018 + A7 0,05 + A8 0,12 + A9 0,12 + A10 0,11 + A10 0,5

Consideraciones:

  • Es necesario obtener una nota superior a 5 en el examen final para poder aprobar la asignatura.
  • Una actividad no entregada o librada con retraso y sin justificación cuenta como un 0.
  • Es responsabilidad del alumno evitar el plagio en todas sus formas. En el caso de detectar plagio, independientemente de su alcance, en alguna
  • actividad corresponderá a tener una nota de 0. Además el profesor comunicará a la jefa de estudios la situación para que se tomen medidas aplicables
  • en materia de régimen sancionador.
  • La asistencia a las prácticas de laboratorio es obligatoria.
  • El examen de recuperación sólo recupera la nota de teoría.
  • Dada la naturaleza fundamental de esta asignatura, se requiere al estudiante no sólo que proporcione soluciones a determinados problemas, sino que sea capaz de generarlas de forma autónoma, sin ningún tipo de ayuda externa. Por este motivo, el uso de inteligencias artificiales generativas (IAG) para la resolución de los problemas planteados en la asignatura -ya sea en ejercicios, prácticas o pruebas- es contraproducente, queda estrictamente prohibido y será considerado un caso de fraude por plagio. En este sentido, no se permite el uso de IAG para generar código de programación, ni siquiera en forma de fragmentos, aunque éste sea posteriormente modificado o personalizado.

Cualquier forma de fraude académico será sancionada de acuerdo a la normativa de evaluación del centro. En caso de que se detecten indicios de fraude, incluido el uso indebido de herramientas de inteligencia artificial generativa, el profesorado de la asignatura podrá convocar al estudiante a una entrevista individual con el objetivo de verificar su autoría.

Bibliografía


Básico

Ierusalimschy, R., De Figueiredo, LH, & Celes, W. (2006). Lua 5.1 reference manual. Lua. org.

W3Schools. (nd). XML tutorial. Retrieved from https://www.w3schools.com/xml/default.asp

Complementaria

Paxton, D. (2013) Modder's guide to Civ5