pdf (it, 41 KB, 9/21/09) - Dipartimento di Informatica

Transcript

pdf (it, 41 KB, 9/21/09) - Dipartimento di Informatica
COMPUTER GAME DEVELOPMENT
Livello: I
CFU: 64
Direttore del corso
Andrea Fusiello (P.A.) Facoltà di Scienze MM. FF. NN. – Dipartimento di Informatica- Università di Verona
Comitato Scientifico
Andrea Fusiello (UniVR)
Matteo Cristani (UniVR)
Luca Viganò (UniVR)
Umberto Castellani (UniVR)
Paola Cesari (UniVR)
Paolo Giacomello (Idoru Srl)
Obiettivi formativi specifici
Il Master in Computer Game Development corso si rivolge a laureati in Informatica o Ingegneria Informatica
-- dunque con buone abilità di programmazione -- e si propone di formare programmatori di applicazioni
videoludiche (videogame) ed multimediali interattive.
Il corso è progettato per fornire nozioni legate alla realizzazione di videogiochi, con un approccio pratico,
includendo corsi con professionisti provenienti dall'industria dello sviluppo vero e proprio.
L’enorme sviluppo dei videogiochi trova sicuramente il suo elemento qualificante nelle tecniche di resa
grafica al calcolatore, sostenute dalla crescente potenza di calcolo messa a disposizione dalle unità di
elaborazione grafica (GPU). Il livello di realismo sempre più elevato non è però solo visivo ma coinvolge
anche la riproduzione sempre più fedele dei movimenti umani, la simulazione precisa della realtà fisica, e la
crescente immersività della interazione – si pensi al caso Nintendo WII. Inoltre i comportamenti naturali
esibiti dai personaggi che popolano il gioco (oltre al giocatore) sono frutto di esperienze maturate nel campo
dell'intelligenza artificiale. Da questa breve introduzione si intuisce come la progettazione e la
programmazione dei videogiochi sia un’attività inerentemente multidisciplinare, che tocca diverse aree
dell’informatica (programmazione, ingegneria del software, grafica, elaborazione dei suoni, interazione
uomo-macchina, intelligenza artificiale), richiede solide basi in discipline matematiche e fisiche ed ha
connessioni con la biomeccanica e le scienze umane (narrativa, psicologia).
Un primo modulo di corsi -- di stampo academico -- introduce alcune competenze irrinunciabili in Grafica,
Intelligenza Artificialer, Ingegeria del Software e Interazione Utente-Calcolatore. Il secondo modulo -- di
stampo maggiormente applicativo e legato allo sviluppo -- esamina le diverse specifiche competenze che
entrano in gioco nella programmazione di un videogioco, quali Grafica, Suoni, Fisica (simulazione), Reti
(giochi in rete), Intelligenza Artificiale, strumenti per lo sviluppo e linguaggi di alto livello. Un terzo
modulo introduce nozioni sull'architettura di un motore di gioco (game engine) e sulla progettazione di un
videogioco.
Sono previste attività di laboratorio (dove gli studenti svilupperanno un videogioco vero e proprio) e stage in
aziende del settore.
Funzioni occupazionali
Il master ha l'obiettivo di formare sviluppatori di videogiochi e/o applicazioni multimediali avanzate,
focalizzandosi sulle tecnologie più recenti e con una particolare attenzione alle problematiche di lavoro in
team. Sbocchi professionali:
- Sviluppo Videogiochi
- Sviluppo Applicazioni Multimediali
- Sviluppo Applicazioni Interattive Avanzate
Progetto generale di articolazione delle attività formative
Il Master è strutturato in 1600 ore di cui:
1
- 298 di didattica frontale;
- 150 di stage;
- 50 di altre forme di addestramento – laboratorio, studio guidato, didattica interattiva o altro;
- e le rimanenti ore in attività di studio individuale.
Le lezioni in aula si terranno nei giorni di:
• venerdi e sabato (mattina)
Scheda didattica del Master:
SSD
Insegnamento
CFU
Ore
Fundamentals of Computer Graphics
4
24
INF/01 ING-INF/05
Fundamentals of Artificial Intelligence
4
24
INF/01 ING-INF/05
Fundamentals of Software Engineering
4
24
INF/01 ING-INF/05
Fundamentals of Interaction Design
4
24
INF/01 ING-INF/05
Sound Programming
4
24
INF/01 ING-INF/05
AI Programming
2
12
INF/01 ING-INF/05
Physics Programming
4
24
INF/01 ING-INF/05
Network Programming
4
24
INF/01 ING-INF/05
Graphics Programming
4
24
INF/01 ING-INF/05
High-level Programming (XNA)
2
12
INF/01 ING-INF/05
Tools Programming
4
24
Modulo 3
INF/01 ING-INF/05
Elements of Game Design
4
24
I INF/01 ING-INF/05
Game Engine Architecture
4
24
Modulo 4
M-EDF/01
MoCap Laboratory
1
10
INF/01 INF-INF/05
Programming Laboratory
5
50
Stage in azienda
6
150
Prova finale
4
100
64
578
Modulo 1
INF/01 ING-INF/05
CFU totali per
modulo
16
Modulo 2
24
8
Laboratorio
6
TOTALE
Sillabo:
Fundamentals of Computer Graphics.
L’insegnamento fornisce una panoramica sui fondamenti della Computer Graphics interattiva, con
particolare attenzione alla tipica pipeline di rasterizzazione OpenGL-like. Verranno trattati i seguenti
argomenti: Vector and matrix math. Algorithms and data structures. Rendering paradigms. Illumination
models. The rasterization pipeline. Geometric processing. Hidden surface removal. Scan-conversion.
2
Fundamentals of Artificial Intelligence
A.I. Methods: algorithms and complexity. Search: rational agents, toy-problems, path finding. Informed
search: heuristics, Algoritmi genetici, tecniche anytime, A*, SMA* algorithms. Adversary search: minimax,
strategy computation. Planning: block world, planning by search. Probabilità di base. Decisioni in situazione
di incertezza – tecniche bayesiane, algoritmo di Pareto . Reti neurali . Vaghezza e logica fuzzy.
Fundamentals of Software Engineering
L’insegnamento fornisce una panoramica sui principi scientifici e professionali di base della Ingegneria del
Software, con particolare attenzione alle diverse fasi della progettazione e realizzazione di sistemi software
complessi su larga scala ("in the large"): pianificazione, progettazione, modellazione e specifica,
implementazione, collaudo e verifica, valutazione, manutenzione.
Fundamentals of Interaction Design
L'insegnamento fornisce una panoramica sulle tecniche di design, realizzazione e valutazione di paradigmi di
interazione, principalmente di tipo grafiche o visuali. In particolare verranno analizzate le basi
dell’interazione vera e propria in termini di fattori umani, modello utente, stili di interazione e usabilità.
Verranno inoltre introdotti paradigmi di interazione ("perceptual interfaces") nei quali il calcolatore
percepisce (tramite sensori visivi, magnetici etc...) i movimenti e l'intenzione dell'utente.
Sound Programming
Il suono è fondamentale nella realizzazione di sistemi multimediali. Il corso intende fornire un set minimo di
basi e di metodologie per la sintesi e l'elaborazione dei suoni. Dopo una breve introduzione alla
psicoacustica, verranno presentate alcune tecniche, pratiche, componenti, ed esempi di utilizzo del suono nei
sistemi d'interfaccia uomo-macchina e nei videogame. Con riferimento a questi ultimi, verranno trattati i
seguenti argomenti: l'audio nel ciclo di produzione di un videogame, categorie di suoni, formati audio e
compressione (wav, mp3, ogg); suoni in streaming, suoni in ram; categorie di SFX: one shot, loop; suoni 3D;
formati per la musica: MIDI vs wav vs XM\MOD; SFX: animazione, codice, evento.
AI programming
Introduzione. Inseguimento e fuga. Movimento basato su pattern. Flocking. AI scriptata e motori di script.
Finite State Machines. AI basata su regole.
Physics programming
Obiettivo del corso di Game Physics è quello di fornire le conoscenze di base per comprendere ed affrontare
le problematiche relative allo sviluppo di simulazioni fisiche all'interno dei videogames. Il corso prevede un
primo modulo nel quale verranno richiamati concetti base di matematica e fisica, cinematica e dinamica delle
particelle e dei corpi rigidi, rotazioni 3D e quaternioni. A suddette basi teoriche segue la trattazione riguardo
l'utilizzo di tali concetti all'interno del software, le architetture comunemente utilizzate e l'integrazione
numerica delle equazioni determinate nel proprio modello, con particolare attenzione ai sistemi mollasmorzatore. Il corso si conclude con un terzo ed ultimo modulo inerente tematiche più avanzate, come la
determinazione e la gestione delle collisioni, la dinamica dei veicoli ed i corpi deformabili, con esempi
pratici riguardanti soluzioni adottate correntemente in giochi tripla A.
Network programming
L'insegnamento fornisce una panoramica sulle problematiche relative allo sviluppo di modalità di gioco
Multiplayer. Il corso affronterà in una prima fase le problematiche di basso livello: Socket, UDP, TCP,
protocolli custom con servizi TCP on demand. Successivamente si affronteranno le problematiche di Match
Making, front-end e back-end. Creazione di sessioni di gioco, reporting di statistiche, VOIP, gestione di AI e
spettatori. Cenni sulle Tecnichal Requirement Certification (TRC) specifiche delle varie piattaforme di
sviluppo. Nel terzo, e più sostanzioso, modulo si affronteranno problemi "game-dependent" di gestione e dati
di gioco, data integration, data estimation, latency avoiding, dead reckoning, bandwidth management, con
esempi concreti nell'ambito di racing games. Eventualmente cenni sulle problematiche associate ai Massive
Multiplayer Game.
High-level programming
3
L’obiettivo è illustrare strumenti di programmazione ad alto livello tipicamente impiegati nello sviluppo di
videogame, come ad esempio XNA di Microsoft.
Graphics programming
Il corso si propone di fornire, attraverso l'uso avanzato di XNA, una panoramica sulle potenzialità delle
architetture a shader programmabili, mediante la realizzazione di texturing avanzato, gestione
dell'ombreggiatura e applicazione di filtri real-time e post-processing. Verranno inoltre introdotti gli
strumenti principali utilizzati nella stesura (NVidia FXComposer), nel profiling e nel debugging (Pix) di
shader in linguaggio HLSL.
Tools programming
Obiettivo del corso è focalizzare l'attenzione sull'importanza dei tools nel ciclo di sviluppo di un videogioco.
Partendo dalla conoscenza approfondita dell'ambiente di sviluppo utilizzato dai programmatori fino alla
scelta e/o realizzazione dei molti tools indispensabili al lavoro di grafici, musicisti e designer. Nello specifico
verranno sottolineate le scelte da compiere nella realizzazione di tools da usare all'interno del team di
sviluppo, con cenni su usabilità dell'interfaccia, portabilità, affidabilità e manutenibilità. Sarà altresì eseguita
una panoramica sui principali linguaggi di programmazione più indicati nella realizzazione di tools.
Elements of game design
Obiettivo di questo corso è di esplorare le tematiche del game design. Prevede una breve overview
dell'attuale scenario dei videogiochi, evidenziando le classificazioni e le meccaniche dei principali
filoni.Significato del videogioco; design; interattività; regole e game design patterns; analisi di un documento
di design.
Game engine architecture
Obiettivo del corso è quello di focalizzare l'attenzione sui passi da compiere nello sviluppo di un videogioco
completo. Le scelte implementative non possono prescindere da attente analisi sul livello di specializzazione,
manutenibilità, portabilità e efficenza del software. Particolare attenzione verrà posta nella strutturazione del
codice, nella condivisione delle scelte e nello sfruttamento ottimale delle risorse a disposizione.
MoCap Laboratory.
In questo modulo di solo laboratorio lo studente farà esperienza con un sistema commerciale di motion
capture (Vicon) assistendo e partecipando ad una sessione di acquisizione comprendente le fasi di
preparazione.
Programming laboratory
In questo laboratorion integrato vengono raccolte le attività di laboratorio relative ai corsi del modulo 2
("programming").
Percentuale di frequenza obbligatoria:
70%
Periodo di svolgimento
La didattica del Master si svolge da ottobre 2009 (settimana 41) a luglio 2010 (settimana 28). Il Master
termina a ottobre 2010. Si prevedono 12 ore settimanali di didattica frontale e laboratorio, 8 il venerdi e 4 il
sabato mattina.
Modalità di svolgimento delle verifiche periodiche e della prova o prove finali.
Verranno effettuate verifiche al termine di ciascun modulo, consistenti in un test scritto o orale, oppure nella
consegna di un elaborato per le attività di laboratorio.
La prova finale consiste nella discussione di un elaborato.
Posti disponibili
Il Master prevede un numero minimo di 10 iscritti per essere attivato ed un numero massimo di 15. Il numero
massimo può essere ridefinito -- prima della partenza del Master -- a fronte di una maggiore disponibilità
di posti di stage.
4
Requisiti di accesso
Laurea (vecchio ordinamento) in Scienze dell’Informazione, Informatica, Ingegneria Informatica oppure
Laurea (post-riforma) in classe 26 (scienze e tecnologie informatiche), 9 (ingegneria dell'informazione)
Uditori
Gli uditori possono frequentare tutte le lezioni ma non svolgono lo stage aziendale. Essi non sostengono le
verifiche intermedie né la prova finale. Sono tenuti al pagamento di un contributo di iscrizione di € 3.000,00.
Modalità di ammissione
I candidati verranno selezionati sulla base del curriculum vitae et studiorum e di un colloquio. Verranno
valutati i seguenti elementi (punteggio totale = 60):
1. Voto di Laurea (10 punti)
2. Attinenza della tesi di Laurea con le tematiche del Master (10 punti)
3. Portfolio (5 punti)
4. Presenza nel curriculum studiorum di corsi universitari attinenti alle tematiche del master (5 punti)
5. Colloquio motivazionale (20 punti)
6. Conoscenza lingua inglese (5 punti)
7. Altri titoli (5 punti).
Scadenze
Termine ultimo presentazione domande: 4 ottobre 2009
Selezione: 13 ottobre 2009
Pubblicazione graduatoria: 13 ottobre 2009
La scadenza per il pagamento dell’iscrizione e la data di inizio corso verranno pubblicate con apposito
avviso sul sito web del master.
Tassa di iscrizione e contributo d’iscrizione:
€ 4.150,00.
Eventuali agevolazioni previste per i partecipanti meritevoli
Da stabilire compatibilmente con il bilancio.
Enti e/o soggetti esterni disposti a collaborare a vario titolo allo svolgimento del corso
Idoru S.r.l. Padova
Impressionware S.r.l. Torino
Virtual Identity S.r.l. Milano
Ubisoft Italia S.p.a
Milestone S.r.l. Milano
FrameStudios S.r.l. Longarone (BL)
Tutori
Non sono previsti.
Sede di svolgimento delle attività
Facoltà di Scienze MM FF NN, Strada Le Grazie, 15 - 37134 Verona
Sede amministrativa/organizzativa del corso
Dipartimento di Informatica, Strada Le Grazie, 15 - 37134 Verona
tel 045 802 7069 fax 045 802 7068
e-mail: [email protected]
Informazioni
Area Post Lauream, Ufficio Master e Corsi di Perfezionamento
Via Paradiso, 6 – 37129 Verona Tel. 045 8425216/5244 - fax. 045 8425217
e-mail: [email protected] (per informazioni di tipo amministrativo).
Dipartimento di Informatica, Strada Le Grazie, 15 - 37134 Verona
tel 045 802 7069 fax 045 802 7068
e-mail: [email protected] (per informazioni sulla didattica).
5