Informació general


Tipus d'assignatura: Obligatòria

Coordinador: Juan José Pons López

Trimestre: Primer trimestre

Crèdits: 6

Professorat: 

Marco Antonio Rodríguez Fernàndez

Idiomes 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


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.

Descripció


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.

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

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ó (citació judicial o assumpte mèdic) 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.

Bibliografia


Bàsic

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

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

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

Complementary

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

 

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