Información general


Tipo de asignatura: obligatoria

Coordinador: Juan José Pons López

trimestre: Primer trimestre

Créditos: 6

Profesorado: 

Marco Antonio Rodríguez Fernández

Curso académico: 2024

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 hecho 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 hará 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.

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 un 1.8%

A2. Ejercicio en clase: Barcode Fighters un 1.8%

A3. Ejercicio en clase: Sprites con Lua2 un 1.8%

A4. Ejercicio en clase: Luathon un 2.8%

A5. Ejercicio en casa: Modding con Lua un 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 un 12%

A8. Práctica de laboratorio: Programación de un juego estructurado con Love un 12%

A9. Práctica de laboratorio: Integración del scripting en Lua con un juego realizar sobre un engine gráfico un 11%

A10. examen Final un 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 entregada con retraso y sin justificación (citación judicial o asunto médico) cuenta como un 0.
  • Es responsabilidad del alumno evitar el plagio en todas sus formas. En 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.

Bibliografía


Básico

Kasuba Mario. (2015). Lua game development cookbook. Packt Publishing

Lerusalimschy Roberto, De Figueiredo Luis Henrique & Celes Waldemar (2006). Lua 5.1 reference manual. Lua.org

Lerusalimschy Roberto. (2006). Programming in lua. Roberto Ierusalimschy.

Complementaria

Paxton Derek (2016). Mooder's guide to Civilization V. Recuperado de https://forums.civfanatics.com/resources/modders-guide-to-civilization-v.23669/

 

Young David (2014). Learning game AI programming with Lua. Packt Publishing Ltd.