Documente Academic
Documente Profesional
Documente Cultură
Lucrare de licen
Ploieti 2008
CUPRINS
1. INTRODUCERE ...........................................................................................................................................6 2. MMOG JOCURI MULTIPLAYER DE AMPLOARE...........................................................................9 2.1. SCURT ISTORIC ........................................................................................................................................ 9 2.2. TIPURI DE MMOG-URI .......................................................................................................................... 10 2.3. MMOG-URILE CA APLICAII WEB ......................................................................................................... 12 2.4. ARHITECTURA UNUI MMOG ................................................................................................................. 15 2.5. FUNDAMENTELE JOCURILOR DE TIP ROLE-PLAYING ............................................................................... 17 2.5.1. Definirea conceptului de role-playing .......................................................................................... 18 2.5.2. Teoria GNS ................................................................................................................................... 18 2.5.3. Modelul Big................................................................................................................................... 20 2.6. LEGTURA SOCIAL A MODELULUI BIG................................................................................................. 23 2.6.1. Comunitile virtuale de juctori .................................................................................................. 23 2.6.2. Internaionalizarea ....................................................................................................................... 24 2.7. CONCEPTE DE BAZ UTILIZATE N JOCURILE DE TIP ROLE-PLAYING ....................................................... 25 2.7.1. Lumea virtual i persistena lumii virtuale ................................................................................. 25 2.7.2. Crima virtual i calamitile virtuale .......................................................................................... 28 2.7.3. Cetenia virtual ......................................................................................................................... 29 2.7.4. Statisticile i Schema Detaliat a Personajului ............................................................................ 29 2.7.5. Clasele de personaje ..................................................................................................................... 32 2.7.6. Imersiunea i Spaiul Comun Imaginat ......................................................................................... 33 2.7.7. Tehnici de manipulare a jocurilor ................................................................................................ 35 2.8. CICLUL DE VIA AL UNUI JUCTOR ...................................................................................................... 37 2.9. PROTOCOALELE JOCURILOR DE TIP ROLE-PLAYING ................................................................................ 38 2.9.1. Interaciunea dintre personaje ...................................................................................................... 39 2.9.2. Comunicarea textual ................................................................................................................... 39 2.9.3. Firul narativ.................................................................................................................................. 39 2.10. ECONOMIA VIRTUAL .......................................................................................................................... 40 2.10.1. Taxele virtuale ............................................................................................................................ 42 2.10.2. Vnzarea i cumprarea artefactelor virtuale ............................................................................ 42 2.11. MMORPG-URILE CA SISTEME DE ASISTARE A DECIZIEI ..................................................................... 43 2.11.1. Definirea Sistemelor de Asistare a Deciziei................................................................................ 44 2.11.2. Clasificarea i caracteristicile sistemelor de asistare a deciziei ................................................ 45 2.11.3. Componentele sistemelor de asistare a deciziei .......................................................................... 48 3. DEZVOLTAREA MMORPG-URILOR ...................................................................................................53 3.1. PROCESUL DE DEZVOLTARE AL JOCURILOR............................................................................................ 54 3.2. ETAPELE PROCESULUI DE DEZVOLTARE A JOCURILOR............................................................................ 55 3.2.1. Pre-producia ................................................................................................................................ 55 3.2.2. Producia ...................................................................................................................................... 56 3.2.3. Pietrele de marcaje................................................................................................................... 57 3.2.4. Apropierea de finalizare ............................................................................................................... 57 3.2.5. Finalizarea i mentenana............................................................................................................. 58 3.3. PROIECTAREA UNUI MMORPG DE ASISTARE A DECIZIEI....................................................................... 59 3.3.1. Stabilirea obiectivelor jocului ....................................................................................................... 59 3.3.2. Provocrile i recompensele jocului ............................................................................................. 62
3.3.3. Economia jocului .......................................................................................................................... 62 3.3.4. Modul de joc ................................................................................................................................. 65 3.3.5. Coninutul jocului ......................................................................................................................... 66 3.4. IMPLEMENTAREA UNUI MMORPG DE ASISTARE A DECIZIEI ................................................................. 72 3.4.1. Stabilirea tehnologiilor utilizate n procesul de implementare ..................................................... 72 3.4.2. Instalarea i configurarea server-ului .......................................................................................... 79 3.4.3. Modularizarea jocului .................................................................................................................. 79 3.4.4. Persistena lumii virtuale .............................................................................................................. 87 4. IMPACTUL MMORPG-URILOR ASUPRA REALITII ..................................................................90 4.1. LEGTURILE DINTRE ECONOMIA JOCURILOR I CEA REAL ................................................................... 90 4.1.1. Piaa virtual ................................................................................................................................ 90 4.1.2. Semnele diminurii barierei dintre economia real i cea virtual.............................................. 91 4.1.3. Drepturile de proprietate .............................................................................................................. 93 4.2. PSIHOLOGIA MMORPG-URILOR ........................................................................................................... 93 4.3. TRENDURI PRIVIND EVOLUIA MMORPG-URILOR ................................................................................ 95
1. Introducere
Computerele au devenit ceva obinuit n viaa de zi cu zi a majoritii persoanelor, n unele cazuri devenind chiar un lucru indispensabil. Dar acestea nu sunt dect sisteme ce prelucreaz informaiile pe care noi le oferim pentru a ndeplini anumite obiective. Aadar, informaia este cea care st la baza acestor sisteme. Astfel, din nevoia de a transmite informaii ntre mai multe calculatoare aflate la distan, a aprut Internet-ul, cea mai mare reea din lume. Internet-ul reprezint o surs semnificativ de documentare, un obiect de studiu n cadrul nvmntului i un instrument de lucru n ce privete cercetarea tiinific. Mai mult dect att, este un mijloc de comunicare ntre persoane sau alte sisteme aflate la distane orict de mari, i un mediu de desfurare a afacerilor, a comerului electronic. Aproape oricine poate avea acum acces la Internet, fapt pentru care a devenit o parte major a transformrilor produse n nvmnt, economie, tehnologia comunicaiilor, .a.m.d. Apariia conceptului de e-learning1 a condus la dezvoltarea semnificativ a educaiei, dat fiind faptul c orice persoan cu acces la Internet poate nva ce dorete direct de acas sau de la servici. Au aprut foarte multe sisteme de e-learning care ofer acces la o multitudine de cursuri online, ba chiar s-a ajuns la a desfura examene online. Multe universiti au luat foarte n serios acest mod de nvare, introducndu-se astfel nvmntul la distan pe calculator, prin intermediul cruia studenii primesc cursurile necesare i d examenele direct pe Internet. Pe lng transformrile aduse n domeniul educaiei i a economiei, o mare transformare a suferit i industria jocurilor. Jocurile au fcut mereu parte din viaa oamenilor, n principal pentru a oferi plcere, amuzament, distracie, dar i pentru a nva sau pentru a lua anumite decizii dificile pe baza norocului fiecruia. Astfel, jocurile au un rol important, chiar primordial, n dezvoltarea creativitii, a iniiativei omului i a spiritului
1
http://en.wikipedia.org/wiki/E-learning
competitiv al acestuia. Nu se poate da o definiie general a jocului, aceasta variind de la un domeniu la altul, dar se poate spune c jocul reprezint o activitate ce are ca scop principal distractia i amuzamentul, acesta presupunnd existena unui plan, stabilirea unor obiective i a unui set de reguli. Astfel, mbinnd distractivul cu utilul, jocurile au luat o mai mare amploare n special n domeniul educaiei, a dezvoltrii omului i a aptitudinilor acestuia. Odat cu apariia jocurilor online a aprut i conceptul de economie virtual1, aceasta existnd n contextul acestor jocuri. Oamenii interacioneaz cu aceste economii n scopuri distractive, dar uneori i din necesitate pentru a obine beneficii economice reale. Cele mai mari economii virtuale s-au nfiinat n jocurile online cu comuniti masive de juctori, aa numitele MMOG-uri2 (Massively Multiplayer Online Games, sau n traducere, jocuri multiplayer de amploare), care fac obiectul de studiu al acestei lucrri. De cele mai multe ori, economiile virtuale conduc la interaciunea cu cele reale, fenomen ce poate fi observat n lumea virtual Second Life3, un joc de simulare a lumii reale reprezentnd cel mai mare pas realizat pn acum n vederea legrii economiei virtuale cu cea real. Lucrarea de fa abordeaz un subiect modern i foarte popular, prezentnd aspectele teoretice ale MMOG-urilor, i aspectele practice ale MMORPG-urilor4 (Massively Multiplayer Online Role-Playing Games) care reprezint un caz particular al MMOG-urilor n care fiecare juctor are un alt rol, i n care nu exist nvingtori sau nvini. Astfel, capitolul doi al acestei lucrri este dedicat aspectelor teoretice ale MMOG-urilor, ct i a prezentrii conceptelor care stau la baza acestor acestora. Capitolul trei prezint etapele de proiectare a unui MMORPG bazat pe browser, tehnologiile necesare realizrii unui astfel de joc i detaliile de implementare pentru aplicaia practic ce acompaniaz aceast lucrare. Ultimul capitol trage concluzii privind impactul MMOG-urilor asupra realitii i a oamenilor, legturile dintre lumea real i cea virtual, i prezint trendurile observate ale acestor tipuri de jocuri.
1 2
Aplicaia practic prezentat n aceast lucrare reprezint o implementare parial a unui MMORPG bazat pe browser n care juctorii concureaz pentru faim n industria virtual a filmelor. Scopul principal al acestui joc este de a iniia viitorii actori i de a-i ajuta s neleag prin intermediul unei simulri cum decurg lucrurile n industria real a filmelor pe care o modeleaz jocul. Conform acestei descrieri, jocul poate fi considerat chiar un sistem suport de decizie care asist juctorul n luarea deciziei privind viitoarea carier a acestuia.
1 2
semnificativ de conturi. Chiar i aa, Second Life are peste 20 de milioane de conturi1, iar pentru multe persoane a devenit o afacere. n ciuda faptului c aceste jocuri au ca obiectiv primar existena comunitilor masive de juctori care s poat interaciona n timp real unul cu cellalt, MMOG-urile nu au renunat nc la juctorii controlai de inteligena artificial, acetia fiind ntlnii deobicei n MMORPG-uri, sub form de oponeni sau, mai rar, sub form de ajutoare. ns se poate observa o nclinare spre renunarea la partea de inteligena artificial datorit renumelui creat de ideea unui joc construit de nsi juctorii acestuia.
MMORPG (Massively Multiplayer Online Role-Playing Games) acestea sunt cele mai renumite jocuri multiplayer de amploare, i pot fi att grafice ct i textuale bazate n special pe browser-ele Web, inventndu-se chiar i un acronim pentru acestea BBMMORPG (Browser-based MMORPG). Recent au nceput s apar tot mai multe MMORPG-uri bazate pe browsere Web datorit costurilor reduse de implementare, dar mai ales datorit nevoii unei aplicaii client care s fie disponibil majoritii utilizatorilor, n cazul de fa browser-ul fiind disponibil tuturor persoanelor cu un computer conectat la Internet. Aceast aplicaie client, care este disponibil aproape tuturor i cu ajutorul creia se poate accesa jocul, poart numele de thin client (client subire). Aa cum se tie, orice calculator cu un sistem de operare relativ performant are deja instalat o astfel de aplicaie client.
http://en.wikipedia.org/wiki/Second_life
10
MMOFPS (Massively Multiplayer Online First-Person Shooter) sunt jocuri de aciune n care juctorul este un vntor ce poate deine diferite arme sau unelte care l ajut s-i ndeplineasc misiunile, acestea constnd deobicei n uciderea personajelor negative. Jocurile de vntoare prezint n mod grafic o lume fantastic sau o simulare a unui loc real dintr-un anumit timp, vzut deobicei prin ochii vntorului. Astfel, vntorul reprezint un personaj fantastic sau chiar unul real, putnd fi identificat n cadrul jocului de ctre ali juctori prin intermediul unui avatar, o imagine bidimensional sau chiar tridimensional care nfieaz aspectul fizic al vntorului. Datorit combinaiei dintre grafica extrem de realist i a violenei prezentate n cadrul acestor jocuri, ele au devenit un subiect foarte controversat, muli considernd c acestea promoveaz violena i afecteaz percepia omului asupra realitii. Cel mai renumit joc de acest gen este Counter-Strike care a luat natere din Half-Life prin introducerea de misiuni noi, chiar i personaje sau arme noi.
MMORTS (Massively Multiplayer Online Real-Time Strategy) n aceast categorie intr jocurile de rzboi n care juctorul este deobicei un rege sau un general avnd ca obiectiv primar crearea i conducerea unei armate ntr-un rzboi astfel nct acesta s fie ctigat. Orice astfel de joc are i un obiectiv secundar care presupune obinerea i meninerea resurselor necesare pentru a putea crea i dezvolta aptitudinile unei ntregi armate. Jocurile de acest gen combin strategiile realizate n timp real (aptitudinea juctorului de a lua decizii rapide i corecte n condiii de stres) i conceptul de lume persistent (abilitatea unui joc de a menine lumea virtual n micare chiar i n lipsa juctorilor).
MMOMG (Massively Multiplayer Online Manager Games) acestea sunt jocuri care dezvolt aptitudinea de manager a unui juctor, fiind relativ uor de jucat deoarece nu implic interacionarea frecvent cu jocul. n aceast categorie intr, n general, jocurile cu teme sportive (fotbal, baschet, hockey, etc.).
11
MMOR (Massively Multiplayer Online Racing) jocuri dedicate raliurilor n care juctorii pot concura ntre ei pe diverse circuite ale unor campionate fictive sau realizate dup cele reale. Pierderea unei curse de maini nu presupune eliminarea juctorilor, acetia putnd continua jocul nscriindu-se n alte campionate, ateptnd apariia unor noi competiii, concurnd online cu prietenii sau realiznd propriile lor competiii.
MMOSG (Massively Multiplayer Online Social Games) acestea sunt un caz mai special de jocuri fiindc nu au la baz ndeplinirea obiectivelor, ci doar socializarea. Aceste jocuri sunt deseori confundate cu comunitile virtuale sau cu lumile virtuale. n cadrul acestui gen intr renumitul Second Life care presupune, pe lng socializare, construirea oraelor i a economiilor virtuale ce depind de obiectele create de utilizatori n cadrul jocului.
12
Privit n ansamblu, un MMOG este o aplicaie web ce poate fi accesat i executat simultan de mai muli utilizatori numii juctori, devenind astfel un joc multiplayer. Privit, ns, din perspectiva aplicaiei client, acesta este doar un joc cu un singur juctor. Aadar, reeaua format de utilizatorii care interacioneaz unul cu cellalt folosind acelai client i apelnd aceleai funcii stocate pe un server centralizat sau distribuit, este cea care ofer jocului caracteristica de multiplayer. Datorit faptului c muli utilizatori au conexiuni slabe la Internet, i deci viteze mici, a aprut o nou problem n ce privete aplicaiile web: durata prea mare de ncrcare i rencrcare a paginilor din care este format aplicaia web, ceea ce reprezint o mare problem n cazul jocurilor. Dar nu a durat mult i au fost gsite soluii de a evita aceast problem. Una din soluii a fost limbajul CSS (Cascading Style Sheets) care, aprut n scopul de a oferi paginilor HTML un aspect mai plcut prin design-uri simple sau chiar foarte complexe, a devenit mai mult dect att prin posibilitatea de a crea elemente interactive n cadrul acestor pagini. Cele mai renumite astfel de elemente interactive sunt meniurile, programatorii web putnd realiza meniuri care interacioneaz la aciunile utilizatorului (ex: mutarea mouse-ului pe un text, ducnd la deschiderea instantanee a unui submeniu care poate conine la rndul lui alte submeniuri). Chiar i cu acest limbaj, paginile tot mai trebuiau rencrcate pentru a reflecta schimbrile petrecute n joc. Aadar un nou limbaj a fost creat, Javascript, care a deschis infinit mai multe oportuniti dect limbajul CSS, acesta permind modificarea paginilor HTML fr ca acestea s mai fie rencrcate. Acum majoritatea jocurilor erau realizate cu tehnologia DHTML1 (Dynamic HyerpText Markup Language), beneficiind de avantaje precum rencrcarea automat a unei pagini la intervale prestabilite, modificarea coninutului paginii fr intervenia utilizatorului, crearea meniurilor foarte complexe prin mbinarea limbajului CSS cu Javascript, .a.m.d. Odat cu apariia limbajelor de programare web pe partea de server (PHP, ASP, ColdFusion, etc.), o nou problem s-a ivit: crearea unei legturi ntre partea de server i cea client pentru a permite comunicarea ntre acestea. Realizarea aplicaiilor web
1
http://en.wikipedia.org/wiki/DHTML
13
interactive care s comunice i n timp real, de exemplu, cu o baz de date aflat pe un server devenise aproape de neconceput. Astfel, a aprut recent nc o tehnologie, i anume Ajax (Asynchronous Javascript and XML), aceasta existnd de ceva vreme dar care nu a fost explorat dect recent. Obiectivul primar al acestei tehnologii este de a permite comunicarea ntre funciile client i funciile server, putnd-se realiza acum aplicaii web care s preia informaii din baze de date aflat pe un server oricnd acestea se modific, i de a le afia n aceeai pagin HTML fr a recurge la rencrcarea acesteia. Aplicaiile web
au devenit astfel tot mai complexe, putnd fi comparate cu aplicaiile pentru desktop n ce privete accesibilitatea, interaciunea cu utilizatorul i chiar interfaa cu acesta (aa cum poate fi observat n figura 2.1), iar Internet-ul a devenit o nou platform de programare1 permind programatorilor s dezvolte aplicaii RIA (Rich Internet Applications) cu funcionaliti i faciliti asemntoare aplicaiilor standard pentru desktop.
http://radar.oreilly.com/archives/2006/12/web_20_compact.html
14
Server-ul i Server-ul Web deoarece jocul este bazat pe comuniti virtuale masive de juctori ce pot accesa simultan jocul, este nevoie de un sistem server (un calculator sau o component special de calculator) care s permit execuia nentrerupt a unui ansamblu de programe (server web) ce ofer clienilor acces la acesta, deobicei prin intermediul protocolului HTTP (HyperText Transfer Protocol) care prelucreaz cererile clienilor i le rspunde prin transmiterea resurselor server cerute (imagini, text, pagini HTML, etc.) sau printr-un mesaj de eroare n cazul n care acetia nu au ndeplinit condiiile de autentificare. Coninutul este reprezentat de totalitatea elementelor ce caracterizeaz tema jocului precum locurile din cadrul lumii virtuale prezentate, personajele cu care interacioneaz juctorii de-a lungul firului narativ, obiectele ce pot fi achiziionate de acetia, caracteristicile lor, .a.m.d. Baza de date orice joc, n special cele de mari dimensiuni, trebuie s aib o baz de date n care s stocheze informaii privind juctorii, progresele realizate de fiecare juctor n parte ct i datele necesare generrii coninutului jocului. Sistemul de Gestiune al Bazei de Date un pachet de programe folosite pentru activitile de administrare a bazei de date, de organizare a datelor i de accesare a acestora n vederea generrii coninutului jocului, etc. Aplicaia Web un ansamblu de fiiere ce conin cod HTML (sau DHTML) i cod specific tehnologiilor server utilizate n comunicarea cu server-ul web (PHP, ASP,
15
ColdFusion, etc.), fiiere ce sunt accesate de aplicaia client pentru a prezenta coninutul cerut de utilizatori ntr-o manier accesibil acestora. Agentul Software o aplicaie software care execut anumite aciuni n locul utilizatorilor sau a altor programe; n cadrul jocurilor, agentul software poate fi folosit pentru a manipula baza de date la intervale specifice (sau chiar n mod continuu) astfel nct juctorii s cread c jocul merge mai departe chiar i n lipsa acestora. Echipamente UPS (Uninterruptible Power Supply) folosite pentru meninerea continu a unui nivel de curent electric preluat de la alte surse atunci cnd sursele principale nu mai genereaz curentul electric necesar funcionrii continue a serverelor. Aplicaia Client aplicaie folosit pentru accesarea i execuia aplicaiei web, de regul un browser web sau o aplicaie pus la dispoziie de productorul jocului.
16
n figura 2.2 este prezentat schema care ilustreaz modul n care toate aceste componente comunic ntre ele. Astfel, primul pas este reprezentat de interaciunea utilizatorului cu aplicaia client care acceseaz server-ul web oferind acestuia detaliile referitoare la cererea realizat de utilizator (pasul 2). Server-ul web trimite aceast cerere mai departe la aplicaia web (pasul 3) care, n funcie de cerere, poate accesa sistemul de gestiune al bazei de date (pasul 4) sau poate genera i pregti coninutul cerut de utilizator n cazul n care nu este necesar accesarea bazei de date (se face salt direct la pasul 8). n cazul n care este necesar accesul la baza de date pentru generarea coninutului, sistemul de gestiune al bazei de date acceseaz la rndul lui fiierele care formeaz baza de date (pasul 5) n vederea prelurii sau modificrii datelor (pasul 6). Aceste date sunt returnate la aplicaia web (pasul 7) pentru a putea genera noul coninut (pasul 8) care este pregtit pentru a fi trimis mai departe la aplicaia client (pasul 9) i, n cele din urm, la utilizator (pasul 10). Agentul software acceseaza n mod regulat (sau continuu) sistemul de gestiune al bazei de date n vederea manipulrii bazei de date pentru a da impresia c jocul continu i dup ieirea juctorilor. La ntreruperea curentului care alimenteaz sistemul, dispozitivul UPS preia curent de la alte surse alimentndu-l n continuare fr ca juctorii s poat sesiza acest eveniment. Aadar, sistemul depinde de toate componentele prezentate mai sus cu excepia dispozitivului UPS care poate lipsi, ct i a agentului software de care nu este nevoie dac nu se dorete simularea continuitii jocului.
17
Gredler M., Designing and Evaluating Games and Simulations: A Process Approach, 1992
18
1. Gamist (juctor) comportamentul tipic de joc, care presupune dorina de competiie i de noi provocri, juctorii cu acest comportament fiind interesai, n special, de caracteristicile personajelor asociate adversarilor, caracteristici necesare pentru a face estimri ct mai realiste n ce privesc ansele de ctig; 2. Narrativist (narator) comportament ce ncurajeaz parcurgerea firului narativ al jocului, presupunnd explorarea universului jocului, luarea n calcul a motivelor ce duc la anumite competiii sau provocri, ct i modul n care este afectat povestea n urma unui ctig sau a unei nfrngeri; 3. Simulationist (simulator) comportament specific juctorilor ai cror obiective principale sunt reprezentate de dorina de a dobndi mai mult experient ct i surse materiale de-a lungul ntregului joc; astfel, juctorii pun accent pe toate detaliile unei competiii pentru a putea determina modalitile optime de a ataca o situaie n scopul obinerii unui maxim de experien i surse materiale.
Indiferent de comportamentul juctorului, acesta trebuie s fie contient de urmtoarele elemente pe care trebuie s le neleag i cu care interacioneaz pe ntreaga durat a jocului:
personajul o entitate sau persoan fictiv asociat juctorului sistemul modul n care se desfoar evenimentele i ce le determin; setarea universul n care se afl personajul (locaia, timpul, etc.); situaia problema cu care se confrunt personajul la un moment dat n joc; culoarea totalitatea detaliilor i a ilustraiilor ce faciliteaz imersiunea realitii juctorului n realitatea virtual reprezentat de universul jocului.
Pe lng comportamentul juctorilor i a elementelor pe care acetia trebuie s le neleag n permanen, teoria GNS clasific juctorii, n funcie de atitudinea acestora n ce privete luarea deciziilor, astfel:
19
actori determin deciziile i aciunile viitoare n funcie de caracteristicile personajelor asociate; autori determin deciziile i aciunile viitoare n funcie de prioritile acestora (a juctorilor) i nu a caracteristicilor personajelor asociate, ncercnd apoi s fac tot posibilul pentru a fi luate deciziile i aciunile propuse. pioni sunt cazuri speciale de autori care nu au motive s fac tot posibilul pentru a fi luate deciziile i aciunile propuse iniial; directori acetia determin att deciziile i aciunile viitoare, ct i momentul i locul n care acestea vor fi luate.
S-au mai realizat i alte teorii derivate din aceasta, ns majoritatea juctorilor le neleg greit considernd c acestea le pot influena comportamentul, fiind obligai n mod indirect s i aleag un singur comportament n loc s permit mbinarea acestora. Dar teoria GNS are ca scop evidenierea celor mai frecvente comportamente observate la juctori, i nu de a le dicta modul de joc.
20
Aceast teorie presupune mprirea aspectelor jocurilor de rol n cinci elemente, patru din ele fiind dependente unul de cellalt i al cincelea avnd rolul de a lega funcionalitile oferite de fiecare din cele patru. Imaginea de mai jos ilustreaz aceste elemente i relaiile de dependen dintre acestea:
Se poate observa c elementul principal este Legtura Social, element care nglobeaz totalitatea interaciunilor dintre juctori i reprezint imaginea de ansamblu a jocului pe care trebuie s o vad orice dezvoltator de jocuri. Fiind elementul principal, celelalte elemente sunt direct afectate de acesta, sau altfel spus, relaiile ce apar ntre juctori afecteaz att modul n care funcioneaz jocul ct i jocul n sine. Conform figurii 2.3, putem observa c legtura social afecteaz n mod direct Explorarea, elementul care ofer jocului caracteristica de role-playing. Explorarea const n descoperirea de ctre juctor a coninutului jocului, bazndu-se pe cele cinci elemente fundamentale ale jocurilor de rol descrise de teoria GNS: personajul, sistemul, setarea, situaia i culoarea. Astfel, relaia de dependen dintre legtura social i explorare este dat de interaciunile dintre juctori, interaciuni care determin nivelul de coninut ce va fi dezvluit juctorului, i invers, noul coninut dezvluit determin noile interaciuni dintre juctori. Explorarea afecteaz, la rndul ei, tehnicile de joc folosite ce se pot schimba n funcie de noul coninut descoperit, iar schimbarea tehnicilor duce la afectarea modului n care se desfoar explorrile viitoare.
21
Dac tehnicile sunt reprezentate de modalitile n care poate fi jucat un joc, efemerul este reprezentat de evenimentele care au avut loc n joc, aadar, a modalitilor deja alese pentru a-l juca. n ciuda denumirii acestui ultim element din ierarhia prezentat, denumire care denot un lucu trector, efemerul servete drept baz pentru modul n care este construit i desfurat jocul, devenind astfel cel mai important element din aceast ierarhie. Legtura dintre toate aceste elemente este reprezentat de ordinea creativ, iar aceasta determin modul n care sunt legate toate cele patru elemente ct i modul n care funcioneaz acestea pentru a oferi experiena dorit de juctori. Altfel spus, ordinea creativ specific motivele pentru care s-a creat jocul, dar i motivele pentru care acesta va fi jucat, iar elementele modelului ofer detalii cu privire la ceea ce motiveaz juctorul, ce duce la motivarea acestuia, .a.m.d. Ca i teoria GNS, modelul Big nu este acceptat printre juctorii acestui gen de jocuri, dar nici printre dezvoltatorii de jocuri care spun c aceast teorie duce la implementri deseori neacceptate de majoritatea juctorilor. De asemenea, aceast teorie se bazeaz n principal pe modele comportamentale care pot interveni n desfurarea jocului, dar nu si pe subiectivitatea juctorilor care pot tri fenomenul de imersiune n realitatea virtual, fenomen ce duce la comportamente i aciuni imprevizibile din partea acestora. Modelul Big nu este, aadar, un ghid n care sunt specificate modalitile de realizare a unui joc perfect de rol, ci este doar un mod de gndire despre cum sunt jucate majoritatea acestor jocuri. Acest model ofer doar principiile de baz pe care pot fi construite teorii i modele derivate, acestea din urm putnd servi drept ghiduri pentu dezvoltatori, ghiduri cu instruciuni specifice pentru realizarea jocurilor de rol ce vor avea la baz modelul Big.
22
Tangenialitatea participarea utilizatorului n cadrul comunitii const doar din vizitarea acesteia, i a citirii articolelor existente Intrarea crearea unui cont n cadrul comunitii, urmat de participarea utilizatorului n publicarea propriilor articole i comentarea ctorva discuii deja existente Implicarea particip n mod frecvent la discuii existente ct i la publicarea articolelor
Ursan-Mihalcea Rzvan Grupa 5353
23
Moderarea primete titlul de moderator, fiind recunoscut i respectat de majoritatea membrilor comunitii Ieirea utilizatorul prsete comunitatea din diverse motive (fie c interesele acestuia s-au schimbat, direcia n care se ndreapt comunitatea nu mai corespunde cu a acestuia, lipsa timpului, etc.)
Un alt aspect important al comunitilor virtuale este cel al motivaiilor membrilor de a paticipa n acestea. Astfel, Peter Kollock consider c motivaiile posibile ale membrilor sunt urmtoarele: Reciprocitatea anticipat motivaia de a oferi informaii pe care membrii comunitii virtuale le consider utile; Recunoaterea sporit motivaia de a fi recunoscui datorit contribuiilor aduse comunitii virtuale; Eficacitatea membrii se pot simi bine datorit informaiilor oferite, tiind c acestea au ajutat sau vor ajuta pe cineva; Comuniunea membrii simt nevoia de a socializa, de a primi rspunsuri la articolele cu care a contribuit n viaa comunitii.
Comunitile virtuale de juctori difer de cele destinate utilizatorilor obinuii prin faptul c acestea sunt formate n cadrul jocurilor online, n special a MMOG-urile. Juctorii pot comunica n cadrul acestor comuniti prin intermediul mesajelor sau aciunilor ce in locul unor mesaje standard. Astfel, comunicarea se realizeaz doar n cadrul lumii virtuale n care s-a format comunitatea virtual respectiv.
2.6.2. Internaionalizarea
Pentru ca jocurile, ct i comunitile virtuale, s fie destinate unei audiene mai mari, acestea trebuie s fie internaionalizate, adaptate diferitelor naiuni, culturi i limbi. Astfel, acestea trebuie s fie proiectate i implementate aa nct s poat fi extinse n orice
Ursan-Mihalcea Rzvan Grupa 5353
24
moment pentru a suporta noi culturi, naiuni i limbi. Este drept c limba englez a ctigat foarte mult teren, iar majoritatea programatorilor (indiferent de naionalitatea acestora) folosesc limba englez n programele lor, i nu doar fiindc limbajele de programare au engleza la baz, dar i fiindc a devenit ca o regul nescris, pentru c un cod n care apare mai mult de o limb deja devine mai greu de neles chiar i de cel care a creat codul. Majoritatea jocurilor din ziua de azi au fost proiectate pentru a putea beneficia de internaionalizare pentru a atrage ct mai muli juctori din toate colurile globului.
25
Lumile virtuale pot fi destinate unui singur utilizator sau chiar mai multora. Cele destinate unui singur utilizator sunt bazate foarte mult pe inteligena artificial care este responsabil de generarea personajelor i a obiectelor cu care utilizatorul poate interaciona la nivel limitat. Lumile destinate mai multor utilizatori permit interaciunea ntre acetia, dar nu nseamn c trebuie s fie complet private de inteligena artificial. Cel mai bun exemplu de lumi virtuale destinate mai multor juctori sunt cele din jocurile de vntoare n care acetia pot face echipe mpotriva calculatorului, a echipelor coordonate de inteligena artificial. Lumile virtuale tridimensionale au rolul de a simula realitatea i a regulilor acesteia precum gravitaia, micarea corpului personajelor, .a.m.d. Mai mult de-att, dac n trecut comunicarea ntre juctori se fcea pe baz de text, acum tehnologiile noi permit comunicarea pe baz de voce cu ajutorul protocoalelor de prelucrare i transmitere a semnalelor preluate de la microfoane, permind astfel juctorilor s se concentreze mai mult la joc. Jocurile destinate unui singur juctor aveau, la nceput, capacitatea de a salva starea curent a lumii virtuale (ca i oprirea timpului) pentru ca juctorul s poat relua jocul din aceeai stare la care a rmas ultima oar. Mai nou s-a nceput crearea jocurilor cu lumi virtuale care beneficiaz de persistent, altfel spus, lumi virtuale care au capacitatea de a-i continua existena chiar i cnd juctorii prsesc jocul. n cadrul acestor lumi virtuale persistente, personajele fictive asociate juctorilor continu s realizeze aciunile de baz (s se odihneasc, s munceasc sau s primeasc salariile), dezvoltarea industriei i a economiei nu depinde n totalitate de aciunile juctorilor, .a.m.d. Astfel, persistena a devenit o caracteristic a oricrei lumi virtuale, celelalte caracteristici fiind urmtoarele:
Spaiul comun imaginat permite participarea simultan a mai multor juctori n acelai spaiu imaginat Caracterul imediat juctorii pot interaciona unul cu cellalt n timp real Interactivitatea posibilitatea de a modifica sau de a crea coninut nou
26
Socializarea ncurajeaz formarea de noi relaii ntre juctori, crearea echipelor sau a cluburilor, etc. Interfaa grafic reprezentarea vizual bidimensional sau tridimensional a coninutului jocului
n ce privete persistena, aceasta poate fi total sau parial. n jocurile cu persisten total a lumii virtuale, proprietile personajelor i a coninutului acestora rmn neschimbate i disponibile chiar i dup prsirea jocului. n schimb, persistena parial (sau pseudo-persistena) presupune pstrarea doar a unor proprieti, restul devenind indisponibile n lipsa juctorului. Lumile virtuale nu au fost realizate doar pentru amuzament i socializare. Este adevrat c cele mai multe lumi virtuale sunt ntlnite n cadrul MMORPG-urilor, ns lumile virtuale mai sunt ntlnite i n domeniul educaiei, n politic, armat, etc. n continuare voi descrie cteva din scopurile pentru care sunt create lumilor virtuale. Socializarea a fost scopul primar pentru care s-a nceput crearea acestor lumi, permind utilizatorilor s comunice n timp real indiferent unde s-ar afla n lume, att sub form de text, ct i pe cale vocal. Utilizatorii se pot folosi de aceste lumi virtuale pentru a aranja diferite scene imaginare n cadrul acestora, scene ce pot oferi un ambient aproape realist pentru a conversa, dar nu numai. Educaia este i ea foarte avantajat de existena acestor lumi virtuale care vin n ajutor n ce privete elaborarea de noi metode de nvmnt, evaluare i dezvoltarea profesional. Astfel au nceput s apar muzee, sau chiar coli virtuale sponsorizate de instituii academice sau alte organizaii i construite n cadrul lumilor virtuale deja existente, coli unde utilizatorii se pot ntlni pentru a nva, pentru a crea proiecte, pentru a fi evaluai de profesori adevrai, .a.m.d. n politic, aceste lumi virtuale sunt folosite pentru organizarea diferitelor dezbateri pentru rezolvarea problemelor de natur politic, iar armata le folosete pentru recrutarea soldailor, antrenamente pe baz de simulri, .a.m.d.
27
Fiindc tehnologiile avanseaz tot mai mult i ntr-un ritm alert, programatorii au nceput s ia n serios conceptul de multivers (sau lume virtual extensibil), o lume virtual care nu cunoate limite i care este construit n totalitate de utilizatorii acesteia, un adevrat univers virtual. Dar dezbaterile pe aceast tem nc mai continu datorit impactului imprevizibil.
28
29
Atribute folosite pentru a caracteriza starea actual a personajului (sntate, stres, dragoste, farmec, aspect, inteligen, atitudine, noroc, etc.) Avantaje i dezavantaje referitoare la capacitile sau abilitile personajului, sau referitoare la impactul pe care l au asupra unor competiii Puteri caliti ale personajului care i ofer anumite avantaje (dar i dezavantaje) n aciunile acestuia Aptitudini reprezint aptitudinile pe care le are personajul, sau pe care le poate nva n joc Clasele personajelor categoria personajului n cadrul jocurilor fantastice (oameni, roboi, creaturi, etc.) sau profesia acestuia
Gradul de detaliere a unui personaj depinde, n mare msur, de dezvoltator, acesta fiind obligat s in cont de toate relaiile dintre statisticile ce trebuiesc implementate pentru a oferi gradul de detaliere dorit, ct i de formulele de calcul ale statisticilor derivate din cele primare (salariul, punctele de experien, nivelul de stres, etc). Pentru ca setul de atribute ales ntr-un joc s fie ct mai bun din punct de vedere calitativ, acesta trebuie s ndeplineasc urmtoarele reguli:
atributele trebuie s poat fi difereniate ct mai uor fiecare atribut are un efect, orict de mic, asupra aciunilor personajului i a outputului jocului se folosete un numr de atribute necesar obinerii nivelul de realism dorit domeniul de valori ale acestora trebuie s nu fie prea mare (exprimarea procentual este cea mai accesibil) domeniul de valori trebuie s fie acelai pentru toate atributele domeniul de valori trebuie s fie ndeajuns de mare nct s permit evaluarea altor personaje n comparaie cu personajul propriu
30
domeniul de valori trebuie s permit atribuirea adjectivelor pentru evaluarea valorilor exprimate s fie n tem cu coninutul jocului
Dup cum am mai spus, statisticile pot fi dependente una de cealalt. n continuare voi prezenta relaiile matematice ce pot avea loc ntre diferitele statistici disponibile ntr-un joc.
Fie
prezint interes pentru lumea virtual V, relaia de interes fiind simbolizat cu ajutorul operatorului de apartenen, i fie statistici A i B ale jocului: valoarea statisticii S a personajului exprimat pe domeniul de valori posibile D. Avem urmtoarele relaii posibile ntre dou
, atunci
Exemplu: pentru ca un personaj s se specializeze n medicin, acesta trebuie s cunoasc mai nti bazele medicinei la un nivel de 90%. 2. Relaia de limitare dac , atunci .
Exemplu: un personaj al crui nivel de stres este sub limita normalului nu poate munci i, deci, nu poate primi acelai salariu. 3. Relaia de bonus dac , atunci .
Exemplu: la atingerea unei valori x a salariului, personajul primete un punct de experien. 4. Relaia de derivare dac i , atunci .
Exemplu: dac nivelurile de stres i sntate ale unui personaj sunt sub limitele x, respectiv y, atunci numrul orelor de lucru scade ducnd automat la scderea salariului obinut.
31
Orice joc de tip role-playing, indiferent c e joc normal sau un MMOG, trebuie s implementeze schema detaliat a personajului care furnizeaz toate informaiile despre personajul juctorului. Aceast schem poate fi consultat de juctor n orice moment al jocului pentru detalii referitoare la statisticile acestuia sau a aspectelor ce definesc personajul, i trebuie proiectat aa nct juctorul s poat gsi i memora uor informaiile necesare. Aadar, dezvoltatorul jocului trebuie s sintetizeze toate informaiile referitoare la personaje ntr-un mod ct mai plcut ochiului i ct mai eficient pentru memorarea vizual a informaiilor necesare juctorilor. Aceste scheme detaliate ale personajelor sunt foarte utile pe toat durata jocului, juctorul putnd analiza schema pentru modificrile survenite n urma aciunilor sale, i putnd analiza chiar i schemele altor personaje pentru a estima aciunile sale viitoare, n special n cadrul competiiilor. S-a constatat, de altfel, c majoritatea juctorilor i petrec mai mult timp analiznd aceste scheme, n special n cazul MMORPG-urilor, aciunile acestora depinznd n mare msur de informaiile referitoare att la personajele acestora, ct i a altor personaje.
32
n funcie de aptitudinile acestora. n jocurile mai realiste, un personaj poate nva astfel aptitudinile necesare pentru o anumit slujb, poate nva ct mai multe aptitudini pentru a deveni mai nelept, sau poate alege s rmn cu o singur aptitudine pe toat durata joculu. De exemplu, un personaj care dorete s poat obine o slujb de avocat, trebuie s nvee diferite aptitudini gen bazele dreptului, bazele controlului n mas a oamenilor, .a.m.d. Tot mai muli dezvoltatori ncep s adopte conceptul de jocuri bazate pe aptitudini datorit faptului c juctorii sunt nevoii s raioneze mai mult i s dezvolte strategii mai complexe, pe cnd jocurile bazate pe clase de personaje depind mai mult de norocul fiecruia. Mai mult dect att, se ncearc combinarea claselor de personaje cu aptitudinile acestora, ns complexitatea jocurilor crete, att din punctul de vedere al implementrii, ct i al juctorilor.
33
reuit, dar mai ales n caz de eec, juctorul triete senzaii foarte reale aproape identice cu cele ale unei situaii similare din realitate. Imersiunea se face, deobicei, cu ajutorul spaiului comun imaginat. Acest spaiu comun imaginat este un concept specific mai degrab jocurilor de rol, i reprezint totalitatea evenimentelor care au loc n acelai timp i spaiu fictiv prezentat de joc, evenimente ce sunt percepute n mod similar, dac nu chiar identic, de un grup foarte mare de juctori. Chiar dac imersiunea presupune concentrarea ateniei n cadrul spaiului comun imaginat, aceasta se poate realiza n unele cazuri chiar i n afara acestui spaiu, de exemplu cnd juctorul se concentreaz i la aciunile altor juctori care pot influena n mod direct aciunile pe care acesta le va lua n continuare. Ernest Adams, autor i consultant n proiectarea jocurilor, a separat fenomenul de imersiune n trei mari categorii, i anume:
Imersiune tactic experimentat n cazul aciunilor bazate pe tactic i aptitudini; Imersiune strategic presupune o activitate cerebral mai intens, iar un bun exemplu este imersiunea experimentat de juctorii de ah care se confrunt continuu cu alegerea strategiilor optime din mulimea strategiilor posibile prin analizarea efectelor acestora asupra rezultatului jocului; Imersiune narativ este asemntoare cu imersiunea experimentat n timpul vizionrii unui film sau la citirea unei cri, juctorul simindu-se implicat n spaiul comun imaginat.
Un alt tip de imersiune care prezint anumite probleme este imersiunea psihologic, caz n care juctorul ajunge s confunde jocul, respectiv lumea virtual, cu realitatea. Chiar dac au mai aprut i alte categorii de imersiune, acestea sunt derivate, deobice, din cele trei categorii prezentate.
34
O alt problem n ce privete imersiunea a fost ridicat datorit modelului Big care se bazeaz pe dinamica social. Astfel, muli juctori consider c, fa de teoria GNS, modelul Big a eliminat conceptul de imersiune dorindu-se axarea doar pe dinamica social, nu i cea personal. Dar, la rndul ei, imersiunea este considerat chiar o tehnic de joc datorit implicrii totale a juctorului n aciunea jocului. Astfel, putem spune c modelul Big nu o elimin deloc, ci doar o ncapsuleaz n componenta tehnicilor.
35
Power-leveling reprezint procesul n care juctorul obine un numr mare de puncte de experien prin cutarea rapid i nfrngerea oponenilor care pot fi uor nvini, punctele de experien oferindu-i ansa de a nfrnge chiar i oponeni mai puternici obinnd astfel i mai multe puncte de experien; Munchkining aciunile juctorului sunt agresive, scopul acestuia fiind de a obine putere maxim, ct mai multe puncte din nfrngerea oponenilor i cea mai mare prad, altfel spus, de a obine ct mai mult din toate; Godmoding reprezint o modalitate de a tria prin activarea unor faciliti nedocumentate cum ar fi invincibilitatea, muniie nelimitat, etc.; Speedrunning (sau alergarea cu vitez) este o tehnic de manipulare a lipsurilor mecanismelor jocului, ns necesit mult atenie din partea juctorului pentru a putea observa aceste lipsuri de care se poate folosi pentru a economisi timp, pentru a beneficia de anumite avantaje sau pentru a avea mai multe anse de ctig; Gold-farming (sau cultivarea aurului) reprezint procesul prin care juctorii achiziioneaz (cultiv) bunuri virtuale n cadrul unei lumi virtuale prin exploatarea elementelor repetitive ale jocului, juctorii fiind ori persoane reale, ori aplicaii software numite bot (de la robot); unul din scopurile acestei tehnici este cel de a obine profit real, China fiind cel mai bun exemplu ca utilizare a acestei tehnici n acest scop.
Chiar dac dezvoltatorii de jocuri vor reui s implementeze mecanisme care s mpiedice aceste tehnici, tot se vor gsi alte tehnici, iar unii dezvoltatori chiar ncurajeaz folosirea unora din acestea, cum ar fi grinding-ul sau speedrunning-ul.
36
intrarea acestuia n joc i pn la ieirea sa. Cu toate acestea, muli juctori nu urmau acest tipar de la cap la coad. Astfel, ciclul de via al unui juctor este format din urmtoarele cinci etape:
1. Intrarea n aceast prim etap, juctorul triete euforia nceptorului datorit intrrii ntr-o lume nou, o lume virtual; motivele pentru care acesta a intrat n joc sunt foarte variate de la un caz la altul; 2. Practicarea juctorul ncepe s nvee regulile jocului, se altur unor grupuri din cadrul comunitii virtuale de juctori iar procesul de explorare l ajut s cunoasc limitele jocului, uneori ajungnd s le exploateze pentru a-i ndeplini obiectivele; 3. Specializarea lumea virtual devine un mediu relaxant pentru juctor, acesta schimbnd direcia jocului pentru a se ocupa mai mult de socializare pentru a atrage mai muli competitori, competiiile fiind cele care l mai menin n joc; 4. Ieirea juctorii care ajung la aceast etap dup ce au parcurs toate etapele anterioare tind s se plictiseasc, s nu mai vad rostul jocului, relaiile create pe parcursul jocului tind s se strice sau, pur i simplu, nu mai a rmas nimic de fcut n joc; dac juctorul ajunge la aceast etap printr-un salt de la prima sau a doua etap, atunci motivele acestuia nu mai in neaprat de joc; 5. Revenirea juctorii care au ieit pot reveni oricnd la prima etap, acest lucru ntmplndu-se cnd acetia dein deja suficiente cunotine despre joc pentru a-l
37
rencepe ntr-o manier mai bun, sau cnd doresc s exploreze jocul din alte perspective.
Dup cum se poate vedea n figura 2.4, ciclul de via propus presupune parcurgerea de ctre juctor a celor cinci etape de la stnga la dreapta (din momentul n care acesta intr n
joc i pn cnd iese), putnd reveni oricnd dorete. O problem ar aprea, de exemplu, cnd juctorul intr n joc, trece la etapa de practicare, iar apoi dorete s ias din diverse motive. n acest caz, aceast schem devine incomplet. Aadar, analiznd din perspectiva juctorului situaiile ce pot aprea n decursul unui joc, propun o variant proprie care ilustreaz toate cazurile posibile, aa cum se poate observa n figura 2.5. De asemenea, etapa de revenire rmne n continuare o etap opional n ambele cazuri prezentate.
38
39
1. Persistena sistemul pe baza cruia s-a construit lumea virtual trebuie s nregistreze continuu strile lumii virtuale, schimbarea acestora, ct i resursele juctorilor n cadrul acesteia, chiar i dup ntreruperea jocului din partea unuia sau a mai multor juctori; 2. Extensibilitatea fiindc economia nu poate pune la dispoziie toate resursele posibile pe care le-ar putea dori un utilizator, acesta trebuie s poat investi timp i bani pentru a obine bunurile i serviciile dorite n cadrul lumii virtuale; 3. Specializarea disponibilitatea resurselor trebuie s varieze astfel nct unii utilizatori s poat produce anumite bunuri i servicii, iar alii s le poat achiziiona, rezultnd astfel n afaceri complexe ntre utilizatorii lumii virtuale; 4. Comerul utilizatorilor trebuie s li se ofere posibilitatea de a oferi bunuri i servicii altor utilizatori; 5. Drepturile de proprietate sistemul trebuie s nregistreze ce bunuri i servicii aparin crui utilizator, acesta avnd posibilitatea de a renuna la drepturile sale; 6. Cererea i oferta economia virtual trebuie s permit atribuirea costurilor bunurilor i serviciilor n funcie de cerere i ofert, nu dup estimrile utilizatorilor.
40
Majoritatea economiilor virtuale dein propriile uniti monetare virtuale crora le corespunde un anumit cost real prestabilit de ctre creatorii acestor economii. De exemplu, o economie virtual poate introduce unitatea monetar virtual eMon a crei valoare poate fi o zecime dintr-o unitate monetar real aleas de creatorul economiei. Pentru ca economiile virtuale s par mai reale, s-au introdus concepte precum taxele virtuale, finane virtuale (care se ocup cu probleme de inflaie, falsificarea banilor sau conversia unitilor monetare virtuale), etc. Cel mai bun exemplu de economie virtual este cea din EverQuest1, un MMORPG masiv din toate punctele de vedere, chiar i cel al economiei. Economia acestei lumi virtuale a fost analizat n amnunt de diveri economiti i doctoranzi n economie, concluziile lor fiind c economia virtual a acestui MMORPG este foarte real. Aadar, un avantaj al economiilor reale este acela c ofer mai mult realitate lumilor virtuale, ns nu este singurul avantaj. Astfel, economiile virtuale pot fi utilizate chiar i pentru studiul economiilor reale de ctre orice utilizator. Cu toate acestea, muli utilizatori rmn sceptici n ce privete realitatea economiilor virtuale datorit numeroaselor controverse care exist. O problem ar putea fi prezentat de securitatea acestor economii virtuale care sunt create, n fond i la urma urmei, de oameni. Alte probleme includ drepturile de proprietate, dat fiind faptul c dezvoltatorii lumilor virtuale au dreptul s le modifice dup cum doresc i cnd doresc. Se poate spune, deci, c juctorii nu dein nici un drept material sau intelectual asupra nici unei pri din joc, ci dein doar drepturile asupra obiectelor imateriale care exist doar n imaginaia acestora i n lumea virtual. Cu siguran va mai dura ceva timp pn economiile virtuale vor fi acceptate de toi utilizatorii, ns cert este c acest lucru se va ntmpla, n special datorit evoluiei accelerate a tehnologiei.
http://en.wikipedia.org/wiki/Everquest
41
42
bunurile virtuale reprezint, de fapt, servicii reale. Oamenii pot cumpra, de exemplu, anumite obiecte virtuale i le pot oferi drept cadouri (virtuale, evident) altor oameni. Astfel, serviciul real const din reprezentarea grafic a obiectului oferit drept cadou, gestul de a oferi un cadou cuiva i faptul c ali utilizatori pot vedea ce cadouri ai primit. Al doilea motiv este c bunurile i serviciile virtuale ofer valoare real, astfel c unii utilizatori consider c, dect s dea bani la cinematograf s vad un film de 2 ore, mai bine cheltuie aceeai sum pe o groaz de bunuri virtuale care s le ofere mai bine de 20 de ore de distracie. Muli ns nu pot realiza valoarea real pe care o au bunurile virtuale. Un alt motiv este cel al costului achiziionrii bunurilor virtuale care poate fi mult mai mic dect cel al crerii acestora, ns crearea lor poate fi mai ieftin n alte locuri geografice cu alte tipuri de economii, creatorii acestora obinnd astfel profit din aceast activitate. De exemplu, chinezii pot crea personaje foarte dezvoltate cu un cost de 30$ per personaj, pe cnd americanii ar fi nevoii s cheltuie n jur de 900$ pentru crearea acestora, i dect s dea 900$ s creeze un personaj dezvoltat, mai bine l achiziioneaz de la chinezi care ofer personajele respective la valori mai mari dect 30$ dar mai mici dect 900$ pentru a putea obine profit.
43
anume de Jocuri de Asistare a Deciziei (prescurtat J.A.D., n traducere Decision Support Games). Acestea au aceleai obiective ca orice sistem standard de asistare a deciziei, dar mai adaug unul nou: amuzamentul, sau mai bine zis ajutarea utilizatorului de a lua decizii ntr-o manier ct mai plcut i relaxant. Aadar, putem afirma c JAD sunt cazuri particulare ale sistemelor de asistare a deciziei. Dac extindem JAD prin adugarea conceptelor de lumea virtual, metavers, multivers, comunitate virtual, .a.m.d., obinem mai mult dect alt tip de jocuri obinem MMODSG (Massively Multiplayer Online Decision Support Games), adic jocuri multiplayer de amploare pentru asistarea deciziei, jocuri ce pot duce sistemele de asistare a deciziei la un alt nivel. Deocamdat acestea sunt nc n faza de teorie, ns scopul lucrrii de fa este de a ncerca o punere n practic a unui astfel de sistem. Aadar, voi prezenta n continuare bazele teoretice ale sistemelor de asistare a deciziei care, mpreun cu aspectele teoretice prezentate pn acum privind MMOG-urile, vor servi la implementarea unui MMODSG.
44
Una din problemele ce apar la definirea SAD este cea a diferenierii de sistemele informatice normale. Am putea spune c SAD sunt sisteme informatice interactive, dar interactivitatea deja a devenit o caracteristic ntlnit n majoritatea sistemelor informatice normale, dac nu n toate. Aadar, pentru a le diferenia de sistemele informatice ce nu au ca scop asistarea deciziilor, putem preciza c SAD au la baz ideea de simulare, simulrile fiind realizate pe baza unor modele care ofer posibilitatea de a calcula i analiza diferitele consecine ce pot aprea n cadrul simulrilor. Astfel, putem defini SAD ca fiind sisteme informatice interactive ce pun la dispoziia utilizatorului instrumentele necesare facilitrii aciunilor acestuia de a lua una sau mai multe decizii ntr-un anumit domeniu.
1. dup nivelul de modelare: bazate pe date cele de tip depozit de date (ex: sistemele de fiiere); bazate pe modele care au ca baz modelele de tip what-if (ex: modele contabile, modele de reprezentare, de sugerare, de optimizare, etc.); 2. dup destinaie: specializate (sau dedicate) care rezolv doar probleme specifice unui anumit domeniu; generatoare folosite pentru a ajuta proiectantul s creeze mai uor i mai rapid SAD specializate; instrumente care faciliteaz dezvoltarea SAD specializate sau generatoare
45
3. dup modul de instruire: inteligente au capacitatea de a rezolva situaiile noi prin analogie; neinteligente rezolv doar situaiile pentru care au fost proiectate; 4. dup interaciunea om-sistem: flexibile dialogul este realizat pe baza limbajului natural; cu comenzi dialogul este realizat pe baza unor comenzi prestabilite; 5. dup numrul de utilizatori: individuale care sunt folosite de o singur persoan; de grup ce pot fi folosite de mai multe persoane; organizaionale folosite n cadrul organizaiilor; 6. dup frecvena utilizrii instituionale folosite n mod frecvent n cadrul unei organizaii; ad-hoc folosite doar n situaii specifice.
O alt clasificare important este cea propus de D.J. Power care spune c SAD sunt de cinci tipuri:
orientate pe comunicaii pun accent pe interfaa cu utilizatorul, aceasta asigurnd comunicarea i colaborarea ntre utilizatori n procesul decizional cu scopul de a lua mpreun o serie de decizii pentru a gsi soluii sau strategii (ex: Microsoft Groove1); orientate pe date faciliteaz accesul la baze de date foarte mari sau depozite de date, interne sau externe, pentru a ajuta utilizatorul n procesul de luare a deciziilor (conform clasificrii anterioare sunt SAD bazate pe date);
http://office.microsoft.com/en-us/groove/FX100487641033.aspx
46
orientate pe documente pun accent pe manipularea informaiilor nestructurate care nu pot fi standardizate i nregistrate cu uurin n baze de date (cataloagele, rapoartele, diferite specificaii ale unor produse, conversaii transcrise, diferite tipuri de corespondene, etc.); orientate pe cunotine similare SAD specializate, ajutnd utilizatorul n rezolvarea diferitelor probleme dintr-un anumit domeniu prin recomandarea unor aciuni specifice; orientate pe modele faciliteaz accesul la modele pentru a asista utilizatorul n analizarea diferitelor situaii n scopul pregtirii unei soluii sau strategii (conform clasificrii anterioare sunt SAD bazate pe modele; un exemplu de astfel de SAD este Dicodess1). Oricare ar fi tipul unui SAD, acesta trebuie s aib urmtoarele caracteristici fundamentale care le deosebesc de sistemele informatice normale: SAD asist deciziile prin combinarea cunotinelor omului cu performana computerelor, asistarea deciziilor putnd fi realizat la orice nivel de conducere; SAD pot asista mai multe decizii dependente ntre ele; SAD parcurg toate fazele procesului decizional; SAD promoveaz nvarea i acumularea de noi cunotine; SAD sporete controlul la nivel de organizaie; SAD faciliteaz comunicarea n cadrul personalului; SAD sunt bazate pe modele standard dar pot fi incluse i modele definite de utilizator; SAD suport luarea deciziilor pentru problemele structurate i nestructurate; SAD trebuie s fie interactive, flexibile i adaptabile; SAD simuleaz scenariile de tip what-if;
http://dicodess.sourceforge.net/
47
48
Mai exist o component opional care este utilizat doar n cazul n care se dorete ca SAD s aib caracteristica de inteligent, i anume componenta de gestiune a cunotinelor care are la baz un sistem expert. Componenta de gestiune a interfeei cu utilizatorul (vezi figura 2.7) faciliteaz comunicarea ntre utilizator i SAD (chiar dac pentru acesta interfaa este chiar SAD) ct i ntre utilizatorii sistemului, i asigur reprezentarea informaiilor necesare n procesul de luare a deciziei ntr-un format accesibil utilizatorului. n funcie de modalitatea de comunicare dintre utilizator i sistem, se disting urmtoarele tipuri de dialog:
limbajul de comand utilizatorul comunic cu sistemul folosind un limbaj bazat pe comenzi predefinite care trebuiesc urmate cu strictee;
meniuri i componente vizuale acestea faciliteaz trimiterea comenzilor ctre sistem fr ca utilizatorul s cunoasc sintaxa acestora; interogri sistemul pune la dispoziia utilizatorului diferite ntrebri cu un set de rspunsuri posibile i acceptate de sistem;
49
formulare ofer utilizatorului componente vizuale, aranjate sub form de formulare, ce pot fi completate de acesta i apoi trimise sistemului; formulare condiionate de output utilizatorul poate alege formulare specifice n funcie de informaiile pe care acesta le necesit din partea sistemului; limbaj natural utilizatorul poate formula cereri scrise n limbaj aproape natural, acestea urmnd a fi prelucrate de un procesor de limbaje naturale; acestea nu sunt ntocmai sigure dat fiind complexitatea implementrii unor astfel de procesoare, dar i din cauza utilizatorului care poate formula cereri foarte complexe sau chiar neinterpretabile de sistem. Componenta de gestiune a datelor (vezi figura 2.8) are un rol foarte important n cadrul SAD fiindc faciliteaz accesul la informaii i pune la dispoziie instrumente de manipulare a acestor informaii, mai ales avnd n vedere faptul c principala surs de informaii a unui SAD este baza de date. Utilizatorul trebuie s aib acces ct mai rapid sau chiar imediat la informaiile necesare pentru procesul de luare a deciziilor, acesta fiind unul
50
din cele mai importante obiective ale acestei componente. Chiar i modului de gestiune a datelor presupune existena unor subcomponente, i anume: baza de date aceasta poate fi o baz de date intern (proprie) care iniial conine doar informaii neprelucrate, dar poate fi i o baz de date extern sau un depozit de date creat prin extragerea datelor din alte surse; dicionarul bazei de date reprezint un catalog al definiiilor tuturor datelor stocate n baza de date, i poate furniza informaii referitoare la disponibilitatea datelor, sursa acestora, etc.; mijloacele de interogare ofer acces la date componentelor SAD prin intermediul cererilor primite de la acestea, folosindu-se limbaje speciale de interogare.
Componenta de gestiune a modelelor (vezi figura 2.9) sprijin procesului decizional prin efectuarea de operaii asupra informaiilor pe baza unor modele specifice, de la simple sortri ale datelor pn la prelucrarea i aranjarea datelor n scopul de a reduce incertitudinea i de a oferi recomandri privind deciziile ce pot fi luate. n acest moment, aproape orice sarcin poate fi modelat i automatizat ntr-un SAD, ns principalele
51
modele folosite sunt nc cele din domeniul matematicii (teoria grafurilor, cercetri operaionale, programarea liniar), statisticii, economiei (teoria jocurilor, microeconomia), chiar i din domenii precum psihologia, sociologia, etc. Aceast component este i ea compus din:
baza de modele ofer SAD capacitatea de analiz i soluionare, i conine seturi de modele standardizate din diferite domenii; dicionarul de modele catalog al definiiilor tuturor modelelor ce furnizeaz informaii cu privire la disponibilitatea modelelor, faciliteaz controlul execuiei acestora, etc; procesorul de execuie al modelelor interpreteaz instruciunile diferitelor modele i le integreaz n sistem.
Aa cum am mai spus, componenta de gestiune a cunotinelor este o component opional utilizat doar n cazul n care se dorete ca SAD s fie un sistem inteligent. Aceast component furnizeaz expertiza i cunotinele necesare soluionrii rapide a problemelor complexe ct i a explicrii modului de soluionare, raionamentele fiind simulate cu cele ale unui expert pornind de la baza de cunotine disponibile.
52
3. Dezvoltarea MMORPG-urilor
n ciuda faptului c MMORPG-urile au devenit foarte cunoscute i chiar foarte utile pentru muli oameni, piaa jocurilor nu este ntocmai dominat de acestea. Motivele sunt numeroase i nu includ lipsa juctorilor, acetia putnd fi gsii n orice col al Internet-ului. Aadar, principalele dou motive sunt timpul i banii, iar de la acestea pornesc multe alte motive. MMORPG-urile sunt jocuri complexe care necesit o implicare semnificativ din partea multor persoane, fiindc durata de dezvoltare a unui astfel de joc poate trece de doi ani iar costurile asociate pot depi chiar zeci de milioane de dolari. Un alt motiv este cel al talentului. Aceste jocuri trebuiesc proiectate i dezvoltate de oameni cu expertize i cunotine vaste n diferite domenii precum programarea (algoritmic, programare concurent, programarea reelelor, programarea grafic), baze de date relaionale sau obiect-orientate, art i design (texturi i grafic bidimensional, modelare tridimensional, animaie, proiectarea interfeelor cu utilizatorul), web-design (cunoaterea limbajelor HTML, JavaScript pentru a conferi dinamicitate, animaie, limbaje de scripting la nivel de server PHP, ASP, CGI, etc.), reele (administrarea reelelor, inginerie client-server, protocoale de reea, securitatea reelelor), crearea coninutului vizual i auditiv pentru joc (sunete, muzic de fundal, personaje, obiecte, hri, scenarii, naraiune), suport tehnic eficient, managementul proiectelor (dat fiind faptul c este nevoie de mai multe echipe care s colaboreze eficient), iar acestea sunt doar baza necesar punerii pe picioare a unui MMORPG complet, n special dac este vorba de unul comercial. Este adevrat c toate aceste cunotine i talente pot fi dobndite de un singur om care poate crea un MMORPG de unul singur, ns acesta cu siguran nu va fi unul compex i nici de mari dimensiuni din cauz c procesul de dezvoltare ar dura prea muli ani i ar costa foarte mult. Astfel, dezvoltarea unui MMORPG simplist de ctre o singur persoan care deine majoritatea sau toate cunotinele necesare poate dura de la 30 de ore pn la 100 de ore, ns dac aceasta dorete crearea unui MMORPG eficient i cu un potenial sporit de succes, doar coninutul jocului va trebui s ajung unui juctor, n medie, timp de 500 de ore1.
http://electronics.howstuffworks.com/mmorpg8.htm
53
unul sau mai muli productori; un manager, directori de art, directori tehnici, directori de proiectare, etc., care nu influeneaz n vreun fel dezvoltarea jocului, ci doar asigur buna comunicare ntre membrii echipelor, ofer consultan n timpul procesului de dezvoltare, etc.; artiti pentru crearea coninutului jocului, ct i a interfeei cu utilizatorul; cel puin un proiectant de joc (game designer); muli programatori; unul sau mai muli proiectani de niveluri de joc (level designer); ingineri de sunet (compozitori, editori de efecte speciale i de voce); testeri pentru a testa jocul pentru a vedea dac s-au respectat cerinele impuse i dac exist probleme n modul de funcionare a acestuia ct i n ce privete interfaa cu utilizatorul.
1
http://en.wikipedia.org/wiki/Game_development
54
De asemenea, un angajat poate ocupa mai mult dect un post din cele prezentate, astfel c pot exista programatori care se ocup i de testare, proiectarea nivelelor jocului, etc. Dar s-a constatat c nu prea se mai practic ocuparea mai multor posturi de o singur persoan, dat fiind faptul c trebuie s depun tot mai mult efort.
3.2.1. Pre-producia
n aceast etap se creeaz i dezvolt ideea jocului care va trebui acceptat de ctre editor pentru a continua procesul de dezvoltare a jocului, dat fiind faptul c jocurile nu pot progresa dac nu au un editor interesat de acestea. Odat acceptat ideea, se ntocmete proiectul care va fi prezentat nivelurilor superioare de conducere, prezentarea putndu-se face de ctre orice membru al echipelor de dezvoltare, dar aceasta este fcut deobicei de proiectanii jocului. Dup prezentarea proiectului, echipele pregtesc documentele de proiectare (design documents). Aceste documente reprezint o descriere a produsului ce va fi dezvoltat, fiind scrise de ctre un proiectant de joc. Rolul unui document de proiectare este de a ndruma echipele de dezvoltare n realizarea jocului, de-a lungul fiecrei etape a procesului de dezvoltare, iar coninutul acestuia prezint arhitectura jocului, cu diagrame i toate detaliile necesare pentru a oferi o viziune singular tuturor echipelor. Astfel, ct timp jocul se afl n dezvoltare, aceste documente nu au un sfrit sau un coninut fixat, putnd fi modificate oricnd, deobicei sptmnal sau chiar zilnic.
55
Imediat ce documentele de proiectare au un coninut ce poate fi utilizat, programatorii pot ncepe s implementeze prototipuri rapide pentru a contura facilitile dorite de productor sau, n unele cazuri, chiar de viitorii juctori. De asemenea, se poate ncepe lucrul la framework-ul (sau scheletul) pe baza cruia se va construi jocul. n aceast etap, productorul jocului este responsabil doar cu planificarea programului de lucru, estimarea bugetului i a sarcinilor fiecrui membru al echipelor de dezvoltare.
3.2.2. Producia
Etapa de producie ncepe cnd majoritatea membrilor din echipele de dezvoltare au primit sarcinile ateptate. Programatorii scriu tot mai mult cod ncepnd cu aceast etap, se ncepe lucrul la coninutul jocului (muzic, efecte speciale, modele bidimensionale sau tridimensionale, povestea i nivelurile acestuia, etc.). Fiecare modificare aprut va fi actualizat n documentele de proiectare iar echipele vor fi notificate de apariia acestora. Probabil cea mai grea sarcin revine proiectantului de niveluri care folosete instrumente proprii de creare a nivelurilor jocului, acestea fiind limitate n funcionalitate i n faciliti. Astfel, datorit limitrii instrumentelor de lucru, acetia trebuie s solicite programatorilor crearea de noi faciliti care s permit o dezvoltare tot mai rapid i mai eficient a nivelurilor. Aceast solicitare continu de noi faciliti ncetinete semnificativ partea de nivelare a jocului, durata de realizare a primului nivel de joc putnd dura chiar i pn la un an. Dar odat ce aceste instrumente devin ndeajuns de puternice ca numr de faciliti i funcionare, proiectantul de niveluri va putea crea foarte repede celelalte niveluri ale jocului, astfel eliminndu-se nevoia de a cumpra instrumente produse de alte companii, instrumente care nu doar c ar fi scumpe, dar probabil nici nu ar oferi toate facilitile necesare. Odat ce se realizeaz primul nivel al jocului, testerii i ncep activitatea de testare a acestuia. Cu ct procesul de dezvoltare se apropie de sfrit, cu att este nevoie de mai muli testeri cu program complet de lucru datorit complexitii foarte mari a jocului.
56
1 2
http://www.civ3.com/ http://en.wikipedia.org/wiki/Game_development
57
1 2
http://www.half-life2.com/ http://www.counter-strike.net/
58
alt parte, au nevoie de foarte mult mentenan datorit configuraiilor hardware variabile de la un utilizator la altul, ct i datorit multitudinii sistemelor de operare ce pot fi folosite. Astfel, dup ce jocul a fost pus la dispoziia publicului, programatorii ateapt s primeasc suficiente notificri de erori ct i cereri de faciliti noi, iar cnd consider c sunt suficiente acetia pot trece la implementarea unui patch. n cazul MMOG-urilor, ns, putem afirma c etapa de mentenan este cea mai important fiindc odat ce vor fi puse la dispoziia publicului acestea se vor afla ntr-o continu mentenan, n special datorit numrului foarte mare de juctori ce pot cere noi faciliti oricnd doresc. i cum implementarea de noi faciliti poate duce la apariia de noi erori, jocul se va afla ntr-o continu mentenan.
59
neles, dat fiind faptul c este vorba de un joc, obiectivul primar al acestuia este de a modela industria filmelor pentru a veni n ajutor oricrei persoane care dorete o carier n acest domeniu dar care nu tie implicaiile lurii unei astfel de decizii. Aadar, jocul va ncerca s i sprijine juctorii n procesul de luare a deciziei privind posibila viitoare carier n industria filmelor, bazndu-se pe procesul de simulare a aciunilor ce pot fi realizate sau care trebuiesc realizate de acetia, a posibilelor evenimente i implicaii asupra carierelor virtuale, etc.
Dup cum se poate vedea n Figura 3.1, stabilirea obiectivelor poate fi fcut doar dup ce a fost terminat procesul de documentare privind tema jocului i posibilitile de realizare ale acestuia. Un obiectiv secundar este acela de a nu limita jocul doar la o carier, permind juctorilor s i aleag orice alt carier i s joace aa cum doresc ei. Aa cum am spus i n subcapitolul 2.9.3., un joc de rol bun nu trebuie s foreze aciunile juctorilor, i nici s le limiteze. Astfel, un juctor poate juca acest joc doar din plcere sau pentru a socializa cu ali juctori, fr a fi obligat la o carier n industria filmelor. Oricum ar fi, jocul nu va pune accent pe celelalte cariere aa cum va pune pe cea din industria filmelor, fiindc ar crete foarte mult complexitatea jocului i durata de realizare a acestuia. Aadar, un juctor cu o
60
slujb de buctar nu va trece prin vreo dificultate, putnd s se concentreze pe scopul sau scopurile pentru care a intrat n joc. Pentru un juctor care este actor, ns, scopul acestuia este de a se concentra asupra carierei sale, de a ctiga reputaie, etc., restul activitilor fiind mai puin importante. Bineneles, orice juctor trebuie s fac mai nti tot posibilul s aib grij de sntatea sa, apoi s se concentreze asupra elurilor sale. Un alt obiectiv este acela de a crea o lume virtual persistent, aa nct jocul s funcioneze chiar i fr implicarea n mod frecvent a juctorilor. n funcie de complexitatea jocului, acesta poate funciona n mod continuu sau poate da impresia juctorilor c funcioneaz continuu. Al doilea caz este specific jocurilor mai puin complexe, i const n actualizarea bazei de date la anumite intervale de timp, n timp ce primul caz presupune existena unui numr mai mare de echipamente eficiente pentru a putea actualiza continuu baza de date fr a avea consecine asupra modului de desfurare a jocului sau a aciunilor realizate de juctori. Film-O-Mania va funciona conform celui de-al doilea caz, lsnd juctorilor impresia c funcioneaz continuu, dat fiind faptul c se dorete a fi un joc simplu cu scopul de a prezenta diverse concepte prezentate n aceast lucrare. Mai exist i alte obiective, printre care crearea unui joc bazat pe browsere web pentru a fi ct mai uor de jucat fr a fi necesar instalarea sau configurarea acestuia de ctre juctori, posibilitatea juctorilor de a juca orict doresc atta timp ct personajele acestora nu ajung la stadiul de moarte virtual din diverse motive (joc cu final condiionat de fenomenul de moarte virtual, i nu de ndeplinirea unor obiective propuse n cadrul acestuia), punerea la dispoziia juctorilor a unei interfee grafice uor de utilizat i ct mai inteligibil care s ofere toate detaliile necesare n orice moment al jocului, internaionalizarea acestuia pentru a atinge o gam larg de juctori din orice col al lumii indiferent de limba vorbit sau naionalitatea acestora, stabilitatea jocului, modularizarea acestuia pentru a putea fi extins sau modificat n orice moment, etc.
61
62
coli i universiti, consultan n diverse domenii, restaurante, hoteluri, servicii de recreere i nfrumuseare, .a.m.d., acestea trebuind pltite de personajele care doresc i dispun de un venit virtual moderat.
n figura 3.2 se poate observa panoul de cumprare a produselor dintr-un magazin oarecare. Jucatorul poate vedea n orice moment al jocului de ci bani dispune, ce produse vinde magazinul n care se afl n acel moment, ct cost produsele n funcie de numrul de bucti dorite, greutatea produselor achiziionate pe care le are la el n acel moment, detalii referitoare la magazin, .a.m.d. Evident, fiecare magazin existent n lumea virtual dispune de alte produse (n funcie de tipul acestuia i de produsele dorite a fi vndute), alte stocuri i chiar alte preuri pentru a simula concurena dintre acesta i celelalte magazine. Cetenii lumii virtuale pot ctiga bani doar angajndu-se, ns procesul de angajare este asigurat doar n cazul n care acetia dispun de cunotinele i aptitudinile cerute de angajator, exact ca i n lumea real. Cetenii virtuali pot obine aptitudinile dorite prin studiu individual din cri cumprate, sau prin studiu n cadrul unei instituii de nvmnt.
63
n figura 3.3 putem vedea lista aptitudinilor unui personaj oarecare, iar procentul reprezentat la fiecare reprezint ct de bine controleaz acea aptitudine. Bineneles, personajul i poate dezvolta aptitudinile prin mai mult studiu, iar n timp le va perfeciona, moment n care indicatorul vizual asociat aptitudinii va reprezenta valoarea procentual de 100%. Astfel, fiecare slujb oferit n cadrul lumii virtuale poate fi ctigat dac se respect regulile impuse de aceasta, reguli ce pot prevedea ca personajul s dein anumite aptitudini la anumite procente minime, aptitudini care la rndul lor pot fi dependente de alte aptitudini cu anumite procente minime. De exemplu, pentru a dobndi aptitudinea fotografie profesionist, personajul trebuie s dein n prealabil aptitudinea fotografie de baz n procent de 80%, iar o slujb de fotograf poate cere ca personajul s aib aptitudinea fotografie profesionist n procent de 60% fapt care atrage de la sine deinerea de ctre personaj a aptitudinii fotografie de baz cu un procent de cel puin 80%. n orice local ar intra personajul, acesta va avea cteva comenzi de baz disponibile, i anume: obinerea informaiilor generale ale localului, intrarea n local (un personaj nu poate face nimic ntr-un local dac nu a intrat mai nti nuntru), vizualizarea personalului al acelui local (poate vedea cine este angajat n local, ce salarii primesc, ce posturi au, dar poate vedea ce posturi sunt libere n acel moment i poate alege n funcie de salariile
64
oferite sau aptitudinile necesare obinerii diferitelor posturi), i vizualizarea listei cu personajele aflate n local n acel moment, putnd interaciona cu acestea. n funcie de tipul localului, acesta poate oferi comenzi speciale aa cum se poate observa n figura 3.2 care, fiind un magazin, ofer comanda de afiare a produselor puse la vnzare de acesta n scopul de a putea fi achiziionate.
65
66
Orice juctor va fi identificat prin numele su sau a indicelui corespunztor acestuia n tabela juctori i parola aleas de acesta, iar toate informaiile cu privire la personajul din joc pot fi regsite n aceast tabel (sex, data naterii n funcie de care se calculeaz vrsta real i cea virtual a juctorilor, data i ora ultimei logri n joc, avatarele alese de fiecare, o ntrebare secret i un rspuns la aceast ntrebare pentru cazul n care juctorul i-a uitat parola i dorete s o recupereze, aciune ce presupune validarea informaiilor oferite de acesta, i multe alte informaii legate de modul de joc i de personajele fiecruia). Atribute_juctori pe lng informaiile din tabela juctori referitoare la personaje, tabela atribute_juctori ofer informaii privind starea acestora (statisticile personajelor, vezi subcapitolul 2.7.4.) de-a lungul desfurrii jocului.
67
Aceast tabel ofer, aadar, informaii privind urmtoarele atribute (sau statistici) ale personajelor: farmecul care are un rol important n socializarea cu alte personaje, aspectul cu o importan semnificativ n diverse situaii (n cariera de actor, n dragoste, etc.), inteligena care ofer personajelor abilitatea de a nva mai repede, de a nelege mai bine sau de a lua decizii raionale n diverse situaii, talentul care este foarte important n orice carier, sntatea care ofer o imagine de ansamblu a strii de sntate a unui personaj i care poate fi influenat direct de o multitudine de factori (mncarea nesntoas, lipsa de odihn, creterea stresului, etc.), faima cu un rol foarte important n cariera de actorie i dragostea care reflect emotivitatea unui personaj i care poate ajuta foarte mult n procesul de socializare. Calendar aceast tabel are un rol foarte important n simularea realitii i n a oferi juctorilor posibilitatea de a percepe anul virtual n acelai mod n care percep anul real, percepie care ajut la obinerea fenomenului de imersiune. n aceast tabel sunt stocate informaiile referitoare la srbtorile existente n cadrul lumii virtuale, data pe care acestea vor avea loc (dat reprezentat de o zi din intervalul [1, 100], dat fiind faptul c un an virtual este echivalentul a 100 de zile reale), i segmentarea anului n cele patru anotimpuri pentru un plus de real n cadrul jocului.
68
Aptitudini aici vor fi stocate toate aptitudinile disponibile juctorilor, descrierile acestora pentru a putea fi nelese att acestea ct i rolul lor, indicii aptitudinilor de care depind i procentul necesar pentru a valida dependenele.
69
n figura 3.9. sunt prezentate cteva nregistrri posibile n cadrul tabelei aptitudini. Astfel, aptitudinea Economie avansat (indicele 26) poate fi obinut numai dac a fost dobndit mai nti aptitudinea Economie de baz (indicele 25) cu un procent de 60% (3 stele din 5). La fel, aptitudinea de Poliist (indicele 24) poate fi obinut doar prin dobndirea aptitudinilor Lege (indicele 22) n procent de 80% i Detectiv (indicele 23) n procent de 40%. Aptit_juctori n aceast tabel sunt stocate toate aptitudinile fiecrui personaj din joc, ct i procentele de stpnire a acestora.
Produse reine toate produsele disponibile n cadrul lumii virtuale, indiferent de localurile n care sunt oferite spre vnzare.
70
Fiecare produs este identificat prin denumirea sa unic, i este ncadrat ntr-o categorie anume de produse (acestea pot fi cri, mbrcminte, alimente, etc.). Mai mult, fiecare produs are o anumit greutate, aadar personajele nu pot cra cu ele toate produsele cumprate, ct i coeficienii de modificare a atributelor (statisticilor) personajelor, astfel c alimentele nesntoase pot modifica atributul sntate odat ce au fost consumate. Produse_local aici sunt stocate produsele existente n toate locaiile (magazine, restaurante, etc.), stocurile disponibile n fiecare locaie, i preurile cu care sunt vndute produsele, dat fiind faptul c un produs poate fi vndut cu preuri diferite n funcie de locaie.
Locaii aceast tabel conine toate locaiile existente n joc (magazine, cluburi, parcuri, restaurante, etc.), descrierea acestora, companiile care le administreaz, diverse atribute de calitate, costul chiriei, ctigul obinut de acestea, etc.
71
72
Fiind vorba de un MMORPG bazat pe browser web, tehnologiile cele mai utilizate sunt PHP, ASP, CGI, i JSP ca limbajele de programare la nivel de server, MySQL i PostgreSQL n ce privete sistemul de gestiune al bazelor de date i bazele de date utilizate. n tabelul 3.1 i tabelul 3.2 sunt prezentate principalele avantaje i dezavantaje ale acestor tehnologii.
MySQL Toate Open-source i comercial Rapid ANSI SQL MyISAM, InnoDB, BerkeleyDB, MERGE, MEMORY Simplu PostgreSQL Toate Gratuit ncet Python, Perl, Tcl, Java, Php Dispune de propriul tip de tabele, i nu suport alte tipuri Moderat
Cu privire la sistemele de gestiune a bazelor de date, MySQL se folosete deobicei pentru aplicaiile care dispun de baze de date mai puin complexe i cnd se dorete vitez mai mare n execuia interogrilor. PostgreSQL, pe de alt parte, se folosete pentru proiectarea bazelor de date complexe, cnd se dorete utilizarea unor seturi complexe de reguli sau a limbajelor procedurale de server, i cnd este necesar migrarea de la alte SGBD precum Oracle, Sybase, MS-SQL, etc. Pentru a face o alegere optim a tehnologiilor folosite, productorii jocurilor trebuie s studieze piaa produselor existente ct i avantajele i dezavantajele fiecrei tehnologii pentru a putea face o alegere iniial care nu va fi mereu i optim. Din momentul n care productorii au stabilit principalele tehnologii concurente, acetia vor trebui s le analizeze graficele de performan pentru a putea face o alegere optim. Pentru jocul Film-O-Mania am stabilit ca tehnologii concurente PHP, ASP, JSP i CGI pentru limbajul de server, i MySQL i PostgreSQL pentru SGBD. Fiecare grup de tehnologii va fi supus unor scenarii foarte des ntlnite cutarea n cadrul site-urilor pentru limbajele de server, i manipularea datelor pentru SGBD. ncepnd cu limbajele de server, avem urmtoarele situaii:
73
n tabelul 3.3 sunt listai timpii de rspuns pentru fiecare tehnologie n parte n cazul cutrii n site-urile mici a diverse cuvinte cheie (cu un cuvnt, cu dou cuvinte, fraze exacte, etc.). Pentru a putea vedea care tehnologie e mai bun, am ntocmit graficul din figura 3.14.
Se poate observa cu uurin c cel mai rapid limaj de server este CGI (valorile cele mai mici sunt cele mai bune), iar urmtorul este PHP.
74
n tabelul 3.4 limbajul de server JSP a fost eliminat, tocmai fiindc acesta devine foarte ncet cnd avem de-a face cu site-uri mari, sau se poate chiar bloca. Astfel, figura 3.15 reprezint graficul de performan pentru cele trei limbaje de server rmase.
n figura 3.15 putem vedea c limbajul CGI este n continuare cel mai rapid, urmat tot de PHP. 3. cutarea n cadrul site-urilor foarte mari (pn la 300.000 de pagini i 50 milioane de cuvinte)
Se pare c n afar de CGI, majoritatea limbajelor de server devin extrem de lente sau chiar inutilizabile cnd vine vorba de cutarea n site-urile foarte mari. Aadar, CGI este un
75
limbaj utilizat, de regul, n cadrul site-urilor foarte mari datorit timpilor de rspuns extrem de mici. Cum Film-O-Mania este un joc cu pn la 300 de pagini, avem de-a face cu un site mic, iar pentru un site mic nu este avantajoas utilizarea limbajului CGI datorit complexitii acestuia. Astfel, cel mai bun limbaj de server pentru implementarea jocului este PHP, datorit uurinei acestuia ct i a vitezei foarte bune (al doilea dup CGI). n continuare vom analiza timpii de rspuns pentru tehnologiile SGBD, i anume MySQL i PostgreSQL. i acestea vor fi supuse unor scenarii foarte des ntlnite, i anume: 1. inserarea de nregistrri ntr-o tabel
76
n tabelul 3.6 putem observa c s-au analizat timpii de rspuns pentru MySQL folosind dou tipuri de tabele (MyISAM i InnoDB), ct i pentru PostgreSQL cu scriere fizic dup fiecare execuie a unei comenzi (fsync=true) i fr scriere fizic (fsync=false). Analiza a fost efectuat ncepnd cu inserarea a 5000 de nregistrri i finaliznd cu inserarea a 50.000 de nregistrri, urmrind constant timpii de rspuns. Figura 3.16 prezint graficul de performan n cazul comenzii de inserare. Se poate observa, aadar, c MySQL este cel mai rapid cnd se folosesc tabele MyISAM, iar urmtorul cel mai rapid este PostgreSQL fr scriere fizic dup executarea unei comenzi. 2. selectarea nregistrrilor dintr-o tabel
77
La selectarea datelor din tabele, cea mai eficient soluie este tot MySQL, ns cu tabele InnoDB, urmat tot de MySQL cu tabele MyISAM. Aadar, MySQL este cea mai buna soluie comparativ cu PostgreSQL. 3. tergerea de nregistrri dintr-o tabel
La tergerea de date dintr-o tabel putem vedea c avem de-a face cu o soluie extrem de rapid, i anume MySQL cu tabele MyISAM (tergerea a 50.000 de nregistrri dureaz doar 0.006 secunde), urmat de PostgreSQL fr scriere fizic (fsync=false).
78
Dup analiza realizat anterior putem constata c, n toate cele trei scenarii, MySQL este soluia cea mai bun ca SGBD, att datorit faptului c este rapid, ct i din cauz c este uor de instalat/configurat/manevrat. Ct despre tipul de tabele folosit, MyISAM este cel mai eficient n dou din trei cazuri. Dac este necesar folosirea tranzaciilor, MyISAM nu este deloc recomandat datorit lipsei suportului pentru tranzacii. n schimb, se poate folosi InnoDB care este i rapid, i ofer suport pentru tranzacii.
http://www.apache.org/ http://www.apachefriends.org/en/xampp.html
79
Dar ce reprezint acest concept de modularizare ? Modularizarea presupune structurarea codului surs a unei aplicaii software n aa numitele module, iar aceste module conin, n marea majoritate a cazurilor, clase i metode specifice realizrii unui anumit obiectiv al aplicaiei. Modulele unei aplicaii software sunt de trei tipuri: puternic cuplate sunt conectate ntre ele aa nct modificarea unui modul implic modificarea celorlalte module cu care este cuplat; slab cuplate modificarea unui modul nu implic modificarea celorlalte module cu care este cuplat; detaate (plug-ins) acestea sunt un tip mai special de module care pot fi conectate la o aplicaie care le poate recunoate i utiliza pentru adugarea de noi faciliti, dar a cror absen nu afecteaz execuia normal a aplicaiei. n cazul Film-O-Mania, avem de-a face cu module puternic cuplate care const n fiiere PHP ce conin clasele necesare ndeplinirii anumitor sarcini care asigur funcionarea jocului. Au fost folosite trei categorii de module: module motor, module de interaciune i module agent. Modulele motor sunt module de baz care ofer funcionalitate interfeei ct i uurin n programarea acesteia. Modulele de interaciune fac posibil comunicarea ntre utilizator i modulele de baz, permindu-i s execute aciuni specifice jocului. i n cele din urm, modulele agent sunt folosite de ctre agentul software pentru a oferi continuitate (sau persisten) jocului. n continuare voi prezenta cteva astfel de module ale jocului.
1. Modulul motor de realizare a conexiunii cu baza de date a jocului Primul modul pe care trebuie s-l implementeze orice dezvoltator PHP este cel al realizrii conexiunii ntre interfaa web (sau site-ul web) i SGBD-ul utilizat. Bineneles, dac dezvoltatorul nu dorete utilizarea unui SGBD, atunci acest modul nu este necesar.
<? class Connection { var $link = null, $dblink = null; var $user, $db, $pass, $server;
80
function __construct($server, $user, $pass, $db) { $this->server = $server; $this->user = $user; $this->pass = $pass; $this->db = $db; } function open() { $this->link = mysql_connect($this->server, $this->user, $this->pass); if ($this->link) { $this->dblink = mysql_select_db($this->db, $this->link); if ($this->dblink) return true; else return false; } else { return false; } } function close() { mysql_close($this->link); $link = null; $dblink = null; } function getLink() { return $this->link; } } ?>
Modulul implementeaz o clas PHP cu metodele de baz pentru deschiderea i nchiderea unei conexiuni, ct i pentru obinerea unei referine la conexiunea existent, referin utilizat n toate celelalte module. n continuare am dat un exemplu de cum poate fi utilizat acest modul:
<? session_start(); include("_connection.php"); $server = "localhost"; $user = "root"; $pass = ""; $db = "filmomania"; $conn = new Connection($server, $user, $pass, $db); if (!$conn->open()) die("Conexiunea cu baza de date nu a putut fi stabilita. Mai incearca."); ?>
81
2. Modulul motor de autentificare a juctorilor Cu ajutorul acestui modul se poate verifica existena unui juctor n baza de date, i se poate verifica dac numele i parola introduse de acesta sunt valide. Verificarea parolei se face prin utilizarea unui algoritm de criptare MD51 astfel ncat un utilizator mai priceput nu poate introduce n loc de nume sau parol o comand MySQL care s treac peste validarea contului.
<? class Login { var $res = null; function __construct($res) { $this->res = $res; } function isMember($user) { $q = "select count(*) as nr from jucatori where nume='$user'"; $ret = mysql_query($q, $this->res); if ($ret) { $row = mysql_fetch_array($ret); return ($row["nr"]>0); } else return false; } function getPassword($user) { $q = "select parola from jucatori where nume='$user'"; $ret = mysql_query($q, $this->res); if ($ret) { $row = mysql_fetch_array($ret); return ($row["parola"]); } else return ""; } function checkLogin($user, $pass) { if ($this->isMember($user)) { $p = $this->getPassword($user); return (md5($p) == md5($pass)); } return false; } } ?>
http://en.wikipedia.org/wiki/MD5
82
3. Modulul motor de lucru cu baza de date a jocului Acest modul conine o varietate de clase PHP folosite n lucrul cu tabele individuale ale bazei de date pentru prelucrarea datelor n funcie de cererile primite de la interfaa web. Printre aceste clase se numr: clasa PlayerData pentru accesarea i manipularea datelor unui juctor; clasa PlayerState pentru accesarea i manipularea atributelor unui juctor; clasa PlayerSkills pentru obinerea informaiilor referitoare la aptitudinile unui juctor; clasa PlayerItems pentru managementul bunurilor deinute de un juctor; clasa Player folosit la crearea comenzii MySQL pentru inserarea unui nou cont n baza de date; clasa Players folosit mpreun cu clasa Player pentru crearea unui nou juctor, tergerea unui juctor existent, obinerea totalului de juctori i alte informaii cu privire la statistica juctorilor. clasa Locatii utilizat pentru managementul locaiilor din cadrul jocului (magazine, restaurante, parcuri, diverse instituii i organizaii, etc.). Dat fiind faptul c acest modul conine foarte mult cod surs, voi prezenta doar o clas din toate cele enumerate mai sus, i anume clasa PlayerItems.
class PlayerItems { var $id; function __construct($pd) { $this->id = $pd->getId(); } function removeItem($index) { return mysql_query("delete from bunuri where id_jucator=$this->id AND id_produs=$index"); } function getBucati($index) { $q = mysql_query("select bucati from bunuri where id_jucator=$this->id AND id_produs=$index"); $q = mysql_fetch_array($q); return $q[0]; } function setBucati($index, $buc) {
83
return mysql_query("update bunuri set bucati=$buc where id_jucator=$this->id AND id_produs = $index"); } function itemExists($index) { $q = mysql_query("select count(*) from bunuri where id_jucator=$this->id AND id_produs=$index"); $q = mysql_fetch_array($q); return ($q[0] > 0); } function existingWeight() { $q = mysql_query("select bunuri.bucati, produse.povara from bunuri inner join produse on produse. prod_id=bunuri.id_produs"); $sum = 0; while ($row = mysql_fetch_array($q)) { $sum += $row[0] * $row[1]; } return $sum; } function itemWeight($index) { $q = mysql_query("select povara from produse where prod_id=$index"); $q = mysql_fetch_array($q); return $q[0]; } function getCost($index, $lid) { $q = mysql_query("select pret from produse_local where id_produs=$index AND id_locatie=$lid"); $q = mysql_fetch_array($q); return $q[0]; } function addItem($index, $buc, $bani, $lid) { if ($this->itemExists($index)) { if ($this->existingWeight() + $buc * $this->itemWeight($index) > 100) return false; else if ($this->getCost($index, $lid) * $buc > $bani) return false; else { $this->setBucati($index, $this->getBucati($index)+$buc); return true; } } else return mysql_query("insert into bunuri (id_jucator, id_produs, bucati) values ($this->id, $index, $buc)"); } }
Aceast clas este utilizat, dup cum am mai spus, pentru managementul bunurilor juctorilor. Aadar, printre metodele de baz se numr: aruncarea unui bun (eliminarea acestuia din baza de date); achiziionarea unui bun (adugarea acestuia n baza de date) care poate fi realizat cu succes doar n condiiile n care juctorul dispune de suma necesar cumprrii
84
acestuia iar greutatea bunurilor pe care le car n acel moment nu depete maximul permis n urma cumprrii bunului; obinerea preului unui bun; obinerea greutii unui bun; obinerea greutii crate de un juctor n orice moment al jocului; determinarea/stabilirea numrului de buci deinute de un juctor dintr-un bun; verificarea existenei unui bun n mulimea bunurilor juctorului.
4. Modulul de interaciune pentru realizarea autentificrii Acest modul este utilizat de ctre interfaa web n scopul validrii i autentificrii unui juctor. Dup cum se poate observa, acest modul este puternic cuplat cu modulul motor care lucreaz cu baza de date, permind accesul la metodele directe de interogare a bazei de date. Acesta, la rndul lui, este puternic cuplat cu modulul motor de autentificare a juctorilor. Aadar, dup ce se obine o referin la clasa Login, se ncepe verificarea datelor introduse de utilizator n formularul interfeei web urmnd ca apoi acestea s fie confruntate cu cele din baza de date. Dac datele sunt corecte, se salveaz n baza de date informaia privind ora i data logrii acestuia, se creaz noi informaii de sesiune i se ntoarce rezultatul autentificrii.
<? include("../engine/_misc.inc"); include("../engine/_base.php"); $_SESSION["logged"]=0; $_SESSION["user"]=""; $_SESSION["pass"]=""; $_SESSION["id"]=""; $log = new Login($conn->getLink()); if (isset($_POST["pass"])) { if ($log->checkLogin($_POST["user"], $_POST["pass"])) { $_SESSION["user"]=$_POST["user"]; $_SESSION["pass"]=$_POST["pass"]; $_SESSION["logged"]=1;
85
$pd = new PlayerData($conn->getLink()); $pd->assign($_SESSION["user"]); $_SESSION["id"]=$pd->getId(); $now = date("Y/m/d H:i"); $q = mysql_query("update jucatori set last_login='" . $now . "' where jucator_id=" . $_SESSION["id"], $conn->getLink()); echo "1"; //totul ok } else if (!$log->isMember($_POST["user"])) echo "-1"; //nu exista user-ul in baza de date else echo "0"; //parola e incorecta } else { if (!$log->isMember($_POST["user"])) echo "0"; else echo "1"; } ?>
5. Modulul agent cu aplicare n evaluare sntii medii a populaiei jocului Modulul agent este utilizat doar de ctre agentul software pentru a putea apela diferite funcii server de actualizare la un interval prestabilit. Dat fiind faptul c acest modul conine o singur clasa cu foarte multe funcii server de actualizare, am ales s prezint doar o funcie a acestei clase i anume funcia de evaluare a sntii medii a populaiei jocului. Aceast funcie server preia atributele sntate i stres din mulimea tuturor juctorilor n scopul determinrii valorilor medii ale acestora, urmnd s fie stocate n tabela Orae a bazei de date. Dup realizarea interogrilor necesare, funcia trebuie s returneze un mesaj de eroare sau de succes agentului software.
<? session_start(); include("../engine/_misc.inc"); include("../engine/_base.php"); include("../engine/_utils.php"); class Agent { private $cnx; function __construct($cnx) { $this->cnx = $cnx; }
86
public function setAtributeOras() { $q = mysql_query("select AVG(sanatate), AVG(stres) from atribute_jucatori", $this->cnx); $ret = mysql_fetch_array($q); if ($ret[0] != "") { $q1 = mysql_query("update orase set sanatate=" . ceil(round($ret[0])) . " where oras_id=1", $this->cnx); $q2 = mysql_query("update orase set stres=" . ceil(round($ret[1])) . " where oras_id=1", $this->cnx); if ($q1 && $q2) echo "[OK] Actualizare atribute oras"; else echo "[EROARE] Actualizare atribute oras"; } return; } } $agent = new Agent($conn->getLink()); if (isset($_POST["method"])) { $method = $_POST["method"]; if (method_exists($agent, $method)) call_user_func(array(&$agent, $method)); else echo "[EROARE] Metoda inexistenta: " . $method; } ?>
87
n cazul jocului Film-O-Mania, agentul software a fost implementat utiliznd limbajul de programare C#1 din cadrul suitei Microsoft .NET2. Motivul pentru care a fost ales acest limbaj i aceast platform de programare este faptul c pune la dispoziie librriile necesare operrii cu server-ul web, librrii care sunt foarte uor de utilizat. Dat fiind faptul c o aplicaie de tip consol are propriul ei fir de execuie n cadrul procesorului, nu a putut fi utilizat componenta Timer pentru a apela funciile server la intervale prestabilite fiindc aceast component utilizeaz firul de execuie principal al aplicaiei care este deja folosit. Pentru a trece peste aceast problem, au fost folosite librrii suplimentare pentru implementarea unui nou fir de execuie pe lng cel principal cu scopul de a fi folosit la apelul funciilor server la intervalele necesare, firul de execuie principal fiind blocat pn la ntreruperea acestuia de ctre utilizator prin combinaia de taste CTRL+C. Apelul unei funcii server presupune execuia urmtorilor pai: a. accesarea adresei URL corespunztoare fiierului agent.php (modulul agent despre care am vorbit n subcapitolul anterior); b. obinerea unei referine la server-ul web; c. trimiterea parametrilor POST necesari ctre adresa modulului agent; d. ateptarea unui rezultat din partea server-ului web;
1 2
http://en.wikipedia.org/wiki/C_Sharp_%28programming_language%29 http://www.microsoft.com/net/
88
e. prelucrarea i afiarea rezultatelor ntoarse de server-ul web. Mai jos este codul utilizat pentru apelarea funciilor server la intervalul prestabilit. Se poate observa c se apeleaz fiecare funcie a modulului agent prin trimiterea ctre acesta a parametrilor de tip method=<funcie>. De asemenea, dac apelurile funciilor server nu au fost finalizate la timp, nu se va relua procesul de apelare ct timp agentul software nu a terminat cu apelurile anterioare.
public void OnInterval(object state) { if (finished) { finished = false; if (initRequest()) { writeln("* Actualizare atribute oras"); doRequest("method=setAtributeOras"); writeln("* Actualizare salarii jucatori"); doRequest("method=setSalarii"); writeln("* Retragere chirii"); doRequest("method=withdrawRent"); writeln("* Completare jurnale"); doRequest("method=setJurnalEntry"); writeln(""); } else { writeln("*** Nu s-a putut realiza conexiunea la server!"); } finished = true; } }
89
90
toi juctorii pornesc aproximativ cu aceleai resurse limitate, urmnd s-i dezvolte personajele dup cum dorete fiecare; nimic nu este gratis, ca i n economia real, cu excepia resurselor iniiale care ofer juctorilor posibilitatea de a-i crea diverse obiective n cadrul jocului i de ai dezvolta aptitudinile dorite pentru a face rost de mai multe resurse. La prima condiie am spus c toti juctorii primesc aproximativ aceleai resurse limitate. Dou cuvinte cheie sunt importante n aceast formulare: aproximativ i limitate. Aadar se nasc dou ntrebri: de ce nu primesc toti aceleai resurse ? i de ce limitate ?. La prima ntrebare rspunsul este dat de noiunea de clas de juctori, fiindc un joc cu mai multe clase de juctori presupune existena mai multor tipuri de juctori i, deci, obiective diferite pentru fiecare. Astfel, fiecare juctor va primi acele resurse necesare pornirii jocului specifice clasei creia i aparine (ntr-un joc de fantezie, un demon nu va avea nevoie de bani pentru a se hrni, ci va avea nevoie de for i agilitate pentru a putea vna; la fel, un om va avea nevoie de bani pentru a-i procura hrana, i nu de for sau agilitate). Rspunsul la a doua ntrebare este: dac un joc cu resurse nelimitate atrage n timp haos n rndul personajelor, este necesar limitarea acestora. Odat cu limitarea resurselor disponibile jocului trebuie limitate i resursele iniiale ale juctorilor datorit faptului c numrul acestora este n continu cretere. Aceste dou condiii nu sunt singurele care trebuiesc luate n considerare, ns sunt cele care pun bazele oricrei piee virtuale. Restul condiiilor se schimb i trebuiesc adaptate, ca i n economia real, n funcie de modul de comportament al juctorilor ct i n funcie de cerinele acestora.
91
putea juca mai mult sau pentru a achiziiona bunuri virtuale care, n fond i la urma urmei, nu sunt dect bunuri imaginare. Treptat ns, acest lucru a primit nelegere din partea tuturor, chiar i a economitilor care iniial criticau aceste practici. Al doilea semn a aprut cnd regulile i condiiile de pia s-au schimbat aa nct muli juctori nu le considerau corecte, fapt care a dat natere la un val mare de vnzri a artefactelor virtuale prin licitarea acestora pe site-uri dedicate, licitaii desfurate n mod evident cu ajutorul banilor reali. Al treilea semn a fost achiziionarea i utilizarea terenurilor virtuale de mari dimensiuni pentru a permite altor juctori, contra cost (prin cumprarea sau nchirierea acestora), s-i construiasc diverse cldiri pentru companiile acestora folosite la prezentarea creaiilor proprii, a proiectelor, etc. Cel mai bun exemplu este cel al avatar-ului Anshe Chung, cetean al Second Life, care a achiziionat foarte multe terenuri virtuale i le-a oferit juctorilor un loc s-i construiasc sedii pentru companiile acestora, cldiri n care fiecare i poate prezenta produsele, pot face prezentri de mod, .a.m.d. Al patrulea semn a fost oferirea posibilitii juctorilor de a-i crea propriile artefacte virtuale i de a le vinde pe piaa lumii virtuale. Altfel spus, li s-a oferit juctorilor posibilitatea de a crea o lume nou sau de a participa la crearea acesteia. Directorul executiv al Linden Lab, Philip Rosedale, a afirmat: Toi se simt ca i cum ar crea o nou lume, ceea ce i fac!1. Odat cu aceast posibilitate, programatorii lumilor virtuale au renunat la ideea de bunuri virtuale infinit durabile fiindc ar fi creat haos n lumea virtual, aa cum se putea observa de-a lungul evoluiei MMORPG-urilor. Ultimul semn, care a fost i cel mai important, este reprezentat de necesitatea utilizrii aptitudinilor i serviciilor din economia lumii reale, necesitate datorat dezvoltrii necontrolate a economiilor virtuale.
http://www.businessweek.com/magazine/content/06_18/b3982001.htm
92
93
1. Realizatorii (Achievers) care prefer s ctige ct mai multe puncte de experien, ct i echipamente sau artefacte virtuale ce pot fi utilizate n realizarea obiectivelor. Exist, ns, realizatori care colecioneaz echipamente i artefacte virtuale fr s le foloseasc i fr s in cont dac au vreun folos n ndeplinirea obiectivelor sau nu; 2. Exploratorii (Explorers) ce au tendin de a descoperi terenuri noi, de a le crea sau de a descoperi ct mai multe secrete ale lumii virtuale, obiectivele contra timp nefiind punctul lor forte; 3. Socialitii (Socializers) prefer s joace doar pentru a ntlni oameni noi prin intermediul jocului, pentru a crea diverse relaii cu cetenii lumii virtuale; 4. Ucigaii (Killers) doresc s intre n conflict cu ali juctori pentru a se putea lupta cu acetia, i pentru a-i nvinge, scopul lor fiind acela de a domina n joc prin fric. Testul Bartle const ntr-un set de 30 de ntrebri care ilustreaz diverse scenarii posibile din majoritatea MMORPG-urilor, iar rezultatele reprezint procente din fiecare categorie psihologic. Un astfel de rezultat ar putea fi urmtorul: Socialist 66.67% Uciga 60.00% Realizator 46.67% Explorator 26.67%
Acest rezultat poate fi interpretat n felul urmtor: juctorul analizat folosete fenomenul de socializare n mod intens pentru a se folosi de prietenii pe care i-i face cu scopul de a ndeplini diverse obiective ale jocului; dup ce i-a folosit prietenii, acesta are tendina de a-i provoca n lupte n care nvinsul moare. Astfel, acest juctor va dori s fac orice este nevoie pentru a reui n joc, chiar i s se foloseasc de ali juctori ca nite obiecte virtuale, ns cnd vine vorba de explorare, acesta prefer s caute noi prieteni pe care s-i foloseasc la momentul potrivit.
94
O mare problem pe care au ridicat-o majoritatea MMORPG-urilor este cea a dependenei. Un mare procent din juctorii MMORPG-urilor manifest o dependen foarte mare pentru acestea, ajungnd s joace continuu ore ntregi, ba mai mult, ajungnd s fac aproape orice pentru a face rost de bani reali cu scopul de a-i cheltui pe artefacte virtuale sau pe ore n plus de joc. Studii recente au artat c majoritatea juctorilor cheltuie lunar cel puin 15 USD pentru a accesa diverse faciliti ale acestor jocuri, de multe ori fr a mai recupera banii cheltuii. Din acest motiv, dar i din cauza unor incidente fr precedent cauzate de timpul pierdut jucnd aceste jocuri, China a inventat un centru pentru tratarea dependenei de jocuri, iar n 2003 guvernul chinez a anunat posibilitatea crerii unui sistem care va limita timpul petrecut de juctori la cteva din cele mai cunoscute MMORPG-uri. Acest sistem presupune limitarea la trei ore de joc continuu, iar dup aceste trei ore vor urma dou ore n care personajele juctorilor i vor diminua puterile i aptitudinile pn nu vor mai putea fi folosite. Din acel moment, juctorii vor fi nevoii s atepte cinci ore pn vor putea relua jocul, timp n care vor putea avea grij de ei i n care vor putea tri i n viaa real, nu doar n cea virtual. Juctorii au fost i nc mai sunt foarte sceptici privind acest sistem datorit complexitii implementrii acestuia, fiindc ar fi necesar producerea i publicarea de patch-uri pentru acele jocuri, destinate special populaiei chineze. Mai mult dect att, sistemul nu ar putea funciona corect datorit posibilitii utilizatorilor de a poseda mai multe conturi n acelai joc.
95
n 2003, productorul original al jocului EverQuest, Brad McQuaid, a spus coninutul generat de utilizatori va fi ceva mare. Este una din acele ntrebri ce in mai mult de cnd dect de dac, fiindc va veni, i va veni n for.. Dup cinci ani, vorbele sale aproape s-au adeverit, Second Life fiind primul care a ncercat i a reuit parial s creeze o lume virtual ce permite cetenilor acesteia s creeze coninut propriu, coninut nou. De ce spun parial ? Fiindc lumea virtual din Second Life nu a fost creat n ntregime de ctre cetenii acesteia. Crearea unei astfel de lumi presupune un grad de complexitate foarte mare, crearea unor baze de date complexe cu reguli i mai complexe, .a.m.d. Dar n ciuda complexitii, viitorul MMORPG-urilor este clar unul iminent. Renumitul serviciu de shopping online, eBay, a afirmat: Aceast generaie care a crescut cu jocurile video a ajuns s nceoeze bariera dintre jocuri i viaa real.. Cu pai mari sau cu pai mici, este clar c MMORPG-urile evolueaz att pe plan tehnologic, ct i social i economic. Singurele ntrebri care mai rmn sunt cum se va ntmpla ? i cine va fi n fruntea evoluiei cnd se va ntmpla ?.
96
Bibliografie
1. Albescu, F., & Bojan, I. (2001), Management Information Systems & Decision Support Systems, Editura Dual Tech, Bucureti. 2. Bailey, C. (2006, Octombrie 13), Chinas full-time computer games, preluat de pe http://news.bbc.co.uk/2/hi/business/5151916.stm, accesat pe 24 Mai 2008. 3. Edwards, R. (2001), GNS and Other Matters of Role-playing Theory, preluat de pe http://www.indie-rpgs.com/articles/1/, Adept Press, accesat pe 24 Mai 2008. 4. Feldman, C. (2005, August 24), China govt steps up limits on online gaming, preluat de pe http://www.gamespot.com/news/2005/08/24/news_6131845.html, accesat pe 24 Mai 2008. 5. George, M. (2007, Iunie 6), Powergaming, preluat de pe http://rpgtheoryreview.blogspot.com/2007/06/lesson-powergaming.html, accesat pe 24 Mai 2008. 6. Glowiak, M. (2005, Octombrie 25), MySQL vs. PostgreSQL, preluat de pe http://monstera.man.poznan.pl/wiki/index.php/Mysql_vs_postgres, accesat pe 24 Mai 2008. 7. Hall, B. (1997), Character Attributes in Role-Playing Games, preluat de pe http://hiddenway.tripod.com/articles/attrib.html, accesat pe 24 Mai 2008. 8. Hof, Robert D. (2006, Mai 1), My Virtual Life, preluat de pe http://www.businessweek.com/magazine/content/06_18/b3982001.htm, accesat pe 24 Mai 2008 9. Schmiedekamp, M. (2007, Septembrie 28), Forge Theory Creative Agenda, preluat de pe http://rpgtheoryreview.blogspot.com/2007/09/lesson-forge-theory-creative-agenda.html, accesat pe 24 Mai 2008. 10. Turban, E., Aronson, J.E., & Liang T.P. (2004), Decision Support Systems and Intelligent Systems, 7th edition, Pearson Prentice Hall. 11. Whiting, J. (2002, Iunie 11), Online Game Economics Get Real, preluat de pe http://www.wired.com/gaming/gamingreviews/news/2002/11/55982, accesat pe 24 Mai 2008. 12. Wilson, Tracy V. (2008), How MMORPGs Work, preluat de pe http://electronics.howstuffworks.com/mmorpg8.htm, accesat pe 24 Mai 2008. 13. Wu, S. (2007, Iunie 20), Virtual Goods: the next big business model, preluat de pe http://www.techcrunch.com/2007/06/20/virtual-goods-the-next-big-business-model/, accesat pe 24 Mai 2008. 14. Young, Joseph M. (2005), System and the Shared Imagined Space, preluat de pe http://ptgptb.org/0026/theory101-01.html, accesat pe 24 Mai 2008. 15. Zaharie, D., Albescu, F., Bojan, I., & Ivancenco, V. (2003), Sisteme informatice pentru asistarea deciziei, Editura Dual Tech, Bucureti. 16. ***, Attribute (role-playing games), preluat de pe Wikipedia: http://en.wikipedia.org/wiki/Attribute_%28role-playing_games%29, accesat pe 24 mai 2008. 17. ***, Avatar (computing), preluat de pe Wikipedia: http://en.wikipedia.org/wiki/Avatar_%28computing%29, accesat pe 24 mai 2008. 18. ***, Bartle Test, preluat de pe Wikipedia: http://en.wikipedia.org/wiki/Bartle_Test, accesat pe 24 Mai 2008.
97
19. ***, Browser game, preluat de pe Wikipedia: http://en.wikipedia.org/wiki/Multiplayer_browser_game, accesat pe 24 Mai 2008. 20. ***, Character Class, preluat de pe Wikipedia: http://en.wikipedia.org/wiki/Character_class, accesat pe 24 Mai 2008. 21. ***, Character Sheet, preluat de pe Wikipedia: http://en.wikipedia.org/wiki/Character_sheet, accesat pe 24 Mai 2008. 22. ***, Decision Support System, preluat de pe Wikipeda: http://en.wikipedia.org/wiki/Decision_support_system, accesat pe 24 Mai 2008. 23. ***, Decision Support Systems, preluat de pe Best Price Computers: http://www.bestpricecomputers.co.uk/glossary/decision-support-systems.htm, accesat pe 24 Mai 2008. 24. ***, Economy of Second Life, preluat de pe Wikipedia: http://en.wikipedia.org/wiki/Economy_of_Second_Life, accesat pe 24 Mai 2008. 25. ***, Game development, preluat de pe Wikipedia: http://en.wikipedia.org/wiki/Game_development, accesat pe 24 Mai 2008. 26. ***, Game programming, preluat de pe Wikipedia: http://en.wikipedia.org/wiki/Game_programming, accesat pe 24 Mai 2008. 27. ***, GNS Theory, preluat de pe Wikipedia: http://en.wikipedia.org/wiki/GNS_Theory, accesat pe 24 Mai 2008. 28. ***, Gold farming, preluat de pe Wikipedia: http://en.wikipedia.org/wiki/Farmer_%28gaming%29, accesat pe 24 Mai 2008. 29. ***, Grind (gaming), preluat de pe Wikipedia: http://en.wikipedia.org/wiki/Grind_%28gaming%29, accesat pe 24 Mai 2008. 30. ***, Immersion (virtual reality), preluat de pe Wikipedia: http://en.wikipedia.org/wiki/Immersion_%28virtual_reality%29, accesat pe 24 Mai 2008. 31. ***, Metaverse, preluat de pe Wikipedia: http://en.wikipedia.org/wiki/Metaverse, accesat pe 24 Mai 2008. 32. ***, Min-maxing, preluat de pe Wikipedia: http://en.wikipedia.org/wiki/Min-maxing, accesat pe 24 Mai 2008. 33. ***, Mod (computer gaming), preluat de pe Wikipedia: http://en.wikipedia.org/wiki/Mod_%28computer_gaming%29, accesat pe 24 Mai 2008. 34. *** (2005, Octombrie 25), PHP vs. ASP vs. CGI, preluat de pe http://www.wrensoft.com/zoom/benchmarks.html#small, accesat pe 24 Mai 2008. 35. *** (2007, Octombrie 14), Player Life-Cycle, preluat de pe The Daedalus Project: http://www.nickyee.com/daedalus/archives/001588.php, accesat pe 24 Mai 2008. 36. ***, Resident (Second Life), preluat de pe Wikipedia: http://en.wikipedia.org/wiki/Resident_%28Second_Life%29, accesat pe 24 Mai 2008. 37. ***, Role-playing game, preluat de pe Wikipedia: http://en.wikipedia.org/wiki/Roleplaying_games, accesat pe 24 Mai 2008. 38. ***, Software agent, preluat de pe Wikipedia: http://en.wikipedia.org/wiki/Software_agent, accesat pe 24 Mai 2008. 39. ***, Statistic (role-playing games), preluat de pe Wikipedia: http://en.wikipedia.org/wiki/Derived_statistic, accesat pe 24 Mai 2008. 40. ***, The Big Model, preluat de pe Wikipedia: http://en.wikipedia.org/wiki/The_Big_Model, accesat pe 24 Mai 2008.
98
41. *** (2008, Februarie 3), The Big Model, preluat de pe http://bankuei.wordpress.com/2008/02/03/theory-the-big-model/, accesat pe 24 Mai 2008. 42. *** (2006, Iunie 7), The Protocols of Role-Playing, preluat de pe The Daedalus Project: http://www.nickyee.com/daedalus/archives/001527.php, accesat pe 24 Mai 2008. 43. ***, Virtual artefact, preluat de pe Wikipedia: http://en.wikipedia.org/wiki/Virtual_artifact, accesat pe 24 Mai 2008. 44. ***, Virtual community, preluat de pe Wikipedia: http://en.wikipedia.org/wiki/Virtual_community, accesat pe 24 Mai 2008. 45. ***, Virtual crime, preluat de pe Wikipedia: http://en.wikipedia.org/wiki/Virtual_crime, accesat pe 24 Mai 2008. 46. ***, Virtual economy, preluat de pe Wikipedia: http://en.wikipedia.org/wiki/Virtual_property, accesat pe 24 Mai 2008. 47. ***, Virtual tax, preluat de pe Wikipedia: http://en.wikipedia.org/wiki/Virtual_tax, accesat pe 24 Mai 2008. 48. ***, Virtual world, preluat de pe Wikipedia: http://en.wikipedia.org/wiki/Virtual_world, accesat pe 24 Mai 2008. 49. ***, Web application, preluat de pe Wikipedia: http://en.wikipedia.org/wiki/Browser-based, accesat pe 24 Mai 2008. 50. ***, What is a Virtual World?, preluat de pe Virtual Worlds Review: http://www.virtualworldsreview.com/info/whatis.shtml, accesat pe 24 Mai 2008.
99