Esempio di Gioco Cooperativo: Villaggio di Piaget

Transcript

Esempio di Gioco Cooperativo: Villaggio di Piaget
Villaggio di Piaget
di
Antonio Gazzoni, Gabriele Garavini
rivista da
Stefano Cacciaguerra Ph. D. in Informatica
Indice
Introduzione ........................................................................................................................................ 3
Introduzione Second Life ................................................................................................................. 3
Introduzione Teoria di Piaget ........................................................................................................... 4
Specifiche Iniziali................................................................................................................................. 5
Sviluppo del Progetto .......................................................................................................................... 7
Svolgimento del gioco...................................................................................................................... 9
Script................................................................................................................................................. 12
Oggetti e script relativi ................................................................................................................... 13
Conclusioni ....................................................................................................................................... 14
2
Introduzione
Lo svolgimento di questo elaborato, consiste nella progettazione e nella realizzazione di
un particolare scenario su Second Life, che riproduca i concetti che stanno alla base della
“Teoria di Piaget”.
In questa relazione vengono presentate le metodologie e gli strumenti necessari per la
realizzazione finale.
Introduzione Second Life
Second Life è stato concepito da Philip Rosedale, il quale nel 1991 incominciò a lavorare
sul concetto che sta alla base di esso e nel 2002 incominciò a effettuare le prime prove.
Il 2003 è l’anno del lancio ufficiale di Second Life, un mondo virtuale tridimensionale multiutente online, della società americana Linden Lab.
Il sistema fornisce ai suoi utenti (definiti "residenti") gli strumenti per aggiungere e creare
nel "mondo virtuale" di Second Life nuovi contenuti grafici: oggetti, fondali, fisionomie dei
personaggi, contenuti audiovisivi, ecc.
La peculiarità del mondo è quella di lasciare agli utenti la libertà di usufruire dei diritti
d'autore sugli oggetti che essi creano, che possono essere venduti e scambiati tra i
"residenti" utilizzando una moneta virtuale (il Linden Dollar) che può essere convertito in
veri dollari americani.
Al tempo consisteva di soli 16 server e contava a malapena 1.000 utenti, mentre a tre anni
dal lancio girava su tremila server e aveva cinque milioni di utenti registrati. È importante
sottolineare che la maggior parte di questo mondo, in continua evoluzione, è stato creato
dagli utenti.
Attualmente partecipano alla creazione del mondo di Second Life oltre 400 mila utenti
attivi di tutto il pianeta (circa 10 milioni totali se si considerano gli utenti registrati, il che
comprende gli utenti inattivi), e ciò che distingue "Second Life" dai normali giochi 3D online
è che il suo contenuto è creato dagli utenti stessi.
Gli incontri all'interno del mondo virtuale appaiono dunque come reali scambi tra esseri
umani attraverso la mediazione "figurata" degli avatar.
Nel corso degli anni, all’interno di SL, si è assistito alla nascita di vere comunità e
sottoculture che sono state oggetto di studi e ricerche presso numerose università.
L'iscrizione è gratuita, anche se è obbligatorio essere maggiorenni. Per possedere del
terreno all'interno, bisogna essere registrati come utenti "premium" mentre per creare o
vendere oggetti basta l'iscrizione gratuita.
3
Molti personaggi che partecipano alla vita di "Second Life" sono programmatori in 3D.
Qualcuno di essi ha guadagnato somme di “vero” denaro vendendo gli script dei propri
oggetti creati per essere utilizzati dentro il mondo virtuale.
Viene comunemente utilizzato dai suoi utenti per proporre agli altri partecipanti
conferenze, file musicali e video, opere d'arte, messaggi politici, ecc.; si è inoltre assistito
alla creazione di numerose sottoculture all'interno dell'universo simulato SL, che è stato
studiato in numerose università come modello virtuale di una interazione umana, falsa, ma
in cui si proietta ciò che si vorrebbe essere.
Alcuni psichiatri lo considerano un gioco pericoloso nel caso l'utente sia persuaso, anche a
causa della forte influenza psicologica praticata dalla ditta produttrice per ragioni di
guadagno, che "Second Life" sia veramente una seconda vita, anziché una finzione (come
realmente è, pur essendo ricreato un ambiente verosimile e benché dietro ai personaggi vi
siano persone reali).
Si ritiene anche che, in situazioni controllate, tale "mondo" virtuale possa essere un
elemento utile alla psicanalisi, in particolare per conoscere come il paziente si immagina e
come, svincolato dalla realtà, vorrebbe essere; tutto ciò solo sotto controllo medico e
nell'ambito di una terapia più ampia, che soprattutto preveda una relazione reale tra il
paziente e lo psicanalista. Nel marzo 2007 il mondo di Second life era memorizzato su più
di 2000 server basati su processori Intel o AMD. I server utilizzano come sistema
operativo la distribuzione Linux Debian e come database per i dati MySQL. Sempre a
marzo 2007 i dati creati dagli utenti ammontavano a 34 Terabyte.
Da poco è disponibile il codice sorgente di Second Life. Infatti l'azienda Linden Lab ha
deciso di rilasciare il client sotto licenza GNU/GPL. Questo è un altro passo avanti verso la
creazione di un "reale" universo virtuale.
Introduzione Teoria di Piaget
Coordinazione punti di vista: l’abilità della “coordinazione punti di vista”, studiata
ampiamente all’interno del tema della rappresentazione dello spazio (cfr. la prova delle "tre
montagne" di Inhelder e Piaget [1947]), è stata assunta come occasione per mostrare che
la costruzione delle coordinate topologiche (contenuto ampiamente affrontato dalla scuola
materna in poi) può essere frutto di un’elaborazione in comune, piuttosto che una lenta
acquisizione, vincolata al supposto pervicace egocentrismo infantile [Emiliani e Carugati
1985, cap. 3].
D’altra parte, l’interesse per la coordinazione dei punti di vista, rispetto agli obiettivi
educativi e alle dinamiche sociali scolastiche sta nel fatto che le relazioni sinistra/destra e
vicino/lontano possono diventare oggetto di effettivi confronti fra punti di vista diversi,
interpretati da attori concreti e che, attraverso questa messa in scena, può essere
compresa la relatività dei punti di vista e può essere costruito un sistema topologico
stabile, tale da mettere d’accordo entrambi i partner sul fatto che sinistra/destra e
vicino/lontano sono proprietà relative alla collocazione nello spazio dell’osservatore: le
4
coordinate topologiche diventano così un modo per mettersi d’accordo fra osservatori,
oltre che nozioni apprese.
5
Specifiche iniziali
Questo elaborato nasce come collaborazione tra Elvis Mazzoni, Ph.D in Psicologia e
Stefano Cacciaguerra, Ph.D. in Informatica. La proposta nasce dalla visione di un
elaborato realizzate presso il SEFoRA Lab (Facoltà di Psicologia - Università di Bologna)
che riproduce l’esperimento: il Villaggio di Piaget.
Teoria di base
Il principio ispiratore degli esperimenti è semplice: dopo avere osservato un villaggio di tre
o quattro casette in materiale Lego, presentato su un supporto di legno, i bambini hanno il
compito di riprodurlo servendosi di casette identiche, su di un supporto identico ma il cui
orientamento, rispetto a quello originale e rispetto alla prospettiva di osservazione del
bambino, è modificato per creare compiti di difficoltà diversa (Figura 1). La Figura 2
presenta un esempio del problema con la rotazione subita dalla base sulla quale dovrà
essere ricostruito il villaggio.
Figura 1: immagine storica
Figura 2: applicazione del SEFoRA Lab
Il materiale è composto da due basi di cartone: sono i "terreni" su cui costruire i villaggi.
L'orientamento di un terreno il più delle volte è dato da un indice di colore blu (un triangolo
isoscele) la cui base poggia su un angolo del terreno e la cui punta guarda all'interno.
6
Su uno di questi terreni, lo sperimentatore costruisce un villaggio che il bambino è invitato
a ricostruire sull'altro terreno; per far ciò è necessario avere due insiemi di 3-4 casette
(uno per lo sperimentatore e uno per il bambino).
Ogni casa è di colore diverso (le chiameremo "la casa rossa", "la casa blu", "la gialla" e "la
bianca") ed è fatta in modo che si possa orientare, dato che uno dei lati rappresenta la
facciata della casa con la porta.
Inoltre, è possibile studiare la dinamica del lavoro in coppia rispetto al lavoro individuale, in
particolare, le dinamiche prodotte dall'opposizione di punti di vista, che possono essere
ottenute facendo eseguire il compito ad un bambino nella posizione x e poi invitandolo ad
esaminare questa soluzione dalla posizione y; oppure collocando due bambini uno di
fronte all'altro (Figura 3).
Figura 3: esempio del SEFoRA Lab
7
Sviluppo del Progetto
Rispetto all’idea di partenza, sono stati presi alcuni accorgimenti relativi a particolari limiti,
vincoli dell’ambiente. Qui di seguito sarà descritto il suo funzionamento (Figura 4).
Figura 4: scenario completo
Gli oggetti che gli utenti trovano sullo scenario di gioco sono i seguenti:
-
ai bordi del piano si trovano tre bacheche, nelle quali sono date le informazioni
necessarie per poter utilizzare lo scenario e alcune informazioni necessarie a
comprendere la Teoria di Piaget.
-
il piano iniziale (cubetti chiari Figura 5) serve all’utente come rappresentazione di
riferimento, utile per poter ricreare tale disposizione nel piano finale; il suo script fa
in modo che le case, in un numero che dipende dalla quantità di utenti iscritti, siano
disposte automaticamente e in modo casuale su di esso;
-
il piano finale (cubetti scuri Figura 5) è esattamente la copia di quello iniziale, sul
quale dovranno essere disposte le case dagli utenti, proprio come lo sono in quello
iniziale; il suo script gli assegna una rotazione casuale, tra quelle impostate (0, 90°,
180°, 270°).
Inoltre sullo scenario si trovano due gruppi uguali di case (Figura 7):
8
- uno è l’insieme delle case che automaticamente, all’inizio del gioco, si dispongono sul
piano di gioco iniziale; per scelta implementativa, sono state numerate da 0 a 5.
- l’altro è l’insieme delle case che gli utenti dovranno disporre sul piano di gioco finale,
mantenendo la disposizione del piano iniziale; sono esattamente una copia di quelle che
sono disposte automaticamente; per scelta implementativa, sono state numerate da 2010
a 2015.
Figura 5: piano iniziale – piano finale
Figura 7: insiemi di case
Svolgimento del gioco
Gli utenti possono iscriversi al gioco, cliccando sul piano iniziale e rispondendo sì alla
domanda (vedi Figura 8) che gli sarà posta
9
Figura 8: richiesta del gioco
Il sistema, si memorizza gli utenti che effettuano l’iscrizione e una volta raggiunto il
numero di iscritti necessario (impostato da codice), terminerà tale fase. A seconda
dell’ordine di iscrizione, viene assegnato il turno di gioco.
A questo punto il sistema disporrà le case sul piano iniziale, associandogli una posizione e
un orientamento, e assegnerà una rotazione casuale al piano finale (Figura 9).
Figura 9: scenario di gioco
Notiamo che in questo esempio le case che sono state posizionate e orientate sul piano
iniziale (cubetti più chiari), sono 3, come impostato da codice. Inoltre il piano finale (cubetti
più scuri), è stato ruotato di 180°.
Durante il proprio turno, l’utente dovrà effettuare la propria mossa: dovrà selezionare la
casella del piano finale, dove effettuare il posizionamento ed, in seguito, selezionare la
casa che si desidera posizionare (dall’insieme delle case disponibile che si trova sullo
scenario di gioco, e non tra quelle che sono già state disposte).
10
L’ordine di posizionamento è da sinistra verso destra nel piano delle case da posizionare,
avendo una visuale frontale. La casa, potrà essere ruotata a discrezione dell’utente in
turno, cliccando su ruota (Figura 9) nella finestra che gli comparirà in questo momento. Il
sistema assegnerà una rotazione di 90° ogni volta che l’utente cliccherà su ruota. Ora gli
altri utenti, riceveranno un messaggio, che chiederà di esprimere il proprio giudizio sul
posizionamento della casa (Figura 10).
Figura 9: richiesta di rotazione di una casa
Figura 10: richiesta giudizio sul posizionamento della casa
Il sistema si memorizzerà la risposta data da ogni utente, per ogni casa. Infine, una volta
posizionate tutte le case il sistema effettuerà il confronto tra la disposizione del piano
iniziale, e quella del piano finale (posizione e orientamento delle case). Invierà una mail
(indirizzo impostato da codice) all’amministratore, contenente i risultati e le opinioni di ogni
utente sullo spostamento di ciascuna casa. Inoltre, automaticamente si preparerà per
effettuare una nuova partita.
11
Script
Il tool per la realizzazione di oggetti 3D permette a chiunque, anche senza basi di disegno
tecnico, di imparare a costruire in poco tempo. Ogni oggetto risulta una combinazione di
prims, forme geometriche primitive come il cilindro, il cubo, la sfera, il cono, che possono
essere composte tra loro. È possibile scegliere per ogni prims il colore, il materiale e le
texture. Nel caso in cui non si possieda un territorio su cui costruire, è possibile esercitarsi
su aree denominate SANDBOX. Qui ogni utente può sviluppare attraverso un numero
limitato di prims qualsiasi tipo di oggetto per poi salvarlo, successivamente, nel proprio
inventario, dove potrà reperirlo in qualsiasi istante. Second Life promuove un proprio
linguaggio di scripting Linden Script Language (LSL), che serve per animare gli oggetti: ad
esempio per aprire porte o fare domande. La documentazione più esaustiva sugli script si
trova sul Wiki script online di Second Life, (una sorta di Wikipedia solo sul LSL). Questa
documentazione permette di ottenere informazioni riguardo tutti gli script e fornisce esempi
di codice, in modo da sostenere lo sviluppo più organico di un programma. Il progetto è
stato sviluppato con due account free in una Sandbox. Avevamo pensato di far comparire
il piano finale, automaticamente dopo che il sistema avesse raccolto il numero necessario
di adesioni al gioco, tramite script, dandogli anche la rotazione random, ma purtroppo
Second Life pone dei limiti a riguardo, per evitare problemi di worm; quindi abbiamo optato
per una soluzione alternativa: quella in cui compaiono entrambi i piani (iniziale e finale)
sullo scenario di gioco.
Oggetti e Script relativi:
- bacheche
Sono state realizzate semplicemente creando dei parallelepipedi, con un appoggio a
forma di cilindro, e applicandogli delle nostre texture, nelle quali abbiamo inserito del testo
e delle immagini. L’applicazione delle texture è possibile solamente pagando un contributo
di 10 Linden dollar ognuna. Non fa riferimento a nessuno script.
- piano di gioco iniziale
sono stati creati 36 cubi (6x6) di dimensione uguale, e poi sono stati uniti creando così un
oggetto unico, in modo tale da potergli applicare uno script generale; lo script generale
sarà associato ad un cubetto, che abbiamo distinto per colore (nero), che prende il nome
di principale. Oltre allo script generale, ogni cubetto fa riferimento anche ad uno script
proprio, che non crea conflitto con l’altro.
Il fatto di dividere il piano in cubetti si è reso necessario, per poter distinguere
correttamente e precisamente la posizione delle case e il posizionamento nel piano finale
delle stesse, utilizzando come punto di riferimento il suo centro.
script_piano_gioco_iniziale
12
- piano di gioco finale
La sua costruzione è analoga a quella del piano iniziale; è stato distinto dal colore più
scuro associato e dal nome di ogni cubetto.
script_piano_gioco_finale
- case piano iniziale
Ogni casa che andrà a disporsi sul piano iniziale, una volta che sono terminate le
iscrizioni. Ogni casa fa riferimento ad un proprio script che ascolta su un canale diverso.
script_casa_fissa
- case piano ruotato:
Sono esattamente una copia di quelle disposte sul piano iniziale, con la differenza che
fanno riferimento chiaramente ad uno script differente ed ad una numerazione differente.
script_casa_movimento
- risposte:
E’ il bordo del piano dello scenario. Dal punto di vista grafico, è stato creato, perché
assemblato poi con l’oggetto sensore, crea lo scenario di gioco. Dal punto di vista del
codice, gli è stata associata una porzione di codice che era necessario associare ad un
oggetto diverso dagli altri del piano. Questo si è reso necessario per un motivo di utilizzo
di porte, questione cruciale per capire lo scambio dei messaggi durante l’esecuzione.
script_risposte
- sensore:
E’ il piano dello scenario, dove poggiano tutti gli oggetti. Dal punto di vista grafico, è stato
creato, perché assemblato poi con l’oggetto risposte, crea lo scenario di gioco. Dal punto
di vista del codice, gli è stata associata quella porzione di codice, nella quale sono
implementate quelle funzioni, utili allo smistamento dei messaggi tra gli utenti, riguardo
alle domande che il sistema durante il gioco, presenta agli utenti stessi (es. corretto
posizionamento degli oggetti, ecc…)
script_sensore
13
Conclusioni
Per qualcuno, l’idea stessa di una rappresentazione grafica 3D di un mondo esistente solo
in Rete è un concetto difficile da accettare. Per molte persone avanti con gli anni può
essere difficile integrare nelle proprie vite una tecnologia come Second Life. Viceversa,
coloro che sono cresciuti con questo tipo di tecnologie faranno molto più in fretta ad
assorbire i nuovi sviluppi.
I primi mondi multiuser apparvero nel 1996, con l’avvento del gioco online Meridien 59. Da
allora un’intera generazione di giocatori ha familiarizzato con i mondi virtuali in 3D. Il
maggior ostacolo all’adozione di un sistema di questo tipo è infatti la difficoltà
d’interazione. Per chi è cresciuto fra queste tecnologie, la migrazione in luoghi come
Second Life – che offre gran parte di ciò che già si trova in questi mondi e molto altro
ancora – diventa naturale. Se SL sarà capace di continuare a sviluppare il suo ruolo e
agevolare l’esperienza dell’utente introducendo nuove caratteristiche e nuovi
aggiornamenti, è probabile che sia destinato a rimanere fra noi per molto tempo. La
possibilità di comunicare con persone di nazionalità diversa e quindi con conoscenze
diverse, attraverso Second Life, credo possa aprire nuovi orizzonti alla conoscenza e alla
possibilità di sviluppo dell’informatica.
14
BIBLIOGRAFIA E SITOGRAFIA
Riferimenti cartacei
AA.VV. (2007). Second Life la Guida Ufficiale. Wiley Publishing: Indianapolis, Indiana.
Riferimenti Web
Second Life: Your World. Your Imagination. (2007).
http://secondlife.com
Second Life Wiki. (2007).
http://wiki.secondlife.com/wiki/Main_Page
Second Life Italia. (2007).
http://www.secondlifeitalia.com/
Wikipedia. (2007).
http://it.wikipedia.org/wiki/Second_life
Kan-ed – Using the Linden Script language. (2005)
http://www.kan-ed.org/second-life/using-LSL.html
15