Professional Documents
Culture Documents
Sadržaj.................................................................................................................................1
Uvod ....................................................................................................................................3
1. Umrežena virtualna okruženja i virtualni svjetovi .............................................................4
1.1 Virtualni svjetovi opće namjene ..................................................................................4
1.1.1. Second Life.........................................................................................................4
1.1.2. Active Worlds......................................................................................................6
1.1.3. There ..................................................................................................................8
1.2 Virtualni svjetovi s mogućnošću igranja......................................................................9
1.2.1 Entropia Universe ................................................................................................9
1.2.2. Kaneva .............................................................................................................11
1.2.3. Multiverse .........................................................................................................12
1.3. Svjetovi namijenjeni isključivo igranju......................................................................14
1.4. Usporedba...............................................................................................................15
2. Akademske zajednice u umreženim virtualnim okruženjima..........................................16
2.1. Second Life .............................................................................................................16
2.2. Active Worlds ..........................................................................................................17
3. Platforme s mogućnošću obrazovanja korištenjem umreženog virtualnog okruženja....18
3.1. Croquet ...................................................................................................................18
3.2. Kaneva ....................................................................................................................20
3.3. Active Worlds ..........................................................................................................21
3.4. Second Life .............................................................................................................22
4.5. Multiverse ................................................................................................................22
4.6. Project Wonderland................................................................................................23
4. Predložak rješenja za obrazovanje korištenjem umreženog virtualnog okruženja .........25
5. Implementacija...............................................................................................................26
5.1 Osnove Squeaka......................................................................................................26
5.2 Osnove Croqueta .....................................................................................................29
5.2.1. Croquet otoci ....................................................................................................30
5.2.2 Croquet poruke ..................................................................................................30
5.2.3. Croquet usmjeritelji ...........................................................................................31
5.2.4. Croquet kontroler ..............................................................................................31
5.2.5. Način rada ........................................................................................................32
1
5.3. Opis implementacije ................................................................................................33
5.3.1. Klasa BSCroquetParticipant .............................................................................34
5.3.2. Klasa BSHarness..............................................................................................35
5.3.3. Klasa BSMenuWorld.........................................................................................37
5.3.4. Klasa BSMenuBar ............................................................................................38
5.3.5. Metoda getPopupMenuScript: ..........................................................................40
5.3.6. Klasa BSBaseWorld .........................................................................................40
5.3.7. Klasa BSAvatarUser .........................................................................................41
7. Rezultati.........................................................................................................................43
Zaključak............................................................................................................................44
Literatura............................................................................................................................45
Dodatak .............................................................................................................................48
Upute za instalaciju programske podrške.......................................................................48
Upute za korištenje programske podrške .......................................................................49
2
Uvod
Premda pojam postoji već desetljećima, virtualni svjetovi relativno su nov fenomen koji se
tijekom prošle godine našao pod povećalom javnosti zahvaljujući mnogim činiteljima,
ponajviše Second Life virtualnom svijetu i njegovim ekonomskim aspektima. Društvo ih,
općenito gledano, smatra još jednim medijem namijenjenim socijalizaciji, suradnji i zaradi,
a ICT industrija jednim od najperspektivnijih novih tržišta zbog čega će biti zanimljivo
promatrati njihov budući razvoj.
Paradoksalno, sam izraz "virtualni svijet" tehnološki je idiom koji se mijenja s njegovom
društvenom percepcijom, a čvrsto je vezan i uz popularnu kulturu. U njihovom današnjem
(i vjerojatno budućem) kontekstu, virtualni svjetovi prvi put se spominju prije više od 20
godina u znanstveno-fantastičnim romanima Williama Gibsona (Neuromancer) i Neala
Stephensona (Snow Crash), a zatim i u filmovima kao što su Lawnmower Man i, nedavno,
Matrix.
3
1. Umrežena virtualna okruženja i virtualni svjetovi
Korisnički računi dijele se na besplatne (Basic) i tzv. Premium račune koji se od besplatnih
razlikuju po tome što se, uz fiksni iznos koji se plaća jednom i mjesečnu naknadu za
održavanje, korisnicima dodjeljuje virtualno zemljište površine od 512 m2. Moguće je kupiti
i veća zemljišta, pa čak i otoke, ali su njihove cijene vrlo visoke pa su takve virtualne
nekretnine karakteristične za tvrtke, sveučilišta i rijetke pojedince koji su voljni investirati
više u svoj virtualni identitet.
Klijentski softver postoji za Windows i MacOSX platforme, dok je razvoj Linux verzije
trenutno u alpha fazi, a zamišljen je kao jedan proces s više dretvi zaduženih za razne
zadaće. Njegova glavna funkcionalnost svodi se na odabir načina kretanja (hod, trčanje,
skakanje, letenje ili korištenje nekog vozila) i komunikacije (chat, za korisnike udaljene do
20 m, “vikanje” za korisnike udaljene do 96 m, instant messaging koji je neovisan o
udaljenosti i, naravno, glasovna komunikacija korištenjem licencirane Vivox tehnologije).
Kako bi se korisnička zajednica potaknula na suradnju s Linden Labom, ali i razvoj
samostalnih projekata, izvorni kod klijentskog softvera odnedavno je javno dostupan.
Najpoznatiji od korisničkih projekata jest libsecondlife, open source biblioteka namijenjena
komunikaciji 3rd party softvera sa Second Life poslužiteljima.
Second Life je zamišljen kao virtualni svijet u kojem apsolutno sav sadržaj stvaraju
korisnici. Kako bi im se to omogućilo, Linden Lab im je ponudio LSL (Linden Scripting
Language), jezik sintaksom sličan C-u koji služi dodavanju dodatne funkcionalnosti
virtualnim objektima, a omogućuje i komunikaciju objekata s Internetom korištenjem HTTP,
4
XML-RPC i raznih email protokola. Važnost LSL-a najviše dolazi do izražaja u Second Life
ekonomiji.
Poslužiteljski procesi također pokreću fizikalnu simulaciju svog područja, a fizikalni engine
koji Second Life koristi od svog nastanka (Havoc I) još uvijek je u uporabi bez obzira na
sklonost poniranju u rekurziju prilikom presijecanja dvaju virtualnih objekata. Premda
postoje naznake da će Second Life u budućnosti koristiti noviji Havoc IV, ovaj problem za
sad se ublažava korištenjem tzv. overlap ejectiona kad se objekti nalaze jedan blizu
drugog.
5
Svi entiteti, odnosno assets (modeli i teksture avatara, animacije, zvučni isječci, LSL
skripte, poruke i svi ostali, „obični“ objekti), unutar Second Life virtualnog svijeta imaju svoj
globalni jedinstveni identifikator (GUID), odnosno jedinstveni 24-znamenkasti
heksadecimalni broj koji se svakom od njih pridružuje prilikom nastanka. Informacije o
svim ikad stvorenima entitetima poslužuje farma MySQL poslužitelja nad kojom kontrolu
ima Linden Lab, a entitete je donedavno bilo nemoguće udvostručavati, što je vrlo važno
za prodaju virtualnih objekata unutar Second Life svijeta. Mogućnost umnožavanja entiteta
nudi CopyBot, softver napravljen za potrebe izgradnje i testiranja libsecondlife biblioteke.
Active Worlds ime je vrlo fleksibilne tehnologije koja je temeljem nizu virtualnih svjetova,
odnosno odnosno univerzuma (naziv za skupinu svjetova). Vlasnik, tvrtka Active Worlds
Inc., svima zainteresiranim omogućuje korištenje njihove tehnologije, zbog čega se njihova
korisnička baza sastoji od mnogih tvrtki i sveučilišta, ali i velikog broja "kućnih" entuzijasta.
Klijentski i poslužiteljski softver besplatni su, ali kreacija permanentnih virtualnih identiteta i
svjetova moguća je samo uz plaćanje naknade tvrtki vlasniku. Iznimku ovom pravilu
predstavljaju privremeni korisnici (tzv. turisti) koji mogu besplatno pristupati svim
svjetovima s pravom javnog pristupa. Vlasnici svjetova naknadu plaćaju ovisno o
dimenzijama svog svijeta i najvećem broju korisnika koje on može istovremeno posluživati,
pri čemu valja imati na umu da će se morati pobrinuti (najčešće iznajmiti) i za
poslužiteljsko sklopovlje te bandwidth.
6
Klijentski softver napravljen je isključivo za Windows operacijske sustave, a funkcionira i
kao web preglednik s mogućnošću korištenja HTTP protokola (za što koristi rutine Internet
Explorera). Premda korisnici najčešće komuniciraju korištenjem tipkovnice, moguća je i
glasovna komunikacija, a interakcija s objektima iz okoline moguća je jednostavnim klikom
na neki aktivni objekt. Aktivne objekte (a to su najčešće 3D verzije fizičkih objekata s
posebnim svojstvima i virtualne osobe, odnosno botovi) korisnici mogu kreirati korištenjem
Active Worlds SDK-ja (postoje C/C++, Visual Basic i COM verzije), a njihove 3D modele
mogu konvertirati iz raznih popularnih formata ili izraditi Renderware i Truespace modele
za koje Active Worlds ima nativnu podršku.
Virtualno okruženje na kojem se temelje Active Worlds virtualni svjetovi koristi klasični
model klijent-poslužitelj, a veličina virtualnog prostora i najveći broj korisnika ovise o tipu
licence. Valjda uzeti u obzir da se više svjetova može grupirati u tematski srodne
univerzume koji simuliraju jedan veliki svijet. Tranziciju među svjetovima korisnici obavljaju
teleportacijom.
7
1.1.3. There
Za razliku od univerzalnosti kao glavnog koncepta Active Worlds i Second Life virtualnih
svjetova, There (u vlasništvu tvrtke Makena Technologies) je zamišljen prvenstveno kao
mjesto za razonodu i odmor pa, u skladu s time, najviše privlači ljubitelje morskih plaža,
kazališta, noćnih klubova i ostalih mjesta namijenjenih zabavi. Ekonomski model sličan je
onom kojem Second Life duguje većinu svoje popularnosti, no kako se, u stvari, radi o
social networking siteu smještenom u virtualno okruženje čija popularnost nije ni približna
onoj koju ima Second Life, tako su manji i tržište i broj virtualnih dobara koja ono nudi.
Kao i u prethodna dva virtualna svijeta, korisnici mogu biti odabrati besplatno (Basic)
članstvo u There zajednici, što im pruža tek osnovnu funkcionalnost, slušanje radija,
mogućnost kupnje virtualnih objekata i pristupanja ograničenom broju korisničkih grupa,
dok će oni koji žele više jednokratno platiti Premium korisnički paket koji nudi glasovnu
komunikaciju, mogućnost prodaje objekata i održavanja društvenih događaja te još štošta
drugo.
8
poslužitelja manipuliraju istim jedinstvenim objektom jer se geometrijske cjeline koje oni
simuliraju mogu preklapati.
S obzirom da publika koju There privlači najčešće nije vješta u korištenju računala, za
kreaciju objekata koristi se jednostavan alat koji je također u vlasništvu tvrtke Makena
Technologies, a prodaja se obavlja aukcijski unutar samog virtualnog svijeta. Iz istog, gore
navedenog razloga ne postoji ni API koji naprednim korisnicima pružio veće mogućnosti
kreacije i manipulacije There virtualnih objekata.
Entropia Universe nudi samo jedan tip korisničkih računa, i to onaj besplatni, međutim
igranje, kako će biti kasnije objašnjeno, ipak zahtjeva ulaganje truda i/ili novca. Klijentski
softver napravljen je samo za porodicu Windows operacijskih sustava, a instalacijska
datoteka zauzima čak 1 GB, vjerojatno zato što softver koristi velik broj lokalno
pohranjenih tekstura i modela. Kako je riječ o hibridu igre i virtualnog svijeta opće
namjene, klijentski softver zahtijeva relativno moćno računalo, ali nudi puno više
mogućnosti od klijenata namijenjenih virtualnim svjetovima opće namjene, pa čak i ostalih
MMOG-ova. Mogućnosti, osim onih nužnih za igranje (korištenje oružja, borba prsa o prsa
9
i sl.) uključuju i vrlo visok stupanj prilagodljivosti, od mapiranja tipki ulaznih jedinica do
promjene izgleda korisničkog sučelja.
10
S obzirom na ekonomski potencijal i činjenicu da gotovo da i ne pati od dječjih bolesti
karakterističnih za ranije virtualne svjetove, Entropia Universe postaje proizvodom koji je
CRD, tvrtka kineske vlade odgovorna za svu online zabavu u toj državi, odabrala za svoj
sljedeći projekt. Imajući na umu popularnost virtualnih svjetova i MMOG igara u Aziji, CRD
očekuje 150 milijuna registriranih korisnika od kojih će 7 milijuna biti u svakom trenu
posluživano, zbog čega bi Entropia Universe bio virtualni svijet s najvećom populacijom.
1.2.2. Kaneva
Kako virtualnih svjetova opće namjene postoji dovoljno da zadovolje trenutnu potražnju,
tvorci Kaneve dosjetili su se i napravili hibrid virtualnog svijeta opće namjene i web 2.0
social networking portala kao što su Myspace.com ili Facebook.com u kojima svaki
korisnik ima svoj 2D (HTML/CSS) profil s raznim osobnim podacima kao što su dob, spol,
prebivalište, interesi, fotografije i sl. Postoji samo jedan tip korisničkih računa, i to onaj
besplatni, a, za razliku od većine ostalih svjetova u kojima se to plaća, korisnici pri
registraciji dobivaju i svoje virtualne domove.
S obzirom da je Kaneva svijet od svojeg nastanka prije 6 mjeseci do danas u javnoj beti,
za očekivati je da još nisu implementirane neke funkcije koje korisnici ostalih svjetova
smatraju osnovnima. Primjerice, klijentskom softveru, koji je izrađen samo za Windows
11
operacijske sustave, nedostaju mogućnosti mijenjanja pogleda (kamere) i naprednijih
opcija podešavanja izgleda avatara, a ne postoje ni alati kojima bi korisnici kreirali vlastiti
virtualne objekte ili barem importirali one izrađene u nekom od popularnih programa za 3D
modeliranje. Ekonomija se svodi na nekoliko mogućnosti zarađivanja unutar samog
virtualnog svijeta i, naravno, konverziju stvarnog novca u virtualni, a kreativnost korisnika
ograničava se na promjenu izgleda svog virtualnog doma koja uključuje i upload zvuka i
video isječaka, pa čak i prikaz sadržaja smještenih na webu.
Kaneva virtualni svijet, premda obećava, nama je puno manje zanimljiv od platforme na
kojoj je nastao. Kaneva Game Platform projekt je započet 2004. s namjenom brzog,
jednostavnog i intuitivnog razvoja virtualnih svjetova i online 3D igara, i potpuno je rješenje
za izradu i korištenje virtualnih svjetova. Uključuje četiri komponente:
Valjda naglasiti da Kaneva Game Platform ima i C++ API te podržava skriptiranje
korištenjem Lua/Python skriptnog jezika.
1.2.3. Multiverse
12
bivših Netscape developera koji su pod okriljem tvrtke Multiverse Network Inc. odlučili
napraviti javno dostupan klijentski i poslužiteljski softver te alate namijenjene izradi
MMOG-ova i virtualnih svjetova općenito. Sama tvrtka izradila je testni virtualni svijet koji
se isporučuje zajedno s gore navedenim softverom i služi korisnicima Multiverse alata kao
primjer, odnosno za daljnju modifikaciju. Svi alati su besplatni, a tvrtka zarađuje udjelom u
profitu na njihovoj tehnologiji temeljenih svjetova te naplaćivanjem savjetovanja i tehničke
podrške koju pruža vlasnicima.
Ekonomski aspekti Multiverse virtualnih svjetova ovise o vlasniku pojedinog svijeta koji, uz
odabir između besplatnih i naplaćivanih korisničkih računa, pomoću priloženih alata može
odrediti bitne ekonomske parametre, a isto tako valja napomenuti da se vlasnici različitih
13
svjetova mogu udružiti i prodavati jednu pretplatu za grupu svjetova. Još jednom valja
naglasiti da svaki komercijalni svijet dio svojeg profita predaje tvrtci Multiverse Network
Inc., dok potpuno besplatni svjetovi, čiji vlasnici ne zarađuju ni in-game oglasima niti
naplaćivanjem korisničkih računa, ne duguju nikakvu naknadu.
Obrađivati jedno po jedno takvo okruženje ne bi imalo smisla jer su tehnički sva slična -
poslužiteljska mreža je distribuirana, s tim da, u većini slučajeva, postoji više različitih
okruženja temeljenih na istom MMOG-u, a korisnik može istovremeno pristupati samo
jednom i pri tom vidi samo jedan poslužitelj (proxy), dok je stvarno posluživanje pojedinog
okruženja podijeljeno na više fizičkih poslužitelja. Virtualni prostor najčešće se dijeli u
ovisnosti o opterećenju, pa se po potrebi dijeli na više različitih cjelina koje poslužuju
zasebni poslužitelji. Valja napomenuti da popularniji MMOG-ovi, bez obzira na to da li su
besplatni ili ne, često imaju probleme s preopterećenjem i inherentnom nestabilnošću.
Razlike među MMOG-ovima, kad već postoje, obično se tiču grafičkog enginea, settinga
(zamišljene povijesti ili budućnosti u koju je svijet smješten) i samog gameplaya.
14
1.4. Usporedba
podrška za
strukturiranje
klijentska poslužiteljska komunikacijska kreaciju
virtualni svijet vrsta virtualnog
platforma platforma arhitektura virtualnih
prostora
objekata
Windows, jedan
Active Worlds opći Windows nestrukturiran odlična
Linux poslužitelj
nejednolike raspodijeljeni
There opći Windows n/a slaba
jedinice poslužitelji
s podrškom za raspodijeljeni
Kaneva Windows Windows + IIS n/a odlična
igranje poslužitelji
15
2. Akademske zajednice u umreženim virtualnim okruženjima
S obzirom da su virtualni svjetovi (i umrežena virtualna okruženja općenito) dobrim djelom
nastali trudom raznih akademskih ustanova, nije ni čudno da su upravo one prve
prepoznale obrazovni potencijal ovih tehnologija. Sve donedavno, predavanja "na daljinu"
bila su temeljena na tehnologijama ograničene pouzdanosti koje polaznicima nisu pružale
pravi osjećaj "nazočnosti", no s rastom popularnosti virtualnih svjetova (i rastom
pouzdanosti tehnologija na kojima su temeljeni) oni postaju logičan izbor za udaljenu
nastavu. Akademske zajednice u virtualnim svjetovima nastaju prvo iz potrebe pojedinih
predavača da udaljenim studentima omoguće kvalitetnu i cjelovitu nastavu, a kasnije i kao
virtualne ispostave stvarnih sveučilišta i škola. Kako je izrada virtualnog sveučilišta
kompliciran i dugotrajan posao, većina ustanova ograničila je svoju virtualnu prisutnost
samo na najpopularnije svjetove.
Kao najpopularniji javno dostupan virtualni svijet, Second Life je mnogim akademskim i
obrazovnim ustanovama logičan izbor za izgradnju njihovog prvog virtualnog obrazovnog
objekta. S obzirom na veliku korisničku zajednicu i lako dostupne alate za izgradnju
virtualnih građevina, odnosno programiranje virtualnih objekata (i osoba) namijenjenih
obrazovanju, Second Life ima više virtualnih akademskih objekata od bilo kojeg
konkurenta. Premda je akademsku zajednicu moguće izgraditi bilo gdje unutar Second
Life svijeta, dobar dio sveučilišta odlučuje se za kupnju virtualnih otoka (što neprofitne
organizacije i obrazovne ustanove košta oko $838 jednokratno i $148 za mjesečno
održavanje), a manje rastrošni odabrati će neku od drugih opcija koje uključuju
iznajmljivanje zemljišta od akademskih konzorcija koji to nude ili gradnju na zemljištu koje
dolazi s Premium korisničkim računom. Kupnja otoka omogućuje vlasniku da odabere da li
će on biti javan ili ne, odnosno da li će biti skriven za sve osim za virtualne studente. Valja
primijetiti da virtualna sveučilišta imaju i ulogu prestiža, pa će neka od njih biti doista
grandiozni primjeri virtualne arhitekture, dok će obrazovne aspekte zapostaviti.
Tvrtka Linden Labs, uz snižene cijene zemljišta, obrazovnim ustanovama zainteresiranim
za djelovanje unutar umreženih virtualnih okruženja nudi i projekt Campus: Second Life,
koji najbolje zamišljenim kolegijima dodjeljuje zemljište u trajanju od jednog semestra.
16
Premda će neki očekivati više, sveučilišta u Second Life svijetu rijetko nude više od
virtualnih verzija zgrade originala, predavaona s ekranom za prezentacije, galerija i
prostora na kojem studenti mogu graditi svoje objekte (tzv. sandbox). Nastavna sredstva
specifična pojedinom kolegiju (npr. simulatori elektroničkih sklopova ili ekosustava) obično
izrađuju sami predavači, premda postoje univerzalno korisni projekti kao što je Sloodle
(Second Life implementacija Moodle sustava).
Možda najbolje organiziran obrazovni projekt u Second Life svijetu jest Academy Of
Second Life, virtualno sveučilište namijenjeno stjecanju vještina korisnih unutar samog
svijeta. Za razliku od ostalih, Academy Of Second Life nudi niz redovito održavanih
besplatnih tečajeva koje, na posebno pripremljenim poligonima, vode predavači-volonteri.
Iako se AWEDU site hvali impozantnim popisom akademskih ustanova s kojima surađuje,
do njih je gotovo nemoguće doći jer su akademski svjetovi redom privatni i namijenjeni
malom broju registriranih posjetitelja, dok licenca za pristup neregistriranih posjetitelja
košta više i rijetki se na nju odlučuju. Sam AWEDU svijet djeluje napušteno i dio
edukacijskih svjetova u koje se iz njega moguće teleportirati nije bio dostupan u vrijeme
pisanja ovog rada.
17
3. Platforme s mogućnošću obrazovanja korištenjem
umreženog virtualnog okruženja
3.1. Croquet
Croquet predstavlja open source projekt nastao s ciljem stvaranja umreženih virtualnih
okruženja namijenjenih znanstvenoj suradnji, upravljanju projektima, obrazovanju,
knjižničarstvu, arhitekturi, dizajnu i kreaciji MMOG igara. Temelji se na drugom open
source projektu, Squeak, čiji je cilj brza konstrukcija softvera korištenjem objektno-
orijentiranog jezika Smalltalk. Premda Croquet za sad postoji samo za Windows, Linux i
Mac OS X operacijske sustave, Squeak aplikacije mogu se pokrenuti na cijelom nizu C-
kompatibilnih platformi korištenjem Squeak VM-a, a za iscrtavanje koriste OpenGL.
Fundamentalna razlika između Croqueta i ostalih ovdje opisanih virtualnih okruženja jest
ta što Croquet za ažuriranje virtualnog okruženja koristi peer-to-peer način komunikacije
(nazvan TeaTime) umjesto klasičnog klijent-poslužitelj modela, pri čemu svaki korisnik ima
lokalno pohranjene instance objekata svih ostalih korisnika. Valja napomenuti da se
promjena objekta ne propagira od njegovog vlasnika, već od korisnika u čija je instanca
18
promijenjena, a promjena je vidljiva ostalim korisnicima tek nakon što je svaka instanca
tog objekta ažurirana. Kako bi takav način rada bio efikasan (Croquet Consortium tvrdi da
propagacija traje od 30 do 100 ms, ovisno o udaljenosti korisnika), TeaTime koristi
označavanje verzije objekata, timestamping poruka, postavljanje rokova i dvostupanjski
commit za potvrdu promjena. Premda ažuriranje počinje od promijenjene instance objekta,
one ne obavještavaju sve ostale instance već samo tzv. Croquet Router, element koji
porukama dodaje timestampove i brine se da svaka instanca objekta bude ažurirana.
Drugi važan element ove platforme su Croquet Islands (Otoci) koji su osnovna jedinica za
replikaciju objekata. Trebalo bi ih promatrati kao "kutije" u koje se mogu smjestiti objekti,
pri čemu se sam Otok sastoji od onoliko "kutija" koliko ima sudionika s instancom
(lokalnom kopijom) objekta koji je u Otoku sadržan. Kad se neka od instanci promijeni,
započinje ažuriranje svih ostalih, a Otok se brine da svaka bude jednaka. Valja
napomenuti da Croquet virtualne objekte ne treba nužno poistovjećivati s 3D modelima, jer
su zamišljeni kao samostalne računalne jedinice čiji stupanj samostalnosti (i inteligencije)
ovisi o programeru.
Iako se čini da Croquet funkcionira sinkrono (promjene su vidljive korisnicima tek nakon
što sve replike objekata ažurirane), objekti se mogu ponašati i asinkrono, i to tako da, ako
postoji višak procesorskog vremena, proračune potrebne za buduće događaje obave
unaprijed.
Samo korištenje Croqueta svodi se na download i instalaciju Croquet SDK-ja koji, uz nužni
Squeak VM, sadrži nekoliko primjera klijentskih i poslužiteljskih instanci te alate potrebne
za modifikaciju i programiranje Croquet virtualnih okruženja. Svi spomenuti alati napisani
su u Squeaku i pokreću se unutar Squeak VM-a.
Što se podrške za obrazovanje tiče, Croquet ima mogućnost prikaza slika, videa, teksta i
zvuka, te već kreirane rutine koje korisnicima omogućuju da takve objekte rotiraju, "prišiju"
za sebe (kako bi ih objekti slijedili) ili pohrane za kasniju upotrebu.
Premda je distribucija i razvoj Croqueta za sad pomalo nezgrapna (Croquet SDK, odnosno
SqueakVM zahtjevno je okružje čiji je princip korištenja ponešto drugačiji u odnosu na
ostala GUI sučelja), projekt nailazi na dobar odaziv baš u akademskim zajednicama.
19
3.2. Kaneva
Kao što je već spomenuto u pregledu popularnih virtualnih svjetova, Kaneva Game
Platform projekt je nastao s ciljem jednostavnog i lakog razvoja MMOFPS i MMORPG
igara, namijenjen je Windows operacijskim sustavima, a sastoji se od četiri glavne
komponente koje su već ukratko i opisane - Kaneva Game Server, Kaneva Game Studio,
Kaneva Artificial Intelligence i Kaneva Game Client.
Premda je prvenstveno zamišljena kao cjelovito rješenje za razvoj igara, Kaneva platforma
može poslužiti i za razvoj virtualnih okruženja s ciljem obrazovanja iako zahtijeva malo
više truda u odnosu na druge razvojne okoline s obzirom da nema već gotove rutine za
prikaz raznih medijskih sadržaja. Također, mnoge mogućnosti Kaneve ostat će
neiskorištene ako je se upotrijebi u obrazovne svrhe, što nikako ne znači da je pritom treba
izbjegavati. Kaneva pruža visok stupanj podesivosti korištenjem posebnih softverskih
modula (tzv. blade pluginova) koji se hijerarhijski nižu kako bi se modificirala
funkcionalnost i ponašanje klijentskog, odnosno poslužiteljskog softvera, pa se izradom
odgovarajućih modula Kaneva brzo može pretvoriti u obrazovanju namijenjeno virtualno
okružje. Za blade module brine se hijerarhijski najviši proces (blade manager), a moguće
20
ih je izrađivati korištenjem C++ programskog jezika, odnosno Lua i Python skriptnih jezika.
Funkcionalnost blade modula može se odnositi na svaki segment klijentskog i
poslužiteljskog softvera.
Mana KGP-a jest što je još uvijek u relativno ranoj fazi razvoja i neke funkcije slabo su
dokumentirane, a premda se navodi da ima odličnu podršku za kreaciju obrazovnih
virtualnih okruženja, ne postoje primjeri koji bi to potkrijepili.
Od svih navedenih platformi, možda baš Active Worlds porodica svjetova ima najveći
potencijal za edukaciju. Dizajneri Active Worlds virtualnih okruženja namijenjenih
obrazovanju mogu koristiti bilo koji Ogre XML kompatibilan alat za 3D modeliranje (to
uključuje i tri najpopularnija - Mayu, 3ds Max i Blender), a ponašanje virtualnih objekata
moguće je programirati koristeći Active Worlds SDK koji ima podršku za C++, VisualBasic i
COM programske jezike. Izrada virtualnih osoba (tzv. botova)u Active Worlds univerzumu
jednostavan je poduhvat jer modifikacijom nekog od postojećih predložaka relativno brzo
možemo napraviti virtualnu osobu koja će zadovoljavati edukacijske potrebe.
Drugi adut Active Worlds univerzuma jest njegova brojna korisnička zajednica. Velik broj
korisnika znači da postoji i velika i lako dostupna baza virtualnih objekata koje, ovisno o
licenci, drugi korisnici mogu koristiti za svoje svrhe, a nije naodmet spomenuti ni određen
broj iskusnih entuzijasta koji su posredstvom internetskih foruma spremni pomoći
početnicima.
Active Worlds virtualna okruženja za njihov prikaz koriste Windows Media Player i tako
podržavaju velik broj različitih formata, a za prikaz web sadržaja zadužen je Internet
21
Explorer. Dodatnu prednost predstavlja mogućnost razmjenjivanja datoteka između
korisnika.
Većina rečenog za Active Worlds porodicu svjetova može se primijeniti i na Second Life.
Najveća prednost Second Life virtualnog svijeta jest njegova popularnost s kojom dolazi i
mnogo virtualnih objekata i LSL skripti, pa tako i onih namijenjenih edukaciji. Premda
korisnici Second Lifea za dodavanje dodatne funkcionalnosti virtualnim objektima koriste
LSL, a ne C++ ili Visual Basic, postoji velik broj nastavnih pomagala koja, uz objekte
sposobne prikazivati tekst, prezentacije i video sadržaje, uključuju i specijalizirane objekte
kao što su simulatori logičkih sklopova ili animirani modeli atoma, ali i učionice, auditoriji i
ostale građevine namijenjene nastavi.
4.5. Multiverse
22
4.6. Project Wonderland
Project Wonderland pripada nizu Java Desktop open source projekata, a nastao je s ciljem
izrade umreženih virtualnih okruženja namijenjenih poslovanju i suradnji općenito. Iako je
trenutno u vrlo ranoj fazi razvoja, valja ga spomenuti zbog vrlo zanimljive mogućnosti
dijeljenja aplikacija među korisnicima. Naime, klijentski softver omogućava svakom
korisniku da unutar virtualnog okruženja u za to predodređenom okviru koristiti
nemodificirane 2D desktop aplikacije, bilo da se radi o komponentama raznih Office
paketa, preglednicima slika, filmova i zvuka ili nečem trećem. Ta mogućnost, uz jasne
prednosti u svrhe obrazovanja, omogućava korisnicima da svoje dnevne poslove obavljaju
unutar virtualnog okruženja, ali valja primijetiti da je trenutno ograničena na Linux i Solaris
operacijske sustave, odnosno X11 / Xorg aplikacije.
23
• Sun Labs Voice Bridge softver je namijenjen VoIP komunikaciji s mogućnošću
integracije u virtualna okruženja, a Project Wonderland ga koristi za simuliranje
prostornosti zvuka
• Project Looking Glass nastao je s namjerom integriranja 3D grafike u svakodnevni
rad s računalom kako bi se poboljšala funkcionalnost modernih GUI sučelja, a
Wonderland ga koristi za prikaz 2D aplikacija unutar virtualnog okruženja
Za modeliranje se koriste poznati 3D alati kao što su Blender, 3ds Max, Lightwave i Maya,
a graf scene je izrađen u već spomenutom Java 3D .j3s formatu. Na žalost, Wonderland je
vrlo mlad projekt (još je bez verzijskog broja, za sad postoje samo dnevni buildovi) i
poprilično je nestabilan, a za sad niti ne postoje ni javno dostupna testna okruženja.
24
4. Predložak rješenja za obrazovanje korištenjem umreženog
virtualnog okruženja
Kao prvo, mora postojati pouzdano i skalabilno umreženo virtualno okruženje koje
studentima i predavačima omogućava praćenje, odnosno održavanje nastave u (idealno)
realnom vremenu. Valja napomenuti da okruženje treba biti izvedeno tako da pruža što
vjerniji osjećaj prisutnosti bez korištenja posebne VR opreme. Poželjno je i da je klijentski
softver takvih okruženja dostupan na što više različitih platformi.
Drugi kriterij jest da okruženje, baš kao i prava učionica, omogućuje prikaz širokog spektra
medijskih sadržaja koji uključuju prikaz teksta i glasovnu komunikaciju između predavača i
studenata. Prikaz drugih sadržaja kao što su video i zvuk, pa čak i web sadržaji, također je
važan. Modeliranje virtualnih objekata i njihovo skaliranje u svrhu nastave (mikroprocesori,
molekule, strojevi) poželjno je i pruža veliku prednost pred tradicionalnim predavanjima.
Treći kriterij jest lakoća razvoja i modifikacije takvih okruženja. Naime, kako bi se
predavačima koji nisu previše vješti u programiranju (ili korištenju računala općenito)
omogućilo da priređuju virtualna predavanja, potrebno je da su alati za njihovu izradu
jednostavni i intuitivni. Veličina korisničke zajednica također je bitan faktor, jer najbolji izbor
besplatnog savjetovanja i podrške upravo su drugi korisnici.
Uz ova tri glavna kriterija, poželjna je (premda ne i nužna) i mogućnost pokretanja lokalnog
poslužitelja, što bi olakšalo kontrolu i modifikaciju virtualnog okruženja.
25
5. Implementacija
Kako bi se Croquet mogao bolje razumjeti, prvo treba znati ponešto i o Squeaku. Premda
je ranije napomenuto da je Squeak programski jezik, to nije njegova potpuna definicija.
Squeak je, u stvari, open source razvojno okruženje temeljeno na derivatu objektno
orijentiranog programskog jezika Smalltalk-80, a sastoji se od virtualnog stroja i
odgovarajućih image i changes datoteka, odnosno pohranjenog stanja memorije Squeak
VM-a. U većini Squeak distribucija, image datoteka sadrži niz razvojnih (i drugih) alata s
pripadajućim kodom, a uz image i sam VM, distribucije sadrže i druge neophodne
elemente (u slučaju Croqueta to bi bili 3D modeli, teksture i još ponešto). Objektni model
Squeak programskog jezika može se sažeti u sljedećih pet pravila:
Svaki element Squeaka je, dakle, objekt, a objekti međusobno komuniciraju slanjem
poruka (što je u stvari pozivanje metoda drugih objekata). Ponašanje objekata, odnosno
njihovih klasa, može se mijenjati bez potrebe za rekompajliranjem ili ponovnim
pokretanjem VM-a, a često nije potrebno ni ponovno pokrenuti samu aplikaciju.
26
Sam kod i strukturiranje klasa podređeni su što boljoj čitljivosti i intuitivnosti. Primjerice,
dobrim Squeak kodom smatra se onaj koji je moguće čitati poput pojednostavljene verzije
engleskog jezika. S druge strane, klase se, bolje prepoznatljivosti radi, sortiraju u
kategorije, a metode svake klase grupiraju se u protokole. Ishodišna klasa svih Squeak
klasa je Object (nasljeđuje klasu ProtoObject), a osnovni alati za programiranje u Squeaku
su System Browser (odnosno Class Browser) i Debuger. Najčešći alat za pokretanje
Squeak koda je Workspace, premda ga je moguće pokrenuti iz gotovo svakog alata u koji
se može unijeti tekst.
izraz značenje
27
Dodatnu pažnju valja posvetiti slanju poruka (odnosno pozivanju metoda drugih objekata).
Primjerice, izraz 3 factorial će objektu 3 poslati selektor factorial, odnosno
zahtjev za izvršavanjem metode factorial nad samim sobom, nakon čega će objekt
vratiti povratnu vrijednost metode. S obzirom da za pozivanje metode factorial nije
potreban argument, takvu metodu zvat ćemo unarnom. Unarni selektori sastoje se od
alfanumeričkih znakova i počinju malim slovom.
Binarne poruke zahtijevaju selektor i jedan argument, pa će izraz 3 + 4 značiti da se
objektu 3 šalje poruka + s argumentom 4, a povratna vrijednost će biti zbroj tih objekata jer
je + metoda koja će zbrojiti poslani objekt s objektom koji je izvodi. Binarni selektori mogu
se izabrati iz sljedećeg skupa znakova: +, -, /, \, <, >, =, @, %, |, &. ?, *.
Poruke s ključnim riječima mogu imati više selektora s pratećim argumentima. Selektori
poruka s ključnim riječima sastoje se od alfanumeričkih znakova, počinju s malim slovom,
a završavaju s dvotočkom.
Pri izvođenju prvo se izvode unarne poruke, zatim binarne, a tek onda poruke s ključnim
riječima. Kod izraza istog prioriteta, izvođenje se odvija s lijeva na desno, a pojedine izraze
moguće je ograditi zagradama pri čemu imaju prednost kod izvođenja.
Uvjetni izrazi u Squeaku oslanjaju se na poruke ifTrue: i/ili ifFalse:, pa će tako sljedeći
izraz vratiti niz 'bigger':
28
Iako se Squeak hvali lakom čitljivošću, ponekad je teško razaznati što se događa u izrazu,
pa ga je najbolje čitati s desna na lijevo, odnosno od kraja linije. Pritom valja imati na umu
da se poruke u Squeaku mogu nizati jedna na drugu, pri čemu valja pažljivo razaznati
primatelja, selektor i argument i pritom paziti na prioritet izvođenja pojedine poruke. Evo
nekoliko primjera (brojevi označavaju redoslijed izvođenja):
I na posljetku, novonastale klase (ili cijele kategorije) valja pohraniti. Najjednostavniji način
je spremanjem trenutnog memorijskog stanja Squeak VM-a u nove image i changes
datoteke, ali to, uz otežanu distribuciju, zna zauzeti puno prostora na čvrstom disku,
pogotovo ako je rad bio memorijski zahtjevan, a po njegovom završetku nije provedeno
rasterećivanje memorije. Alternativa je tzv. fileout pojedine kategorije ili klase, kojim se kod
sprema u xml datoteku koja se korištenjem File List alata može importirati u bilo koju
Squeak distribuciju.
29
Kao što je ranije spomenuto, Croquet koristi peer-to-peer način komunikacije, pri čemu
svaki korisnik ima svoju lokalnu kopiju okruženja od koje se propagira promjena u trenu
kad se dogodi. Temelj takvog načina rada je Island, odnosno otok, koji je osnovna jedinica
replikacije u Croquetu i koji u većini slučajeva sadrži samo virtualno okruženje, pri čemu
valja imati na umu da izraz otok, ovisno o kontekstu, može označavati pojedinu, lokalnu
instancu pojedinog otoka (repliku) ili skup svih replika jednog otoka.
Kako bi se u potpunosti objasnilo Croquetov način rada, uz otoke valja uvesti i objasniti
nekoliko novih pojmova.
Otoci su neka vrsta meta-objekata koji enkapsuliraju druge objekte i strogo kontroliraju
njihovu komunikaciju s vanjskim, što je i nužno ako želimo osigurati identično ponašanje
svake kopije okruženja koja postoji. Objekti smješteni unutar otoka u međusobnoj
komunikaciji ponašaju se identično ostalim Squeak objektima, ali ne mogu slati, niti
primati, poruke od objekata izvan otoka. Za takvu komunikaciju brine se TFarRef, objekt
koji postoji izvan otoka, a služi kao svojevrstan proxy za slanje poruka objektima unutar
otoka. Premda postoje načini komunikacije s objektima unutar otoka bez korištenja
TFarRef objekta, to je iznimno riskantno baš zato što je za dobar rad virtualnog okruženja
nužno osigurati da se, uz identično stanje i ulazne parametre, sve replike ponašaju
istovjetno. Valja naglasiti da otoci i replikacija nemaju veze s iscrtavanjem okruženja, koje
ima smisla samo ako se izvodi individualno na svakom korisničkom računalu.
Primjerice, slanjem gornje poruke objektu farRef zahtijevali bismo od njega da za 1000
ms izvrši metodu aMessage: s argumentom arguments. Otoci poruke sortiraju u
uređeni red prema timestampu i to je jedini način na koji mogu mjeriti protjecanje vremena
30
(dakle uvijek u formatu sada + neka vrijednost), a tijekom izvođenja pojedine poruke
vrijeme otoka ne napreduje. Valja naglasiti da timestampove na eksterno generiranim
porukama određuje Croquet usmjeritelj (o kojemu će više riječi biti kasnije), dok će na
internim porukama timestamp biti zbroj trenutka izvođenja sa vrijednošću koju je definirao
programer.
Croquet usmjeritelj ima dvije bitne funkcije. Prva, kao što je već spomenuto, jest da
slanjem, odnosno usmjeravanjem eksternih poruka replikama otoka služi kao sat, pri čemu
će, ukoliko takvih poruka nema, sam generirati prazne poruke (tzv. heartbeat poruke) i
slati ih kako bi replike mogle izvršavati vlastite interne poruke. Druga važna funkcija
usmjeritelja jest repliciranje i razašiljanje poruka koje dobije od Croquet kontrolera (o
kojem će isto biti više riječi u daljnjem tekstu).
Croquet usmjeritelji mogu biti postavljeni bilo gdje na mreži, premda će tvorac otoka
najčešće instancirati i usmjeritelj.
Croquet kontroler čini par svakoj replici otoka i ima dvije bitne funkcije: predstavlja sučelje
između usmjeritelja i otoka te korisnika i otoka, a pritom se bavi i uređivanjem reda poruka
koje čekaju na izvršavanje.
31
Kontroler može postojati i bez otoka, a u takvim situacijama simulira proto-otok sve dok se
pravi otok ne kreira ili replicira.
Svaki Croquet otok (skup replika) ima pripadajući usmjeritelj, a svaka njegova replika ima
kontroler. Pretpostavimo da korisnik poželi objektnu smještenom unutar otoka poslati
poruku koja će se izvršiti čim je prije moguće:
Izrada klasa u Squeaku vrlo je jednostavna i izvodi se u System Browseru (odnosno Class
Browseru). Započinje definiranjem imena klase i klase koju nasljeđuje, a nastavlja se
definiranjem metoda i njihovim grupiranjem u protokole. Osnovni protokol je initalization
koji je ekvivalent konstruktora klase u Javi i C++-u, a njegova osnovna metoda je initalize i
izvodi se odmah po instanciranju objekta. Klase mogu nasljeđivati metode svojih nadklasa
i nadjačavati ih, a preopterećivanje operatora (selektora) nije moguće. Valja primijetiti
podjelu protokola i metoda na instance i class kategorije, u kojoj se class metode mogu
izvoditi bez instanciranja objekta, dok se instance metode mogu izvoditi samo nad
instanciranim objektom, no programer većinu vremena neće raditi razliku između ove dvije
kategorije.
33
Klase projekta grupirane su u BS-Example kategoriju, s izuzetkom nekih metoda koje su
se kao poseban protokol morale dodati već postojećim klasama (primjerice metoda
getPopUpMenuScript: klase TFrame).
Prvi objekt koji metoda setup kreira jest harness (instanca klase BSHarness koja će
kasnije biti detaljnije opisana), a kasnije dodaje druge 2D elemente smještene "iznad"
Croquet prozora kao što su izbornici, tipke za navigaciju, dock i slično.
Naposljetku se pokreće metoda setupUser: objekta harness, koja će se spojiti na
usmjeritelj, instancirati kontroler i dobaviti repliku otoka ili, u slučaju da oni ne postoje,
instancirati sve gore navedene elemente:
Metoda BSCroquetParticipant>>#setup
34
Ostale metode klase BSParticipant služe pri inicijalizaciji ostalih elemenata korisničkog
sučelja. Nabrojat ćemo ih i ukratko objasniti čemu služe:
addZoomNavigator stvara alatnu traku u donjem lijevom kutu i dodaje joj preglednik
"snimki" lokacija. Moguće je dodati još koji alat (recimo program za crtanje), ali za izvedbu
ovog projekta to nije nužno.
entry vraća ime klase svijeta (odnosno otoka) koji ćemo instancirati, u slučaju da ne se ne
spajamo na postojeći usmjeritelj i repliciramo postojeći otok.
Harness klase najbitniji su dio Croquet arhitekture. Osim što se harness objekti brinu za
instanciranje osnovnih Croquet elemenata i njihovu međusobnu komunikaciju, oni
instanciraju avatare i definiraju gotovo svu korisničku funkcionalnost (premda korisnici
nikad ne komuniciraju direktno s harnessom, već za to koriste druge objekte) unutar
samog otoka. Harness se isto tako iscrtava scenu koristeći objekte klase OpenGL koja je,
u stvari, klasa-omotač za pravi OpenGL.
Klasa BSHarness nasljeđuje klasu KStandardHarness koja instancira osnovne objekte i
podršku za prostornost zvuka te definira clipboard i velik broj metoda potreban za
35
korisnički rad. U klasi BSHarness dodatno su definirane metode za kreiranje objekata
nužnih za akademsku suradnju, a nadjačane su i neke metode iz nadklasa:
makeBrowser: kreira objekt klase KRFB (VNC klijent namijenjen ugnježđivanju u Croquet
prozor, u našem slučaju KMedia2DContainer), dodaje ga otoku i šalje mu poruku
initializeWithURI: kojom mu dostavlja adresu koju želimo posjetiti. Ista metoda inicira
spajanje na javni XRFB poslužitelj koji će otvoriti web browser sa specificiranom web
adresom. Ukoliko korisnik specificira URI na kojem se nalazi .doc ili .pdf datoteka,
poslužitelj će umjesto web browsera otvoriti odgovarajući preglednik.
makeNewFromFile: kao argument uzima datoteku, a zatim instancira objekt klase KMedia
koji će datoteku otvoriti. KMedia je meta-klasa za multimedijalne sadržaje, a oslanja se na
niz drugih klasa. Nakon inicijalizacije u otoku će instancirati multimedijalni objekt i smjestiti
ga u odgovarajućeg container-objekta.
Metoda BSHarness>>#makeVNC:
36
makeVNC: kreira objekt klase KRFB kako bismo se mogli spojiti na proizvoljan VNC
poslužitelj, no ovog puta incijalizira objekt klase TMorphicWorld koja služi pokretanju
malog broja ugniježđenih 2D Squeak aplikacija. Njegova metoda makeRFB: instancirati će
VNC klijent (XrfbClient) koji će se spojiti na specificiranu lokaciju.
BSMenuWorld služi postavljanju posebnog "sloja" iznad Croquet prozora koji nam
omogućuje da na njega postavimo druge objekte kao što su izbornici. Sadrži jednu metodu
koja nadjačava verziju iz nadklase:
Metoda BSMenuWorld>>#onBootstrap
37
5.3.4. Klasa BSMenuBar
BSMenuBar klasa nasljeđuje klasu KMenuBar i sadrži metode koje definiraju glavni
izbornik te tzv. action metode na koje se vežu pojedine opcije izbornika.
menuBar skupina metoda instancira niz CMenu objekata (izbornika) i vraća ih CMenuBar
objektu koji ih poziva. Svaka opcija CMenu izbornika vezana je uz neku od action metoda
koje su definirane ili u BSMenuBar klasi ili u nekoj od klasa koju nasljeđuje:
Metoda BSMenuBar>>#newWorldMenu
objekt klase TFrame (korijenska klasa za sve čvorove Croquetovog grafa scene) i otvoriti
ga u otoku unutar KMedia3DContainera (container-objekt za trodimenzionalne objekte).
actionNewBrowser je proxy metoda koja harnessu šalje poruku makeBrowser i kao
argument šalje poruku promptForURL.
38
actionNewVNC prvo traži od korisnika da upiše podatke o VNC poslužitelju, a zatim ih
prosljeđuje harness metodi makeVNC: koja instancira KRFB objekt i otvara klijent u
prozoru unutar otoka.
Metoda BSMenuBar>>#actionImport
39
5.3.5. Metoda getPopupMenuScript:
Premda to nije elementarno za funkcionalnost ovog projekta, oni koji to žele vrlo lako
mogu projektirati svoj Croquet svijet, odnosno urediti izgled okruženja na način koji im
odgovara. Iako osnovna klasa gotovo svih Croquet svjetova, BaseWorld, ima sve potrebne
metode za izgradnju novog svijeta, BSWorld nasljeđuje WisconsinWorld radi njegove
metode generiranje terena. BaseWorld svjetovi, naime, za teren imaju spljoštenu kocku
(premda bi se ta metoda mogla nadjačati drugom), dok WisconsinWorld koristi klasu
TFractalTerrain koja iz nekoliko parametara korištenjem diamond-square algoritma stvara
poprilično realističan teren. Drugi razlog nasljeđivanja WisconsinWorld klase jest njena
prilagođenost radu s ostalim Wisconsin objektima, pa ne moramo sami nadjačavati
metode koje generiraju prozore i druge objekte unutar otoka. Nadjačane metode
instanciraju i smještaju objekte u svijet te određuju parametre generacije terena.
Metoda BSBaseWorld>>#initializeToys:
40
terrainHeightScale će objektu klase TFractalTerrain vratiti decimalni broj koji određuje
najveću razliku u visini između dolina i vrhova. Veće vrijednosti daju "brdovitiji" teren.
Važno je spomenuti i klasnu metodu islandID koja vraća objekt klase TObjectID, odnosno
128-bitni identifikator koji se pridružuje svakom Croquet objektu. Premda svjetovi mogu
imati dinamički generiran islandID, mi moramo našem svijetu dati stalni islandID radi
načina na koji funkcionira KStandardHarness. To postižemo instanciranjem TObjectID
objekta s fiksnom 128-bitnom vrijednosti koju možemo dobiti ako u Workspace prozoru
ispišemo povratnu vrijednost izraza "TObjecdID new".
AvatarUser klase u Croquetu nisu samo grafička reprezentacija korisnika, već obuhvaćaju
i komunikaciju korisnika s okolinom, pozicioniraju kameru u odnosu na avatar te
provjeravaju da li je avatar u kontaktu s nekim portalom i po potrebi ga transferiraju u drugi
"prostor" (objekt klase TSpace koji predstavlja korijenski čvor u Croquetovom grafu
scene).
41
Premda je funkcionalnost postojećih AvatarUser klasa sasvim zadovoljavajuća i izrada
nove klase nije nužna za ostvarivanje glavnog cilja ovog projekta, BSAvatar klasa pokušaj
je importiranja WaveFront OBJ modela s Blender BVH animacijama. Naime, Croquet za
grafički prikaz avatara koristi ograničen broj .mdl modela naslijeđenih iz jednog od
projekata koji su mu prethodili (Alice/Wonderland), a kako takve avatare više nije moguće
izrađivati, u sklopu druge Croquet implementacije (SimpleDemo) uključeno je primitivno
importiranje OBJ avatara s BVH animacijama. Dodajući metode tog projekta i naslijeđenoj
klasi KAvatarUser pokušalo se ovom projektu dodati istu funkcionalnost.
42
7. Rezultati
Elementi koji ne rade kako je zamišljeno, ali nisu nužni za ostvarenje projekta:
• importiranje animiranih avatara ponekad radi, a ponekad ne, pri čemu se
TAvatarMotionReplica objekt ne postavlja na istu poziciju kao KUserAvatar pa
prilikom odabira moramo unijeti translacijske parametre
43
Zaključak
Prvi cilj ovog rada bio je pružiti pregled popularnih javnih virtualnih svjetova, analizirati
njihovu ulogu u društvu s naglaskom na obrazovanje i akademsku suradnju te navesti
nekoliko javno dostupnih tehnologija za izradu virtualnih svjetova, odnosno umreženih
virtualnih okruženja općenito.
Sljedeći korak u razvoju ovog okruženja bilo bi prilagođavanje radu s mrežama slabije
propusnosti, a važno bi bilo promijeniti i poopćiti način pristupa mikrofonu i kameri kako
njihovo korištenje unutar okruženja ne bi ovisilo o specifičnom očvrsju. Nadalje, trebalo bi
dotjerati korištenje animiranih avatara i dodati podršku za veći broj multimedijalnih formata.
Vlastoručni potpis
_________________
44
Literatura
45
[17] Službeni Multiverse website
http://www.multiverse.net/
[24] Virtual Worlds - the Future of the Internet? the Future of Education?:
http://library.thinkquest.org/23138/hwelcom.htm
[27] http://www.w-i-s-e.net/
[31] SimTeach: Information and Community for Educators using Multi-User Virtual
Environments
http://www.simteach.com/
[32] Daniel K. Schneider, Virtual Environments for Education, Research and Life
http://tecfa.unige.ch/moo/paris96/papers/daniel.html
46
[33] Andrew P. Black, Stephane Ducasse, Oscar Nierstratz, Damien Pollet, Damien
Cassou, Marcus Denker, Squeak By Example
http://www.iam.unibe.ch/~scg/SBE/SBE.pdf
[34] David A. Smith, Andreas Raab, David P. Reed, Alan Kay, Croquet Programming: A
Concise Guide, Qwaq Inc., 2006.
[35] Igor S. Pandžić, Virtualna okruženja: računalna grafika u stvarnom vremenu i njene
primjene, Element Zagreb, 2004.
47
Dodatak
MacOS X verzije 10.4.1 ili novije ima podršku za OpenAL i nije ga potrebno instalirati.
Linux distribucije na kojima koristimo Croquet moraju imati podršku za OpenGL, odnosno
biblioteku libGL.so i njenu putanju unesenu u sistemsku varijablu LD_LIBRARY_PATH.
Isto vrijedi i za Windows računala čiji grafički pogonski programi moraju imati podršku za
OpenGL.
48
Upute za korištenje programske podrške
Po pokretanju SqueakVM-a treba kliknuti na veliki plavi gumb na kojem piše "Start". Ekran
će se zacrveniti i pojavit će se dijalog koji od korisnika zahtijeva da unese adresu
usmjeritelja na koji se želi spojiti. Ukoliko se polje ostavi praznim, tad će se pokrenuti
lokalni usmjeritelj na koji se udaljeni korisnici mogu spajati.
Nakon kraće pauze iscrtat će se Croquet okruženje na koje smo se spojili i korisnik može
početi s radom.
49
Kretati se može na tri načina:
• pritiskom na desnu tipku miša pri čemu otklon pokazivača od centra Croquet
prozora određuje smjer i brzinu kretanja
• pritiskom lijeve tipke miše na jednu od navigacijskih ikona u donjem desnom kutu
Croquet prozora
• pritiskom na tipke W (naprijed), A (rotacije ulijevo), S (rotacija udesno), i D (unazad)
na tipkovnici
Pritiskom na srednju tipku miša (ili lijevu pri čemu valja držati i ALT tipku na tipkovnici) dok
je pokazivač na nekom objektu otvara se pop-up izbornik.
Pritiskom na lijevu tipku miša na neki od izbornika otvara se podizbornik ili pokreće
odabrana opcija.
50