Introduzione alla gestione dei dati nei sistemi informativi

Location: 
Aula A4

Negli ultimi anni, i videogiochi hanno senza dubbio conquistato il ruolo di forma d'intrattenimento di massa. Al contrario però di altre forme artisitche e d'intrattenimento, i videogiochi attingono pesantemente dal bagaglio tecnologico e scientifico. La loro evoluzione avanza quindi con lo stesso ritmo dell'evoluzione tecnologica mondiale, come si nota facilmente confrontando un'immagine di un videogioco di 10 anni fa con una di adesso o pensando alle possibilità fantascientifiche di periferiche VR come l'Oculus Rift.

Al di là delle periferiche e dell'aspetto, viene da chiedersi come siano cambiati rispetto a 20 anni fa gli aspetti di un videogioco che non sono visibili, come ad esempio l'intelligenza artificiale (AI) dei personaggi non giocanti (NPC). Paradossalmente, per quanto riguarda l'AI, i giochi si sono evoluti ad un ritmo molto più lento rispetto alla ricerca universitaria e privata.

Prendiamo ad esempio il problema del pathfinding, che è l'insieme di tecniche che permette di far muovere i personaggi non giocanti all'interno di mondi ed ambienti complessi. Il pathfinding è un elemento fondamentale nella stragrande maggioranza dei videogiochi. Ogni volta che un personaggio si muove per più di qualche passo all'interno di un gioco, quel personaggio sta utilizzando qualche algorithmo di pathfinding. Eppure, salvo piccole modifiche e migliorie, gli algoritmi di pathfinding di oggi sono più o meno gli stessi di 20 anni fa. È possibile aumentare le capacità del pathfinding prendendo in comsiderazione anche operazioni più complesse quali decidere un percorso valutando la possibilità che tale percorso sia bloccato, o scegliere un percorso considerando il modo più efficiente di utilizzare gli strumenti sulla mappa (come chiavi, leve o interruttori)?

Nella prima parte, Davide, uno studente di dottorato del DIAG, vi spiegherà come viene eseguito il pathfinding all'interno di un videogioco, quali sono le difficoltà nell'utilizzo di algoritmi differenti e quali sono i tentativi in questa direzione. In particolare vedremo alcuni algoritmi per un pathfinding "potenziato" che includono alla semplice navigazione la ricerca di concetti di più alto-livello (come la gestione dell'inventario).

Nella seconda parte, Francesco vi mostrerà alcune demo che utilizzano queste tecniche più avanzate e vi mostrerà come vengono implementate su game engine commerciali quali Unity3D.