You are on page 1of 52

SVEUČILIŠTE U ZAGREBU

FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA

DIPLOMSKI RAD br. 2924

AKADEMSKE ZAJEDNICE U UMREŽENIM


VIRTUALNIM OKRUŽENJIMA
Boris Spremo

Zagreb, prosinac 2007.


Mentor rada: prof. dr. sc. Igor S. Pandžić
Sadržaj

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.

Promatrano s tehnološkog gledišta, virtualni svjetovi su, u stvari, umrežena virtualna


okruženja namijenjena velikom broju korisnika. Povijesno gledano, virtualni svjetovi nisu
ograničeni isključivo na virtualna okruženja izvedena u 3D grafici, već su nekad bila
temeljena na 2D i tekstualnim okruženjima koja su istisnuta s nastankom MMOG igara
temeljenih na 3D tehnologijama. S druge strane, postoje podjele virtualnih svjetova prema
namjeni, pri čemu neki razlikuju virtualne svjetove i 3D MMOG igre.

Ovaj rad istražuje virtualne svjetove s naglaskom na moderna 3D virtualna okruženja i


njihov potencijal za obrazovanje i akademsku suradnju. Praktični dio rada uključuje
izgradnju umreženog virtualnog okruženja s nekoliko elemenata nužnih za obrazovanje.

3
1. Umrežena virtualna okruženja i virtualni svjetovi

1.1 Virtualni svjetovi opće namjene

1.1.1. Second Life

Second Life zasigurno je najpoznatiji virtualni svijet dostupan na Internetu. Osnovan je


2003. pod okriljem tvrtke Linden Research Inc. (kolokvijalno zvana Linden Lab), a svoju
popularnost duguje ekonomskom modelu koji, uz trgovinu temeljenu na razmjeni virtualnih
usluga i dobara, korisnicima (Linden ih zove "stanovnicima") omogućuje da mijenjaju
američke dolare u tzv. Linden dolare (L$) i obratno.

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.

Za razliku od klijentskog softvera, poslužiteljska tehnologija pripada samo Linden Labu. Za


posluživanje Second Life virtualnog svijeta brine se mreža Debian Linux poslužitelja
popularno zvana “Grid”, a svaki poslužitelj pokreće jedan ili više poslužiteljskih procesa (taj
broj obično odgovara broju procesorskih jezgri svakog poslužitelja). Svaki poslužiteljski
proces odgovoran je za posluživanje područja dimenzija 256x256x4000 m, što znači da se
Second Life temelji na virtualnom okruženju podijeljenom na jedinice jednolične
geometrijske strukture koje poslužuju raspodijeljeni poslužitelji.

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.

Slika 1.1 Second Life klijentski softver

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.

Bez obzira na mogućnost prijevare korištenjem CopyBot softvera, baš je korisnička


ekonomija glavni adut Second Life svijeta, vjerojatno zato što svojim modelom vjerno
slijedi stvarnosnu. Naime, žitelji svoje vrijeme ili trud mogu prodati za novac, a kako ih je
trenutno malo više od 9 milijuna, kupaca i ponuđača ne nedostaje. Baš nasuprot, potražnja
je takva da vlasnici virtualnih identiteta mogu zarađuju kao prodavači, krupjei, učitelji i
glazbenici, ali i kao obrtnici koji prodaju svoje virtualne objekte, bilo da se radi o
građevinama, nakitu, odjeći ili oružju. Takvo poslovanje može biti vrlo unosno, pa sve
češće čujemo za stvarne tvrtke koje kao primarnu djelatnost navode prodaju usluga i
dobara u Second Life virtualnom svijetu.

1.1.2. Active Worlds

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.

Za razliku od klijentskog, poslužiteljski softver namijenjen je upotrebi na Windows, Linux i


Solaris operacijskim sustavima. Poslužiteljski softver nudi jednostavno, ali moćno sučelje
za konfiguraciju i administraciju virtualnog svijeta koje vlasnicima, odnosno
administratorima svjetova, omogućuje da mijenjaju postavke vezane uz interakciju avatara
te parametre o kojima ovise fizikalni model i prikaz 3D objekata i specijalnih efekata. Za
pristup potrebnim informacijama poslužiteljski softver koristi ugniježđenu verziju MySQL
baze podataka, ali ga je moguće koristiti i sa eksternom MySQL bazom.

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.

Kontrolu nad raznim svjetovima (najčešće se to svodi na kontrolu isteka licence i


uklanjanje eventualnih redudantnih poslužitelja) vrše tzv. uniserver (universe server)
poslužitelji nad kojim kontrolu imaju vlasnici univerzuma. Uniserver poslužitelji spajaju se
na Active Worlds Inc. poslužitelji čija je najčešća funkcija provjera licence i najvećeg
dopuštenog broja korisnika.

Korisnička ekonomija Active Worlds svjetova ne temelji se toliko na konverziji stvarnog


novca u virtualni (i obratno), koliko na plaćanju usluga izrade 3D modela i objekata te
kreiranja cijelih svjetova. Valja spomenuti i da važan segment ActiveWorlds ekonomije čini
naplata iznajmljivanja poslužitelja te naplata licenci na koju pravo ima isključivo Active
Worlds Inc.

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.

Klijentski softver napravljen je isključivo za porodicu Windows operacijskih sustava, a za


normalan rad potreban mu je Internet Explorer verzije 5 ili 6 (ali ne i 7!). Kao i u većini
virtualnih svjetova, funkcionalnost klijenta korisniku prvenstveno nudi odabir načina
kretanja i komunikacije, kao i teleportiranja na neku od predefiniranih lokacija. Uz sve to,
klijentski softver moguće je pokretati u debug načinu rada koji, uz nužna ograničenja,
omogućuje lokalno pokretanje simulacije poslužitelja i mijenjanje određenih parametara.

Poslužiteljski softver u posjedu je tvrtke Makena Technologies, a sam svijet je zamišljen


kao virtualno okruženje slobodne geometrijske strukture koje poslužuju raspodijeljeni
poslužitelji, i to po principu jedan poslužitelj - jedno područje, neovisno o broju fizičkih
procesora u poslužitelju. Objekti u There virtualnom svijetu dijele se na dvije kategorije, od
kojih prvu čine Distributed OBjects (predstavljaju samostalne fizičke objekte) i Paper
OBjects (predstavljaju vlasništva nad fizičkim objektima i slične "pravne" dozvole), koji su
neovisni o drugim objektima, i drugu koja predstavlja objekte ovisne o objektima prve
kategorije kao što su kosa, animacije i namještaj. Svaki od objekata prve kategorije ima
svoj jedinstveni identifikator koji poslužiteljima služi za razaznavanje i manipulaciju, dok se
drugi po potrebi jednostavno dupliciraju. Važno je naglasiti da postoji mogućnost da dva

8
poslužitelja manipuliraju istim jedinstvenim objektom jer se geometrijske cjeline koje oni
simuliraju mogu preklapati.

Po uzoru na planet Zemlju, virtualno okruženje na kojem je temeljen There zamišljeno je


kao kugla radijusa 6000 km na kojoj zemaljsku geografiju zamjenjuju 12 velikih i tisuće
manjih otoka, što je u subjektivnim mjerilima ipak malo manjih dimenzija od Zemlje jer su
There avatari visoki 2,4 m.

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.

1.2 Virtualni svjetovi s mogućnošću igranja

1.2.1 Entropia Universe

Entropia Universe proizvod je švedske tvrtke MindArk, a nastao je iz kompjutorske igre


Project Entropia. Svijet je smješten u zamišljenu daleku budućnost u kojoj korisnici
preuzimaju ulogu kolonista divljeg i još neukroćenog svijeta Calypso, odnosno njegovih
kontinenata Eudorije i Amethere. Ovaj virtualni svijet nije opće namjene, već pripada
porodici MMOG igara (Massive Multiplayer Online Game) smještenih u 3D virtualno
okruženje i vjerojatno ga ne bismo uvrstili u ovaj pregled da pritom nema neke od važnijih
odlika virtualnih svjetova opće namjene.

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.

Slika 1.2 Entropia Universe klijentski softver

Premda je korištenje, odnosno igranje Entropia Universe virtualnog svijeta besplatno,


pritom je teško biti uspješan bez ulaganja pravog, fizičkog novca ili manipuliranja
sredstvima unutar samog virtualnog svijeta jer oprema potrebna za virtualne pustolovine i
razne usluge zahtijevaju novac. Najjednostavniji način pribavljanja virtualnih sredstava jest
mijenjanje stvarnog novca u virtualni, a drugi, ne pretjerano unosan način zarađivanja
virtualnog novca jest naplaćivanje usluga i prodaja virtualnih objekata koje igrači nađu
tijekom svojih pustolovina. Tvrtka MindArk uči na greškama svojih starijih konkurenata pa,
za razliku od Second Life virtualnog svijeta čija je ekonomija podložna raznim prijevarama
i inflaciji, tečaj PED-a je konstantan, a prijevare praktički ne postoje jer se svo poslovanje
obavlja preko malog broja licenciranih virtualnih banaka. Također valja napomenuti da
tvrtka MindArk prodaje virtualne nekretnine svojim korisnicima, pa je, uz gore spomenute
licence za osnivanje banke, poznata i po prodaji najskupljeg virtualnog objekta uopće,
shopping centra čija je cijena bila 100000 američkih dolara.

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.

Struktura i poslužiteljsko uređenje Entropia Universe virtualnog svijeta za sad na žalost


nisu poznati, no kako se radi o velikom svijetu s preko pola milijuna registriranih korisnika,
opravdano je pretpostaviti da se vjerojatno radi o nekoj vrsti mreže distribuiranih
poslužitelja. Isto tako, za sad ne postoji API ili bar neki softverski alat kojim bi entuzijasti i
napredni korisnici mogli kreirati objekte i aplikacije za ovaj virtualni svijet. S obzirom na
ogroman broj korisnika koji će Entropia Universe u budućnosti posluživati, bit će zanimljivo
pratiti i proučavati način na koji će biti izvedeno posluživanje i strukturiranje ovog
virtualnog svijeta.

1.2.2. Kaneva

Kaneva je ime vrlo fleksibilne tehnologije namijenjene brzoj i jednostavnoj kreaciji


virtualnih svjetova s naglaskom na MMORPG (Massive Multiplayer Online Role Playing
Game) i MMOFPS (Massive Multiplayer Online First Person Shooter) igre. S obzirom na
nedavni skok popularnost virtualnih svjetova, tvrtka Kaneva Inc. osnovala je virtualni svijet
temeljen na vlastitoj tehnologiji.

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:

 Kaneva Game Client klijentski je softver opremljen 3D grafičkim i fizikalnim


engineima, sustavom za ažuriranje, podesivim korisničkim kontrolama i
komunikacijskim slojem u koji su implementirane suvremene sigurnosne rutine.
Podržava velik broj tehnika iscrtavanja i specijalnih efekata, a oslanja se na DirectX
tehnologiju.
 Kaneva Game Studio alat je koji služi brzoj i jednostavnoj izradi i prilagodbi
virtualnih svjetova i ostalih virtualnih okruženja. Ima podršku za velik broj 3D
formata među kojima su i Maya, 3DSMax i Blender.
 Kaneva Artificial Intelligence komponenta služi programiranju ponašanja virtualnih
osoba i entiteta koji služe kao likovi u igrama ili, na primjer, domaćini u virtualnim
svjetovima.
 Kaneva Game Server modularan je i skalabilan poslužiteljski sustav namijenjen
posluživanju jednog ili više virtualnih svjetova s podrškom za optimizaciju i moderne
sigurnosne rutine.

Valjda naglasiti da Kaneva Game Platform ima i C++ API te podržava skriptiranje
korištenjem Lua/Python skriptnog jezika.

1.2.3. Multiverse

Multiverse je tehnologija na kojoj se temelje deseci virtualnih svjetova, neovisno o tome da


li su namijenjeni igranju ili nečem drugom. Slično kao i Kaneva, Multiverse je projekt grupe

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.

Klijentski softver, koji za sad postoji samo za Windows operacijske sustave, uz


funkcionalnost karakterističnu za većinu proizvoda namijenjenih pristupu virtualnim
svjetovima, korisnicima omogućuju pretraživanje Multiverse svjetova korištenjem web
preglednika, pri čemu valja imati na umu da se pristup može naplaćivati (ili ograničiti na
neki drugi način), ovisno o odluci vlasnika svijeta. Jedna od prednosti takvog pristupa je i
već postojeća baza Multiverse korisnika, pa novi svjetovi do publike dolaze puno lakše
nego kod samostalnih proizvoda. Grafički engine oslanja se na OpenGL, a za prikaz
HTML sadržaja koristi Internet Explorer.

Poslužiteljski softver izveden je korištenjem Java tehnologije kako bi ga bilo moguće


pokrenuti na cijelom nizu platformi, a njegovo strukturiranje ovisi o vlasniku virtualnog
svijeta. Naime, kako je briga o poslužiteljskom hardveru prepuštena kreatorima, odnosno
vlasnicima svjetova, tako i strukturiranje poslužiteljske mreže i virtualnog okruženja ovisi o
njima. Valja naglasiti da postoji mogućnost distribuiranog i centraliziranog posluživanja,
kao i mogućnost dijeljenja virtualnog prostora prema opterećenju korištenjem quadtree
podjele. Distribuirani poslužitelji informacije međusobno mogu razmjenjivati neposredno u
posebnom binarnom formatu ili posredno korištenjem bilo kojeg JDBC-kompatibilnog
poslužitelja.

Multiverse omogućuje korisnicima kreaciju virtualnih objekata i to preko niza tome


namijenjenih alata, a podržava i sve korištenije formate za 3D modeliranje uključujući Ogre
XML porodicu (Maya, Blender, 3ds Max) i XSI COLLADA. Za vlasnike svjetova uključeni
su i alati za brzu kreaciju terena te podrška za eksterne alate kao što je SpeedTree.

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.

1.3. Svjetovi namijenjeni isključivo igranju

Virtualni svjetovi namijenjeni isključivo igranju gotovo da se mogu poistovjetiti s pojmom


MMOG, odnosno MMORPG koji je najpoznatiji pripadnik porodice. Premda taj pojam
uključuje i umrežena 2D okruženja te umrežene FPS igre, u zadnjih nekoliko godina
postaje sinonim za umrežena 3D virtualna okruženja velike površine i s vrlo velikim brojem
korisnika. S obzirom da se radi o igrama, takva virtualna okruženja, uz funkcionalnost
virtualnih svjetova opće namjene, moraju podržavati i mehanizme za borbu između
virtualnih i stvarnih likova te za sustav vještina kojima se likovi mogu služiti. Ekonomski
aspekti najčešće su ograničeni na in-game ekonomiju, premda postoje pojedinci koji
neformalnim putevima prodaju virtualne predmete za stvaran novac, što je, bar
donedavno, većina vlasnika svjetova nastojala sankcionirati.

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, Mac jednolike raspodijeljeni


Second Life opći Debian Linux odlična
OS X, Linux jedinice poslužitelji

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

Entropia s podrškom za raspodijeljeni


Windows n/a n/a nepostojeća
Universe igranje poslužitelji

s podrškom za raspodijeljeni
Kaneva Windows Windows + IIS n/a odlična
igranje poslužitelji

s podrškom za nejednolike raspodijeljeni


Multiverse Windows J2SE 5.0 odlična
igranje jedinice poslužitelji

Tabela 1.1 Usporedba virtualnih svjetova

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.

2.1. Second Life

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.

2.2. Active Worlds

Premda skupina Active Worlds svjetova popularnošću zaostaje za Lindenovim


proizvodom, obrazovnim ustanovama zanimljiva je baš zato što, uz naknadu tvrtci Active
Worlds Inc., imaju mogućnost posluživati, odnosno posjedovati vlastiti virtualni svijet.
Svjetovi namijenjeni obrazovanju najčešće su smješteni unutar privatnih Intranet mreža
premda se mogu smjestiti i u neovisne javne svjetove ili unutar Active Worlds edukacijskog
univerzuma (AWEDU), pri čemu imaju mogućnost korištenja specijaliziranih virtualnih
objekata i alata.

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.

Slika 3.1 Squeak VM - Croquet MPEG Demo

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.

Slika 3.2. Strukturiranje Kaneva blade pluginova

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.

3.3. Active Worlds

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.

Premda klijentski softver postoji samo za Windows platforme, njegovo sučelje je


jednostavno, jasno i intuitivno pa korištenje od prosječnog korisnika ne zahtjeva suvišan
trud. Poslužiteljski softver postoji za više platformi (Windows, Solaris, Linux) i javno je
dostupan, no postavljanje javnog poslužitelja moguće je samo uz naknadu tvrtci Active
Worlds Inc. (minimalno $10 za svijet dimenzija 200x200 metara s podrškom za do 5
registriranih posjetitelja istovremeno), pri čemu se vlasnik svijeta mora pobrinuti za
poslužiteljski hardver i bandwidth. To je ujedno i jedina mana korištenja Active Worlds
svjetova u obrazovne svrhe.

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.

3.4. Second Life

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.

Kad je u pitanju pribavljanje virtualnog prostora za obrazovno okruženje, sličnosti s Active


Worlds porodicom svjetova prestaju. Second Life poslužiteljski softver nije javno dostupan
(iako postoji primitivno open source rješenje temeljeno na projektu libsecondlife), pa je
nemoguće koristiti privatni poslužitelj, što znači da svatko zainteresiran za virtualno
zemljište mora za njega i platiti, bilo da ga kupuje od Linden Laba ili iznajmljuje od nekog
zemljovlasničkog konzorcija.

4.5. Multiverse

Premda Multiverse tehnologija mnogo obećava, trenutno pruža slabu podršku


obrazovanju. Iako je dosegla verziju 1.0 (što bi valjda trebalo označavati punu
funkcionalnost), Multiverse je još uvijek u relativno ranoj fazi razvoja i njegova korisnička
baza trenutno broji tek nešto više od 16 tisuća korisnika, a kako je prvenstveno namijenjen
igranju, trenutno ne podržava prikaz sadržaja kao što je video ili tekst. Po funkcionalnosti i
količini upotrebljive dokumentacije Multiverse je sličan KGP-u, s tim da se još uvijek ima
određene probleme s grafičkim engineom koji i uz moćne suvremene grafičke procesore
daje relativno slabe performanse i loš subjektivni dojam. Još jedna mana Multiverse
tehnologije u odnosu na KGP jest i nedostatak korištenja softverskih modula kao što su
blade pluginovi.

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.

Slika 3.3 Project Wonderland

Project Wonderland temelji se na 4 druga Java projekta:

• Java 3D ime je Sunovog 3D frameworka koji u Projectu Wonderland služi za


iscrtavanje i izradu grafa scene
• Project Darkstar ime je open source poslužiteljske arhitekture namijenjene MMOG
igrama

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

Kako bismo odabrali odgovarajuću platformu za obrazovanje korištenjem virtualnog


okruženja, moramo postaviti niz kriterija koje one moraju zadovoljavati.

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

S obzirom na propozicije navedene u 5. poglavlju, ovo okruženje biti će realizirano


korištenjem Croqueta. Kao što je ranije rečeno, Croquet je platforma namijenjena brzoj
kreaciji 3D virtualnih okruženja namijenjenih suradnji, a temelji se programskom jeziku
Squeak.

5.1 Osnove Squeaka

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:

1. Sve što postoji je objekt


2. Svaki objekt je instanca klase
3. Svaka klasa ima nadklasu
4. Sve se događa slanjem poruka
5. Ako metoda nije definirana u klasi objekta koji
je poziva, tad mora biti definirana u nekoj od
klasa koju on nasljeđuje

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

startPoint ime varijable ili metode


Transcript ime globalne varijable
self pseudo-varijabla
1 integer, decimalni zapis
2r101 integer, binarni zapis
1.5 float
2.4e7 integer, eksponencijalni zapis
$a znak
'Hello' niz znakova
#Hello simbol
#(123) statičko polje
{1.2.1+2} dinamičko polje
"acomment" komentar
|x y| deklaracija varijabli
x := 1 pridruživanje vrijednosti
[ x + y ] blok izraz
3 factorial unarna poruka
3 + 4 binarna poruka
2 raisedTo:6 modulo:10 poruka s ključnim riječima
Transcript show: hello.
odijeljivanje izraza (.)
Transcript cr
Transcript show: hello;
nizanje poruka (;)
cr
^true povratna vrijednost (^)
Tabela 5.1 Sintaksa Squeaka

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':

Petlje se najčešće formiraju slanjem poruka blok-izrazima, cjelobrojnim objektima ili


kolekcijama:

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):

Slika 5.1 Nizanje poruka u Squeaku

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.

5.2 Osnove Croqueta

Croquet je projekt temeljen na Squeaku, a nastaje s namjerom stvaranja okoline


namijenjene suradnji (u konačnici i operacijskog sustava) koja nastoji u prvi plan dovesti
danas popularne tehnologije poput brze 3D grafike i širokopojasnog Interneta, odnosno
drugih visokopropusnih mrežnih rješenja. Glavna odlika takve okoline bila bi njena potpuna
podesivost i podređenost suradnji u realnom vremenu te uklanjanje razlike između
programera i korisnika, zbog čega je i kao podloga odabran Squeak.

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.

5.2.1. Croquet otoci

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.

5.2.2 Croquet poruke

Croquet poruke ponešto su drugačije od standardnih Squeak poruka. Sastoje se od četiri


komponente: odredišnog objekta, same poruke (selektora), eventualnih argumenata i
vremena u kojem će se izvesti, pri čemu vrijeme nije apsolutno već relativno u odnosu na
sadašnji trenutak.

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.

Druga razlika između interno i eksterno generiranih poruka jest ta da timestampovi


eksternih poruka označavaju krajnju granicu do koje se interne poruke mogu izvršiti, što
znači da možemo doći u situaciju da postoji velik broj interno generiranih poruke koje
čekaju na izvršavanje sve dok otok ne dobije eksternu poruku. Problema s redoslijedom
izvođenja poruka nema jer redom poruka upravlja jedna dretva.

Ovakav model komunikacije među objektima jamči da se interno generirane poruke


implicitno repliciraju bez zauzeća mrežnih resursa (s obzirom da bi se svaka replika otoka
trebala ponašati identično), dok će eksterno generirane poruke replicirati objekt zvan
Croquet usmjeritelj.

5.2.3. Croquet usmjeritelji

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.

5.2.4. Croquet kontroler

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.

5.2.5. Način rada

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:

S obzirom da ne može pristupati objektu direktno, mora to učiniti preko odgovarajućeg


TFarRef objekta koji će korisnikovom lokalnom kontroleru proslijediti poruku. Kontroler,
umjesto da je odmah šalje otoku, poruku prosljeđuje usmjeritelju koji joj dodaje timestamp
te je umnožava i šalje svim replikama, odnosno njihovim kontrolerima, pa tako i
korisnikovom lokalnom kontroleru. Kontroler tu poruku, koja sad ima timestamp, smješta u
red gdje čeka na izvršavanje.

Slika 5.2 Primjer komunikacije s objektom unutar otoka

Croquet okruženje nastaje sljedećim redoslijedom:

1. Instancira se Croquet usmjeritelj. To može biti na bilo kojem računalu dostupnom


na mreži, premda se najčešće radi o računalu korisnika koji započinje komunikaciju.
2. Instancira se Croquet kontroler. To se najčešće događa na računalu korisnika koji
inicira stvaranje okruženja.
32
3. Kontroler šalje usmjeritelju poruku sa zahtjevom za pretplaćivanje. S obzirom na to
da je isti korisnik inicirao kreaciju oba objekta, usmjeritelj šalje potvrdu, premda to
ne mora biti slučaj u za korisnike koji se naknadno spajaju. Usmjeritelj će u ovom
trenutku slati samo heartbeat poruke, a valja naglasiti da korisnik još uvijek ne
može slati poruke otoku preko usmjeritelja.
4. Kontroler sortira dolazne poruke u red i stvara otok. Ne može slati poruke otoku sve
dok mu ne pošalje zahtjev za sudjelovanjem, nakon čega dobiva listu poruka koje
putem usmjeritelja smije slati otoku.
5. Spajanje novih korisnika funkcionira analogno gore opisanom redoslijedu. Korisnici
instanciraju kontroler koji se pretplaćuje na poruke usmjeritelja, a zatim stvara red s
dolaznim porukama, nakon čega putem usmjeritelja prvom korisniku šalje zahtjev
za slanjem kopije otoka. Stanje otoka u tom specifičnom trenutku se pohranjuje i
šalje novom korisniku preko usmjeritelja, a izvršavanje poruka na originalnom otoku
privremeno se zaustavlja sve dok otok nije repliciran kod novog korisnika. U tom
trenu oba korisnika imaju identične redove s porukama i identične replike otoka te
mogu nastaviti s izvršavanjem poruka.

5.3. Opis implementacije

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.

Implementacija ovog projekta oslanja se na niz Wisconsin klasa u kojima su osnovni


Croquet elementi bar donekle prilagođeni radu na WAN mrežama (što se druge Croquet
implementacije ne može reći), a drugi važan element naslijeđen od Wisconsin kolekcije
jest podrška za neke od medijskih formata nužnih za izradu našeg Croquet projekta.

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).

5.3.1. Klasa BSCroquetParticipant

Klasa BSCroquetParticipant prva se instancira prilikom stvaranja novog Croquet


okruženja, a služi stvaranju njegovih glavnih elemenata. Metoda initialize više klase
(CroquetParticipant) zauzeti će prostor unutar Squeak VM prozora i pozvati će metodu
setup koja će instancirati i podesiti druge potrebne objekte, pri čemu valja naglasiti da se
Croquet prozor u Squeaku tretira kao najobičniji 2D grafički objekt (instanca klase Morph),
pri čemu se vanjski događaji prevode i preusmjeravaju Croquetu.

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.

initializeTweakWorld nadjačava metodu nadklase i instanciranjem BSMenuWorld objekta


stvara "sloj" iznad Croquet prozora koji će sadržati glavni izbornik i metodu za obradu
datoteka koje "dovučemo" na Croquet prozor.

createHarness stvara objekt klase BSHarness.

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.

defaultRouterAddress je metoda koja vraća adresu Croquet usmjeritelja. Poziva je


routerAddress metoda objekta harness posredstvom metode setupUser:. U slučaju da
adresa nije već definirana, prvo je zatraži od korisnika (to se događa nakon što
BSCroquetParticipant pozove setupUser: metodu klase BSHarness), a ukoliko je ne dobije
tada instancira vlastiti usmjeritelj i otok.

worlds je klasna metoda koja vraća listu poznatih Croquet svjetova.

5.3.2. Klasa BSHarness

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:

initializeAvatar: instancira korisničkog avatara, pridružuje mu korisniči identifikator


(generiran od strane harnessa), pridružuje avatara sebi i dodaje mu lokaciju i sliku ekrana
u trenutku pridruživanja otoku (mySnapshot). Na poslijetku avataru pridružuje model kako
bi ga drugi korisnici mogli vidjeti.

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.

makeSlideShow unutar otoka instancira objekt namijenjen ugnježđivanju drugih aplikacija


(KEmbeddedAppWithMouseOver) koji pokreće TSlideShowApp, objekt namijenjen
sinkroniziranom prikazu niza GIF, JPG i PNG datoteka pod uvjetom da ih svaki korisnik
ima lokalno pohranjene. Lokacija datoteka je hardkodirana za potrebe testiranja, ali se u
međuvremenu odustalo od ovakvog načina prezentacije zbog loše sinkronizacije.

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.

promptForStream je pomoćna metoda koja instancira dijalog za otvaranje datoteka


(CFileOpenDialog) i nadjačava metodu iz nadklase. Koristi se za odabir multimedijalne
datoteke koju želimo otvoriti.

promptForURL pomoćna je metoda koja instancira dijalog za upis adrese prilikom


pokretanja web browsera na udaljenom XRFB poslužitelju. U slučaju da polje ostavimo
praznim vraća adresu koju će vratiti metoda defaultURL.

defaultURL je pomoćna metoda koja će, u slučaju da promptForURL ne vrati smislenu


vrijednost, vratiti ranije definiranu URL vrijednost.

5.3.3. Klasa BSMenuWorld

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

onBootstrap metoda prvo omogućava drag&drop datoteka (takve datoteke će procesirati


metoda onDrop: klase KStandardHarness), a zatim instancira objekt klase BSMenuBar (o
njemu više kasnije), smješta ga u vlastiti prozor i određuje njegovo ishodište. Nakon toga
ga dodaje objektu kojem pripada.

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.

newWorldMenu je metoda koja nadjačava svoju verziju iz nadklase, a služi instanciranju


novog CMenuBar objekta (to je "poluga" smještena na vrh Croquet prozora) kojem potom
dodaje podizbornike.

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

actionImport metoda služi importiranju 3D modela i prvo otvara dijalog za traženje


datoteke (koji odmah filtrira sadržaj direktorija prema željenim ekstenzijama), a zatim traži
od korisnika da unese faktor skaliranja. Nakon što je to gotovo, metoda instancira
odgovarajući objekt koji će pročitati odabranu datoteku i prema njenom sadržaju izgraditi

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.

actionNewFromFile je metoda koja harnessu šalje poruku promptForStream, nakon čega


šalje poruku onDrop: koja obrađuje datoteku i otvara njen sadržaj unutar otoka.

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.

actionAbout metoda otvara prozor (CUserDialogNew) s kratkim informacijama o projektu


i smješta ga u sredini Croquet prozora.
Ostale opcije u izbornicima pozivaju metode definirane u nadklasama.

Metoda BSMenuBar>>#actionImport

39
5.3.5. Metoda getPopupMenuScript:

Metoda getPopupMenuScript: služi instanciranju pop-up izbornika (CMenu), a poziva se


kad korisnik pritisne srednju tipku miša pri čemu se pokazivač mora nalaziti na nekom
objektu. Smještena je u poseban protokol klase TFrame (korijenska klasa za sve čvorove
Croquetovog grafa scene) zato što je svaki objekt izvodi sam nad sobom nakon što dobije
odgovarajuću poruku od korisničkog avatara.

5.3.6. Klasa BSBaseWorld

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.

initializeToys: inicijalizira objekte i postavlja ih unutar svijeta. Ova metoda gotovo je


identična metodi nadklase, osim što ne generira 5 portala nego samo 2. Korisnik tu može
instancirati kakav god objekt želi i prikazati ga unutar odgovarajućeg container-objekta.

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.

terrainSeed vraća peteroznamenkastu decimalnu vrijednost TFractalTerrain objektu na


temelju kojeg će generirati teren. Kad bismo htjeli, mogli bismo iskoristiti Squeakov
generator pseudo-nasumičnih brojeva (klasa Random), ali nastojimo svijetu dati stalan
izgled, pa stoga i konstantna seed vrijednost.

terrainSmoothness vraća decimalnu vrijednost koja određuje koliko će se susjedni vrhovi


terena razlikovati po visini. Viša vrijednost će dati ravniji teren.

terrainTextureName vraća ime datoteke kojom će teren biti teksturiran.

terrainUVScale vraća vrijednost skaliranja koordinata teksture terena.

Postavljanje objekata u prostor obavlja se metodama positon:at: i positon:on:at:, a 2D


prozore i portale moguće je instancirati metodama makeWindow i makeOnePortal:,
premda za to postoje i drugi načini, od kojih su neki demonstrirani u klasi BSHarness.

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".

5.3.7. Klasa BSAvatarUser

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

Cilj projekta bio je izraditi umreženo virtualno okruženje s podrškom za obrazovanje,


odnosno akademsku suradnju, a u 5. poglavlju detaljnije je razrađen koncept projekta.

Elementi koji su realizirani na zadovoljavajući način:


• skalabilno umreženo virtualno okruženje temeljeno na Wisconsin inačici Croqueta s
podrškom za rad na LAN i WAN mrežama. Korisnici koji koriste NAT ne mogu
neposredno međusobno komunicirati
• programska podrška smještena može se pokrenuti na Linux, MacOSX i Windows
platformama
• importiranje 3D modela (3dsMax ASE, WaveFront OBJ, Alice MDL), njihovo
skaliranje, rotiranje i translatiranje u realnom vremenu
• importiranje slikovnih datoteka (GIF, PNG, JPG i BMP)
• importiranje videa (MPEG1 i MPEG2)
• importiranje zvučnih datoteka (MPEG1 Layer 3)
• obavljanje prezentacija korištenjem ugniježđenog VNC klijenta i prezentacijskog
softvera na VNC poslužitelju
• korištenje ugniježđenog softvera za uređivanje teksta
• mogućnost lake modifikacije virtualnog okruženja

Elementi koji nisu realizirani ili ne rade kako je zamišljeno:


• glasovna komunikacija ne radi uvijek, ovisno o računalu na kojem se inicira
• okruženje zahtjeva visoku mrežnu propusnost i nisku latenciju pa se, shodno tome,
najbolje ponaša na brzim lokalnim mrežama. Korištenje na WAN mrežama s ADSL
pristupom nije pružalo ugodan rad
• okruženje može imati probleme sa stabilnošću, premda se to vrlo rijetko manifestira

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

Sustav je testiran na WindowsXP SP2 i MacOS X 10.4.10 operacijskim sustavima.

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.

Drugi cilj je bio koncipirati i implementirati primjer umreženog virtualnog okruženja


namijenjenog obrazovanju. Zbog prenosivosti, podesivosti i podrške za popularnije
medijske formate, za implementaciju je odabran Croquet, a ostvareni su ciljevi ostvareni
vezani uz najvažnije nastavne elemente, dok su inherentni problemi Croquet platforme
ostali.

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

[1] Virtual Worlds Review


http://www.virtualworldsreview.com/

[2] Službeni Second Life website


http://www.secondlife.com/

[3] Second Life članak na Wikipediji


http://en.wikipedia.org/wiki/Second_life

[4] Second Life Wiki


http://wiki.secondlife.com/wiki/Main_Page

[5] Second Life Education Wiki


http://www.simteach.com/wiki/index.php?title=Second_Life_Education_Wiki

[6] Second Life Education & Non-Profit Organizations


http://secondlifegrid.net/programs/education

[7] Službeni Active Worlds website


http://www.activeworlds.com/

[8] Active Worlds članak na Wikipediji


http://en.wikipedia.org/wiki/Active_Worlds

[9] Active Worlds SDK Wiki


http://wiki.activeworlds.com/index.php?title=SDK

[10] Mauz's Active Worlds Pages: Running a World


http://www.mauz.info/worldrunning.html

[11] Inside the Active Worlds Technology : The Uniserver


http://www.awportals.com/chronicles/e207/inside_the_active_worlds_technology_:_t
he_uniserver_part_2/

[12] Službeni There website


http://www.there.com/

[13] There Wiki


http://www.iay.org.uk/there/wiki/wiki.pl

[14] Službeni Entropia Universe website


http://www.entropiauniverse.com/

[15] Entropia Universe članak na Wikipediji


http://en.wikipedia.org/wiki/Entropia_Universe

[16] Duncan Reily, Entropia Universe: A Better Second Life?


http://www.techcrunch.com/2007/05/17/entropia-universe-a-better-second-life/

45
[17] Službeni Multiverse website
http://www.multiverse.net/

[18] Multiverse Developer Wiki


http://update.multiverse.net/wiki/index.php/Multiverse_Developer_Wiki

[19] Službeni Kaneva website


http://www.kaneva.com/

[20] Kaneva Game Platform


http://www.kaneva.com/channel/channelPage.aspx?communityId=85697&pageId=8
9747

[21] Andrea L. Foster, A Virtual World for Education


http://chronicle.com/wiredcampus/article/2119/a-virtual-world-for-education

[22] Službeni Immersive Education website


http://immersiveeducation.org/

[23] Worlds In Motion


http://www.worldsinmotion.biz/

[24] Virtual Worlds - the Future of the Internet? the Future of Education?:
http://library.thinkquest.org/23138/hwelcom.htm

[25] Tristan Louis, Economic Activity in Virtual Worlds


http://www.tnl.net/blog/2006/07/31/economic-activity-in-virtual-worlds/

[26] Oz Spade, Virtual Worlds Comparison


http://oz.slinked.net/compare.php

[27] http://www.w-i-s-e.net/

[28] Službeni Croquet Consortium website


http://www.croquetconsortium.com/

[29] Squeak Wiki


http://wiki.squeak.org/

[30] Project Wonderland


https://lg3d-wonderland.dev.java.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

Upute za instalaciju programske podrške

Programska podrška sastoji se od sljedećih datoteka:

Croquet distribucija s BS-Example klasama:


• Croquet_bspremo.zip

OpenAL instalacijska datoteka:


• oalinst.exe za porodicu Windows operacijskih sustava
• OpenAL_Installer_OSX.dmg za MacOS X operacijski sustav
• openal-0.0.8-1.i586.rpm za Linux operacijske sustave

Datoteku Croquet_bspremo.zip treba otpakirati na željenu putanju. OpenAL instalacijske


datoteke potrebno je pokrenuti kako bi operacijski sustav mogao koristiti OpenAL podršku
za prostornost zvuka. Linux inačica instalacijske datoteke namijenjena je distribucijama s
podrškom za RPM paketni sustav.

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

Pokretanje Squeak VM/Croquet distribucije:


• na Windows računalima treba pokrenuti datoteku BSCroquet.bat
• na MacOS X računalima treba pokrenuti datoteku BSCroquet.image
• na Linux računalima treba prvo provjeriti da li su elementi na koje skripta
Croquet.sh referira dostupni na ranije definiranim putanjama, a zatim treba
pokrenuti skriptu

Datoteke su pozicionirane u direktoriju CroquetBspremo koji se nalazi u datoteci


Croquet_bspremo.zip.

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.

Upisivanje adrese Croquet usmjeritelja

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.

Odabir opcije izbornika

Pritiskom na lijevu tipku miša na neki od izbornika otvara se podizbornik ili pokreće
odabrana opcija.

50

You might also like