Informació general


Tipus d'assignatura: Obligatòria

Coordinador: Juan José Pons López

Trimestre: Primer trimestre

Crèdits: 4

Professorat: 

Marco Antonio Rodríguez Fernàndez

Curs acadèmic: 2025

Curs d'impartició: 2

Llengües d'impartició


  • Català
  • Castellano

Les classes de l’assignatura es faran principalment en català, tot i que la bibliografia, la documentació i els materials de suport estaran majorment en anglès.

Competències / Resultats d'aprenentatge


Competències específiques
  • E7. Desenvolupar videojocs en llenguatges interpretats per a prototipar la jugabilitat, l'experiència d'usuari i el balanceig.

Competències generals
  • G3. Reunir i interpretar dades rellevants (normalment dins de la seva àrea d'estudi) per emetre judicis que incloguin una reflexió sobre temes rellevants d'índole social, científica o ètica.

  • G5. Desenvolupar les habilitats d'aprenentatge necessàries per emprendre estudis posteriors amb un alt grau d'autonomia.

Competències transversals
  • T2. Treballar com a membre d'un equip interdisciplinari ja sigui com un membre més o realitzant tasques de direcció amb la finalitat de contribuir a desenvolupar projectes amb pragmatisme i sentit de la responsabilitat, assumint compromisos i tenint en compte els recursos disponibles.

Presentació de l'assignatura


Els llenguatges interpretats són àmpliament utilitzats com a recurs en la programació d'aplicacions i videojocs, per la seva gran flexibilitat, versatilitat, senzillesa i eficiència. A l’hora integrats en aplicacions compilades més complexes, proporcionen eines de gran valor com el desenvolupament, execució i depuració interactiva a temps real, estalviant recursos i temps de compilació en l'aplicació (o motor) principal.
En aquesta assignatura introduirem un dels llenguatges interpretats de més ús actualment en la indústria dels videojocs: Lua (www.lua.org).
En tractar-se d'una assignatura de segon curs (on ja s'han cursat tres assignatures prèvies de programació) es dona per fet que l'alumne/a té un coneixement adequat dels fonaments de programació, la programació orientada a objectes i la programació aplicada als videojocs. En aquest sentit, cal destacar que es farà una breu introducció al llenguatge i les seves característiques particulars, per centrar-se de forma ràpida en les aplicacions de la programació mitjançant scripting en entorns de joc. Es molt recomanable que l'alumne/a hagi assolit satisfactòriament els continguts de les assignatures prèvies de programació, per a poder seguir l'assignatura amb normalitat.

L'aula (física o virtual) és un espai segur, lliure d'actituds masclistes, racistes, homòfobes, trànsfobes i discriminatòries, ja sigui cap a l'alumnat o cap al professorat. Confiem que entre totes i tots puguem crear un espai segur on ens puguem equivocar i aprendre sense haver de patir prejudicis d'altres.

 

Continguts


1.- Introducció als llenguatges interpretats
1.1.- Paradigmes i classificació dels llenguatges de programació
1.2.- Llenguatges compilats vs llenguatges interpretats
1.3.- Conceptes bàsics sobre llenguatges interpretats
2.- Programació amb Lua
2.1.- Característiques bàsiques
2.2.- Usos habituals
2.3.- Intèrpret / IDE
2.4.- Modes de desenvolupament
2.5.- Chunks i blocs
2.6.- Regles gramàtiques
2.7.- Regles no escrites i estil de programació
2.8.- Variables locals i variables globals
2.9.- Operadors habituals (aritmètics, relacionals i lògics)
2.10.- Operadors específics (concatenació i mida)
2.11.- Constructors de taules
2.12.- Retorn múltiple
2.13.- Funcions d’ordre superior
2.14.- Arguments variables
2.15.- Metataules i metamètodes
2.16.- Simulació de la programació orientada a objectes
3.- Programació gràfica amb el motor Love2d
3.1.- Esdeveniments
3.2.- Programació gràfica i bucle de joc
3.3.- Màquines d'estat finites (FSM)
4.- Aplicació del scripting a entorns de joc: Modding
4.1.- Fitxers de dades (csv, xml, json).
4.2.- Fitxers de configuració de joc.
4.3.- Integració en aplicacions i motors de joc
4.4.- Anàlisi estructural d'un joc comercial.
4.5.- Ús de Lua i Xml, per a la generació de mods.
5.- Aplicació del scripting a entorns de joc: Incrustació de Lua en el motor Unity3d
5.1.- Integració d'un intèrpret de Lua com a asset.
5.2.- Càrrega en temps d'execució.
5.3.- Interacció amb els objectes de Unity3d

Activitats i sistema d'avaluació


La nota de cada alumne es calcularà seguint els següents percentatges:
A1. Exercici a classe: Taules amb Lua 1.8%
A2. Exercici a classe: Barcode Fighters 1.8%
A3. Exercici a classe: Sprites amb Lua2 1.8%
A4. Exercici a classe: Luathon 2.8%
A5. Exercici a casa: Modding amb Lua 1.8%
A6. Pràctica de laboratori: Sessió introductòria amb l’intèrpret de Lua 5%
A7. Pràctica de laboratori: Programació d’un joc amb Love2d 12%
A8. Pràctica de laboratori: Programació d’un joc estructurat amb Love 12%
A9. Pràctica de laboratori: Integració del scripting en Lua amb un joc realitzar sobre un engine gràfic 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

Consideracions:

  • Cal obtenir una nota superior a 5 al examen final per a poder aprovar l’assignatura.
  • Una activitat no entregada o lliurada amb retard i sense justificació compta com un 0.
  • És responsabilitat de l’alumne evitar el plagi en totes les seves formes. En el cas de detectar plagi, independentment del seu abast, en alguna
  • activitat correspondrà a tenir una nota de 0. A més el professor comunicarà a la cap d’estudis la situació per a que es prenguin mesures aplicables
  • en matèria de règim sancionador.
  • L'assistència a les pràctiques de laboratori es obligatòria.
  • L’examen de recuperació tan sols recupera la nota de teoria.
  • Atesa la naturalesa fonamental d’aquesta assignatura, es requereix a l’estudiant no només que proporcioni solucions a determinats problemes, sinó que sigui capaç de generar-les de manera autònoma, sense cap tipus d’ajuda externa. Per aquest motiu, l’ús d’intel·ligències artificials generatives (IAG) per a la resolució dels problemes plantejats en l’assignatura —ja sigui en exercicis, pràctiques o proves— es contraproduent, queda estrictament prohibit i serà considerat un cas de frau per plagi. En aquest sentit, no es permet l’ús d’IAG per a generar codi de programació, ni tan sols en forma de fragments, encara que aquest codi sigui posteriorment modificat o personalitzat.

Qualsevol forma de frau acadèmic serà sancionada d’acord amb la normativa d’avaluació del centre. En cas que es detectin indicis de frau, inclòs l’ús indegut d’eines d’intel·ligència artificial generativa, el professorat de l’assignatura podrà convocar l’estudiant a una entrevista individual amb l’objectiu de verificar-ne l’autoria.

Bibliografia


Bàsic

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

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

Complementària

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