Que estàs buscant?
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.
E7. Desenvolupar videojocs en llenguatges interpretats per a prototipar la jugabilitat, l'experiència d'usuari i el balanceig.
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.
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.
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.
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
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:
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
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.