Vivere una Vita Alternativa dentro un Ambiente Sintetico
Transcript
Vivere una Vita Alternativa dentro un Ambiente Sintetico
Ambienti Virtuali e Giochi Vivere una Vita Alternativa dentro un Ambiente Sintetico Stefano Cacciaguerra ([email protected]) 1 Contenuti Introduzione Esempi Caratteristiche Come Programmarli Come Gestire la Partecipazione in essi 2 Introduzione 2500 a.c. Nella città sumera di Ur nasce il Gioco Reale di Ur. Il primo gioco da tavolo in cui il giocatore è rappresentato da una pedina. 1664 d.c. Un certo C. Weikmann inventa Konigsspiel il gioco del re. Un esercito di 30 figurine preso dagli scacchi e antenate dei soldatini per ciascuno dei 14 diversi ruoli di combattimento simulando le lotte del potere dell’epoca. 1865 d.c. L. Carroll scrive Alice nel Paese delle Meraviglie. Prende forma l’idea di un viaggio paradossale nei territori della fantasia. 1969 d.c. Per facilitare la comunicazione tra poli universitari in america R. Talyor dell’agenzia Arpa collega 4 calcolatori di università differenti. Arpanet sarà la madre di Internet. 1972 d.c. D. Arneson e G. Gygax creano il primo sistema di regole per Dungeons&Dragons. Il primo gioco di ruolo moderno. 3 Introduzione 1978 d.c. Nell’Università di Essex, in Inghilterra, fa la comparsa il primo Multi-User Dungeon (MUD), ideato da R. Trubshaw. È ancora un gioco fatto di solo testo che permette agli utilizzatori di spostarsi in zone virtuale diverse e di dialogare tra loro. 1997 d.c. I Mondi Virtuali ed i Massive Multiplayer Online Role Play Games (MMORPG) diventano popolari negli USA. Il più famoso è Ultima Online di R. Garriot, una simulazione della vita medioevale in 3D. Il gioco conta 160.000 abbonati. 2005 d.c. World of Warcraft, un mondo virtuale di ambientazione fantasy ispirato ad un saga di Massive Multiplayer Online Real time Strategy games (MMORTS) totalizza 5 milioni di abbonati. Tratto dall’articolo Vite Parallele apparso sul mensile Quark, marzo 2006. 4 Domande Perché uno studente australiano di 24 anni dovrebbe comprare un’isola che non c’è per 26500 dollari sul pianeta entropia? Chi comprerebbe un paio di nike o di levi’s 501 per la propria controparte artificiale? Chi ucciderebbe (per davvero) un concorrente rivale dopo che ti ha rubato la preziosa spada magica? Domande assurde, eppure trovano la stessa risposta! Un partecipante ad un Ambiente Virtuale 5 Gli AV Costituiscono una Realtà Gli Ambienti Virtuali (AV) stanno entrando prepotentemente nelle nostre vite tanto da costituire una seconda chance per molti umani. Gli AV hanno un’economia, un governo, una valuta. Migliaia di Abitanti vi ci nascono e vi ci muoiono. Sono mondi di fantasia accessibili via web. World of Warcraft Oltre 5 milioni di abbonati Project Entropia Turnover di 16.350.000 dollari in gennaio 2005 Second Life Centinaia di negozi dalla Ferrari all’i-Pod 66 Ambienti Virtuali Ambiente virtuale (AV) è il termine utilizzato per indicare una realtà simulata creata attraverso l’uso del computer. Attualmente, il termine è utilizzato per la rappresentazione virtuale di un sistema complesso: dai videogiochi ai simulatori di volo. Alcune delle caratteristiche principali degli ambienti virtuali sono: di sfruttare una rappresentazione sensoriale talmente immersiva da essere percepita come reale dai partecipanti, di supportare le azioni di più utenti contemporaneamente e la formazione di gruppi, di permettere l’interazione con entità sintetiche intelligenti, di usufruire di dispositivi embedded come PDA e SmartPhone od oggetti ad hoc come casco od occhialini, auricolari, cyberglove e cybertuta. 7 Rappresentazione Sensoriale Realistica Un AV deve dare al partecipante la sensazione di essere inserito all’interno di un ambiente talmente immersivo da permettergli di sviluppare abilità che potrebbe sfruttare nel mondo reale. Esempio eclatante: Simulatore di Volo. Problema il livello di dettaglio costa sia in termini computazionali sia in termini di memoria utilizzata! Negli AV è importante sviluppare solo i dettagli che sono fondamentali per la realizzazione della simulazione. Esempio eclatante: Gara di automobili. È interessante la realizzazione del circuito, non dello sfondo (platea, box, …) 8 Ambiguità Attenzione all’ambiguità della parola realistica. Non è legata al fatto che l’ambiente riprodotto ne deve per forza richiamare uno esistente. Possono esistere degli ambienti virtuali che vogliono promuoverne una supposta o riprodurre una realtà fantastica . Ad esempio, si cambiano le leggi della fisica da quella terrestre a quella lunare. Ad esempio, mondi fantastici come EverQuest II. 9 Graphical Processor Unit Cmq le moderne schede video montano micro processori e buffer di memoria dedicati che permettono alla scheda grafica di sostituire nei calcoli la CPU. Questo effetto è talmente rilevante che le schede video sono definite GPU (Graphical Processor Unit). Ad esempio Nvidia ed ATI. In questo senso, risulta possibile utilizzare una grafica spinta: 10 Massive Multi-Player La realizzazione di un gioco in modalità multi-player dipende dalla gestione di 2 fattori principali: Responsiveness gli eventi che descrivono l’evoluzione del gioco devono essere ricevuti dagli utenti in tempo reale (vincoli real-time). Reliability and Game Consistency L’evoluzione del gioco deve essere descritta a tutti i partecipanti nello stesso modo preciso e Corretto ( tutti i giocatori adottano una strategia in base allo stesso contenuto informativo). 11 Dispositivi Mobili e Reti Wireless Dispositivi Mobili come PDA e Smart-phone dispongono di sufficiente potenza computazionale ed un’antenna che gli permettono di partecipare ad AV. Altri dispositivi dedicati: Sony PSP, Nintendo Dual Screen e Nokia ‘ngage Due tipi di rete: La rete cellulare di 3G garantisce la disponibilità di connettività su ampio raggio ma con transmission throughput limitato. Le reti Wi-Fi, Bluetooth e HomeRF offrono una bandwidth maggiore ma dentro un raggio limitato. 12 Interazione a Gruppi Molte volte gli AV promuovano la formazione di team per risolvere un problema comune. Ad esempio, in Travian le alleanza proteggono i propri membri. Gli AV promuovono la nascita di comunità virtuali: gruppo di persone che utilizzano la stessa tecnologia via Internet per attività sociali. la creazione di vere e proprie società artificiali. Ad esempio, in Travian, ogni partecipante deve competere con migliaia di altri giocatori per il controllo delle risorse naturali e gestire l’evoluzione di un piccolo villaggio. 13 Interazione con Entità Intelligenti Gli AV moderni necessitano di un largo numero di partecipanti che spendono il loro tempo nella creazione e nel mantenimento di relazioni sociali per un lungo periodo. Una possibile soluzione per popolare gli AV è realizzare entità autonome ed intelligenti in grado di competere e cooperare con i partecipanti umani. Dovrebbe essere indistinguibile il comportamento di un’entità software da quello di un umano (passare un Turing Test cooperativo). Per raggiungere questo scopo esistono due possibili approcci: dotare l’entità di una conoscenza più approfondita dell’ambiente (Reinforcement Learning) permettere ad un’entità di analizzare il comportamento di un umano e cercare di riprodurlo (Machine Learning) 14 Interazione con Entità Intelligenti Neuro-Evolving Robotic Operatives (NERO): un progetto di ricerca in collaborazione tra il Department of Computer Sciences and the Digital Media Collaboratory at the University of Texas at Austin. Utilizza un algoritmo real-time di NeuroEvolution of Augmenting Topologies. Per giocare ogni partecipante deve evolvere il proprio esercito di robot cercando di insegnargli come comportarsi in alcune situazioni. Questo è possibile facendo il tuning del cervello artificiale dei robot. 15 Reale-Virtuale-Reale Esistono dispositivi pervasivi che permettono di aumentare l’esperienza sensoriale all’interno di un AV (Realtà Virtuale): Casco permette la visione stereoscopica ed un effetto sonoro immersivo Cyberglove e Cybertuta permettono la sensazione tattile Real Tournament Ogni partecipante usa un dispositivo che integra tecnologie GPS, sensori, Wi-Fi, GPRS, su un PDA per competere alla cattura di una serie di mostri in una arena virtuale mappata sulla città di Lancaster. 16 Realizzare un AV tramite SPADES SPADES (System for Parallel Agent Discrete Agent Simulation) è un sistema middleware per simulazioni multi-agenti distribuite. Permette di realizzare un AV all’interno del quale vivono entità artificiali pensanti chiamate agenti. Promuove la creazione di simulazioni ripetibili ed efficienti distribuite tra più computer. Un agente riceve delle sensazioni dal mondo simulato, pensa ad una strategia per raggiungere il suo scopo, attua una mossa. Il modello del mondo simulato riproduce la leggi del sistema complesso riprodotto, spedendo sensazioni agli agenti e attuando le loro azioni. 17 La Architettura di SPADES CLIENT Computer 1 Agent pipe SERVER Communication Server Simulation Engine World Model Computer A Computer 2 Agent Computer N tcp/ip pipe Communication Server pipe Communication Server Agent 18 Ciclo del World Model #include …. … main(….) { inizialize(); pauseModeCallback (); getMonitorHeaderInfo (); agentConnect (AgentID agent, AgentTypeDB::AgentTypeConstIterator at); while (!fine_simulazione) { simToTime (SimTime time_curr, SimTime time_desired); getMonitorInfo (SimTime time); controllo_stato_della_simulazione(); } finalize(); } 19 World Model bool BallWorldModel::initialize (SimEngine * pSE) Permette di inizializzare l’evoluzione del World Model. bool BallWorldModel::finalize () Permette di gestire la chiusura dell’evoluzione del World Model. void BallWorldModel::pauseModeCallback () Quando il sistema SPADES si attiva la simulazione viene bloccata in attesa della connessione di tutti i componenti. bool BallWorldModel::agentConnect (AgentID agent, AgentTypeDB::AgentTypeConstIterator at) Si occupa dell’inizializzazione del communication server e degli agenti spades::SimTime BallWorldModel::simToTime (SimTime time_curr, SimTime time_desired) Ogni volta che il world model deve aggiornare l’evoluzione del mondo richiama questa metodo che setta il tempo attuale a quello desiderato. All’interno di questa chiamata risulta possibile controllare quello che sta accadendo nel mondo controllando le azioni degli agenti e inviando le nuove sensazioni. 20 World Model: Monitor Interface Monitor Interface: Componente del SE che permette di estrarre informazioni sullo stato del mondo Simulation Engine World Model M.I. tcp/ip spades::DataArray BallWorldModel::getMonitorHeaderInfo () Permette di esportare all’esterno della simulazione informazioni sul suo andamento. In particolare, questa permette di scrivere un header per le informazioni successive. spades::DataArray BallWorldModel::getMonitorInfo (SimTime time) Come sopra solo che si occupa di spedire le informazioni. 21 Agenti #include …. … main(….) { processInitSense(…); switch (aType){ case 0: pAgentBehavior = new BuildingBehavior(…); break; case 1: pAgentBehavior = new CarBehavior(…); break; case n: … break; } while (! done) { pacs_interface->receiveMessage(); pAgentBehavior->processMessage(m) } } 22 Agenti BallWorldAgentBehavior::processInitSense(…parametri..) Ritorna la initSense che è il messaggio di inizializzazione di un agente, ritorna il contenuto attraverso diversi parametri (prodotta generalmente dall’agentConnect). CarBehavior(…parametri..) o BuildingBehavior(…parametri..) Attivano agenti di tipo Car o di tipo Building. FromCSMessage* pacs_interface->receiveMessage() Si occupa di gestire l’arrivo delle sensazioni bool pAgentBehavior->processMessage(m) Si occupa di gestire l’invio delle azioni 23 Agenti CarBehavior(int n, AgentSpeed s, AgentCommInterface* pCommInterface, ActionServer* pActionServer, int p_hSize, int p_vSize, int p_aSize, int p_viewL) n = numero degli agenti s = velocità dell’agente (numero di pixel per unità di tempo) pCommInterface = puntatore alla common interface pActionServer = puntatore al proprio Action Server p_hSize = parametro dimensione della piazzola dell’edificio (altezza) p_vSize = parametro dimensione della piazzola dell’edificio (larghezza) p_aSize = parametro alla dimensione dell’agente p_viewL = parametro alla distanza massima (in numero di pixel) a cui l’agente può vedere Altri parametri PolarPosition lastMove = contiene l’ultima mossa in coordinate polari Vector lastPos = contiene l’ultima mossa in coordinate cartesiane paa = new AgentAction(); int id = id dell’agente int offset[3] = le tre coordinate cartesiane che individuano la posizione dell’agente int rotation[3] = le tre rotazioni rispetto gli assi cartesiani int state = lo stato dell’agente 24 Partecipazione all’AV Un umano partecipa all’AV prendendo il controllo di un agente sostituendosi alla sua capacità di elaborare un strategia. Per fare questo, abbiamo esteso il sistema middleware di SPADES attraverso un participatory framework. Agent pipe Interfaccia Recver Sender Avatar Communication Server tcp/ip S E W M M.I. tcp/ip 25 Controllo dell’Agente #include …. … void CarBehavior::doAgentAction() { /* scrivere il codice per il comportamento dell’agente quando non è pilotato */ } void CarBehavior::doUserAction(void* actionStruct) { /* scrivere il codice per il comportamento dell’agente quando riceve le azioni dall’umano*/ } 26 Ultima Ora Il mondo virtuale di Hive7 è stato interamente realizzato con tecnologia AJAX, da molti considerata l'ossatura principale del cosiddetto Web 2.0. Un prototipo di metaverso, termine della letteratura cyberpunk che indica un mondo digitale accessibile tramite interfaccia telematica. 27 Riferimenti Vite Parallele http://www.videoludica.com/news.php?news=201 Travian http://www.travian.it Neuro-Evolving Robotic Operatives http://www.nerogame.org/ Project Entropia http://www.entropiauniverse.com Age of Empire III http://www.ageofempires3.com Second Life http://secondlife.com World of Warcraft http://www.worldofwarcraft.com Quake IV http://www.quake4game.com/ Punto Informatico http://www.punto-informatico.it/ Hive7 http://www.hive7.com/ 28 Riferimenti S. Cacciaguerra, S. Mirri, P. Salomoni & M. Pracucci Wandering About the City, Multi-Playing a Game, in Proc. the 2nd IEEE International Workshop on Networking Issues in Multimedia Entertainment , Las Vegas (USA), January 2006. S. Cacciaguerra, C. Cagneschi & R. Fabbri The Architectonical Design of Virtual Environments Fuels a new Form of the WWW, in Proc. European Simulation and Modelling Conference 2005, Porto (Portugal), October 2005. S. Cacciaguerra, M. Roffilli Agent-based participatory simulation activities for the emergence of complex social behaviours, in Proc. of AISB05, Social Intelligence and Interaction in Animals, Robots and Agents, Hatfield, (England), April 2005. S. Cacciaguerra, S. Mirri, P. Salomoni & M. Baldassarri Almost Blue: The Design of a Cooperative Game by Integrating Accessible Interaction, in Proc. of Euromedia 2005 Toulouse, (France), April 2005. S. Cacciaguerra , M. Roccetti & P. Salomoni, Multimedia Entertainment Applications, in Encyclopedia of Multimedia, ((B. Furht Ed.), Springer, 2005, 510-518, included also "Digital Cinema", "In-home, In-car, In-flight Entertainment", "Interactive Story Telling". S. Ferretti, M. Roccetti & P. Salomoni On-line Gaming, in Encyclopedia of Multimedia, (B. Furht Ed.), Springer, January 2006, 653-660, included also “Dead Reckoning”, “Fairness in Online Games”, “Game Accessibility”, “Game Event Synchronization”. K. Mitchell, D. McCaffery, G. Metaxas, J. Finney, S. Schmid, A. Scott, “Six in the city: introducing Real Tournament - a mobile IPv6 based context-aware multiplayer game,” Proc. of the 2nd workshop on Network and system support for games, ACM press, 2003, pp. 91-100. To appear S. Cacciaguerra e M. Roffilli, The Artificial Intelligence promotes Internet communities. 29
Documenti analoghi
Edutainment
1664 d.c. Un certo C. Weikmann inventa Konigsspiel il gioco
del re. Un esercito di 30 figurine preso dagli scacchi e
antenate dei soldatini per ciascuno dei 14 diversi ruoli di
combattimento simula...