Professional Documents
Culture Documents
Mihai DUMITRACHE
Alex EFTIMIE
Sergiu IORDACHE
Valentin PRIESCU
Conducător ştiinţific:
As. ing. Răzvan DEACONESCU
Şl.dr.ing Răzvan RUGHINIŞ
1. Introducere
1.1 Despre
World of USO este un joc online bazat pe întrebări din materia cursului de Utilizarea
Sistemelor de Operare. Este format din trei părţi plus una ascunsă:
• Question of the day
• Challenge
• The Quest
• * Special Quest
La prima vedere, un joc cu tot ceea ce presupune (cu poveste, caractere, niveluri,
denumiri, artefacte), WoUSO este mai ales un bun suport de curs: conţine întrebări şi
răspunsuri din toată materia. Un alt avantaj este faptul că întrebările sunt sincronizate
cu materia.
1.2 Idee
Totul a pornit de la o discuţie dintre Răzvan Deaconescu şi Răzvan Rughiniş despre cum
ar fi putut fi îmbunătăţită experienţa cursului de USO. Se dorea un joc care să fie
educativ şi totodată să atragă studenţii. În urma unei sesiuni de brainstorming cu echipa
cursului de USO s-au stabilit regulile de bază pentru un astfel de joc.
Detaliile au fost stabilite şi ajustate pe parcurs la întâlnirile echipei ROSEdu. S-au stabilit
punctajele, s-au împărţit atribuţiuni între membrii echipei ROSEdu.
Dezvoltarea a avut loc pe parcursul verii 2007. În acest timp sub specificaţiile transmise
de Răzvan Deaconescu şi Răzvan Rughiniş a avut loc implementarea interfeţei şi engine-
ului pentru World of USO.
1.3 Echipa
In functie de punctajul acumulat, fiecarui student i se asociaza unul dintre cele şapte
niveluri: Servant, Apprentice, Acolyte, Initiate, Mage, Archmage, Master Wizard.
S-a dorit introducerea unei componente care să facă studenţii să participe cât mai des
(preferabil în fiecare zi) la joc. Astfel s-a introdus conceptul de o întrebare pe zi. Toţi
jucătorii aveau în fiecare zi o întrebare de tip grilă cu o singură variantă de răspuns.
Dacă studentul răspunde corect el va primi 2 puncte, altfel va primi 0 puncte.
2.2 Challenge
Pentru jucatorii care doreau să obţină mai multe puncte, există opţiunea de a îi provoca
pe alţi studenţi la un set de întrebări. În ziua imediat următoare lansării provocarea are
loc duelul, cîştigător fiind acel student care răspunde la cele mai multe întrebări.
Fiecare student poate lansa o singura provocare pe zi si poate accepta oricate provocari.
Cand se accepta o provocare va urma o confruntare; confruntarea se rezuma la
raspunsul a 5 intrebari (aceleasi pentru fiecare paricipant) cu raspunsuri multiple.
In cadrul unei confruntari fiecare risca 3 puncte, astfel:
Pentru fiecare răspuns corect jucătorul primeşte un număr de puncte egal cu nivelul la
care se află (1 pct. pentru nivelul 1, 2 pentru nivelul 2, etc).
Questul special a fost gandit pentru împătimiţi. În primul rand, o mică iconiţă care nu
iese deloc în evidenţă te poartă spre o altă pagină unde este criptat indiciul către soluţie.
Cei care aveau răbdare şi dorinţă să rezolve aceste mici puzzleuri primeau diferite titluri.
Special quest-ul nu influenţează punctajul jocului.
3. Bazele de date
Realizarea bazei de date şi funcţionarea ei a fost un punct foarte important al
mecanismului intern de funcţionare a jocului.
3.1 Necesităţi
Baza de date este structurată după componentele jocului. Astfel există următoarea
structură:
• O tabelă pentru utilizatori ce conţine toate datele privind un utilizator(punctaj,
dacă a provocat în ziua aceea, numar de puncte câştigat din întrebări, din
provocări şi din quest precum şi alte câmpuri necesare.
• O tabelă cu întrebări pentru Question of the day şi o tabelă cu răspunsuri.
• O tabelă cu întrebări pentru Challenge şi o tabelă cu răspunsuri. S-a ales această
soluţie datorită faptului că putea exista un numar variabil de răspunsuri pentru o
întrebare.
• O tabelă pentru alcătuirea stocarea punctajelor de-a lungul desfăşurării jocului şi
pentru alcătuirea topului.
• O tabelă care stochează iniţiatorii şi destinatarii provocărilor.
4.1 Motivaţie
4.2 Module
4.3 Clase
Lucrul cu bazele de date se face "mascat" prin clasa MysqlClass. De asemenea toate
operaţiile legate de utilizator se fac instanţiind obiecte ale clasei UQUser.
Pentru întrebări (itemi cu răspuns multiplu, unul singur corect), am ales un format text
în clar, care poate fi parsat fie printr-un script PHP (bazat pe expresii regulate), fie cu
ajutorul utilitarului în consolă bazat pe flex (dezvoltat de asemenea în cadrul WoUSO).
4.4 Tehnologii
Unul dintre lucrurile care au făcut experienţa WoUSO interesantă (din punctul de vedere
al programatorului) a fost înglobarea mai multor tehnologii diferite, unele dintre ele noi.
De exemplu, pentru autentificarea studenţilor, am folosit serverul LDAP (Lightweight
Directory Access Protocol) de la: http://ldap2.grid.pub.ro/.
Fiind un proiect web accesul uşor la informaţii este vital. Astfel s-a ales utilizarea unui
standard raspandit, RSS (Really Simple Syndication), prin care utilizatorii jocului aveau
acces facil la informatii privind numarul de puncte acumulate, numarul de provocari pe
care le-a primit, topul jucatorilor şi alte informaţii fără să fie nevoie ca jucatorul să intre
pe site. Deoarece unele informaiţii au fost considerate private s-a ales protejarea feed-
ului printr-o valoare unica.
Această finisare a venit de la colegul nostru Andrei Buhaiu, care a pregătit o poveste,
nume de niveluri cât şi un concurs special (ascuns în pagină şi cu dificultate mărită).
Spicuim din poveste:
La început exista o mare de biţi, un haos necontrolat în care la fiecare secundă mii
de programe se năşteau şi dispăreau, goto-urile se încâlceau în noduri gordiene şi
lipsa taburilor crea o indentare haotică şi absurdă, încât orice program în scurta lui
durată era oricum irelevant. Dar, la un moment dat, un prim registru porni o
procedură care începu să ordoneze tot haosul dând astfel naştere unui întreg lanţ
de evenimente ce au dus la crearea celor trei mari tărâmuri: Windowsia, Linuxar şi
Macoth, ce împreună alcătuiesc Bitia....
Nu este de mirare că jocul a avut succes. Evoluţia prin nivelurile: Servant, Apprentice,
Acolyte, Initiate, Mage, Archmage pentru ajunge într-un final Master Wizard precum şi
artefactele speciale, au fost parte din reţeta succesului.
6. Rezultatul şi statistici
Proiectul a avut un succes mare, peste 300 de studenţi intrând pe site cel puţin odată
însumând peste 13000 de vizite în cele aproape 4 luni de joc.
Întrebările propuse au solicitat efortul întregii echipe USO rezultând într-o diversitate a
subiectelor abordate. Apariţia Quest-ului a dus la deschiderea unui thread intens (pe
lângă multe altele) în care s-au discutat întrebările şi s-au cerut indicaţii.
8. Concluzii
Să lucrăm la World of USO a fost o experienţă interesantă. Ne-am familiarizat cu lucrul
în echipă, cu folosirea uneltelor precum: PHP, MySQL, JavaScript, AJAX, LDAP, Smarty,
JQuery, Moodle, Trac, SVN, ssh, Wiki şi multe altele.