Explo ing Mechanisms o Vi ual
In e ac ion o Imp o e Online
Teaching
Compu e Science Enginee ing and So wa e Enginee ing
FACULTAD DE INFORMÁTICA
Au ho s
Alexande De Aguia , Sa a Sacó Baños, Samuel San os He nán
Di ec o s
Pablo Ge ás, Gonzalo Méndez
Janua y 23, 2024
Summa y
The ollowing p ojec consis s on he speci ica ion, design and implemen a ion o
a desk op applica ion ha allows use s bo h o a end o o gi e classes in a non-
p esen ial way, ye com o ably and e icien ly. This would be achie ed by means o a
digi al model o he acul y (al eady exis ing and gi en o us by ou p ojec conduc o s,
bu o which we ha e had o apply a big, gene al e ac o iza ion), and a G aphical
Use In e ace (GUI) ha would help he use expe ience o be pleasan and easy o
con ol. The applica ion also implemen s a se e -clien sys em in o de o make he
ac ual in e ac ion be ween use s possible. The applica ion could also gi e suppo o
i ual eali y glasses, bu i mus wo k in any case wi h a desk op en i onmen , in
o de o make i accessible o all use s.
KeyWo ds
Educa ion, 3D, VR, online, se e , uni e si y, C#, Uni y, class oom, Vi ual Classes
1
Resumen
El p oyec o expues o a con inuación consis e en la especi icación, diseño e imple-
men ación de una aplicación de esc i o io, que pe mi a a los usua ios an o asis i
como impa i clases de mane a no p esencial, cómoda y e icien e. Pa a log a es e
in se u iliza, po un lado, un modelo digi al de la acul ad ya exis en e y p opo -
cionado po nues os di ec o es de p oyec o, al cual hemos enido que aplica una g an
e ac o ización gene al;
Po o a pa e, el sis ema ambién equie e una In e az G á ica de Usua io (GUI) que
ayude a que la expe iencia del usua io sea ag adable y ácil de maneja . La aplicación
implemen a un sis ema clien e-se ido pa a hace posible la in e acción eal en e
usua ios.
Así mismo, ambién pod ía da sopo e pa a ga as de ealidad i ual, pe o debe
unciona en cualquie caso con un en o no de esc i o io, con el in de hace lo accesible
pa a odos los usua ios.
Palab as cla e
Educación, 3D, VR, online, se ido , uni e sidad, C#, uni y, aula, enseñanza i ual
2
Con en s
Summa y 1
Resumen 2
1 In oduc ion 6
2 S a e o he A 10
2.1 T adi ional pla o ms . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.1.1 GoogleMee ............................ 10
2.1.2 Mic oso Teams ......................... 11
2.2 Imme si epla o ms ........................... 11
2.2.1 Ga he .Town ........................... 11
2.2.2 Team low ............................. 12
2.2.3 Mee in .............................. 12
2.2.4 P ojec om Uni e si y o Alican e (see biblio. [5]) . . . . . . 12
3 Conside ed echnologies 14
3.1 3DEngines ................................ 14
3.1.1 Uni y ............................... 14
3.1.2 Un ealEngine........................... 15
3.1.3 C yengine ............................. 16
3.1.4 Chosen ool ............................ 16
3.2 Pla o ms o w i ing his documen . . . . . . . . . . . . . . . . . . . 16
3.2.1 Gi Hub .............................. 17
3.2.2 O e lea .............................. 17
3.3 De elopmen pla o ms . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.3.1 VisualS udio ........................... 17
3.4 P og amming Languages used . . . . . . . . . . . . . . . . . . . . . . 18
3.4.1 C#................................. 18
3.4.2 PHP................................ 18
3.5 Tools used o he design sec ion . . . . . . . . . . . . . . . . . . . . . 18
3
CONTENTS 4
3.5.1 Ui oolki ............................. 19
3.5.2 Cohe ence............................. 19
3.5.3 Vi ox ............................... 19
3.6 Wo k Tool o Use S o y Map . . . . . . . . . . . . . . . . . . . . . . 20
3.6.1 Choosen ool ........................... 21
3.7 C ea iono diag ams ........................... 22
3.7.1 D aw.io .............................. 22
3.7.2 Plan UML............................. 23
3.8 AudioTools................................ 23
3.8.1 Mumble .............................. 23
3.8.2 Vi ox ............................... 24
3.8.3 ChosenTool............................ 24
3.9 Use Au hen ica ion . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.9.1 XAMPP Web se e and Da abase . . . . . . . . . . . . . . . 25
3.9.2 Uni y Au hen ica ion Se ice . . . . . . . . . . . . . . . . . . 26
3.9.3 ChosenTool............................ 27
4 P ojec Planning 28
4.1 His o y Maps C ea ion P ocess . . . . . . . . . . . . . . . . . . . . . 28
4.1.1 Use s................................ 28
4.2 De ini ion o Use Ac i i ies . . . . . . . . . . . . . . . . . . . . . . . 29
4.3 Taskp io i ies............................... 30
4.3.1 Mus ha e............................. 32
4.3.2 Shouldha e............................ 33
4.3.3 Couldha e ............................ 35
4.3.4 Won’ ha e ............................ 35
4.4 Wo kplan ................................. 36
4.4.1 I e a ions ............................. 37
4.5 So wa e de elopmen me hod . . . . . . . . . . . . . . . . . . . . . . 44
4.6 RiskManagemen ............................. 44
4.6.1 Risk Iden i ica ion . . . . . . . . . . . . . . . . . . . . . . . . 45
4.6.2 RiskAnalysis ........................... 46
4.6.3 RiskPlanning........................... 48
5 Implemen a ion 52
5.1 Thescene ................................. 52
5.2 Objec synch oniza ion, wi h Ne wo k Manage . . . . . . . . . . . . 57
5.2.1 Ne wo kManage Sc ip . . . . . . . . . . . . . . . . . . . . . 57
5.2.2 Ne wo kBeha io Objec s . . . . . . . . . . . . . . . . . . . . 58
5.3 Relay.................................... 58
5.4 Remo e P ocedu e Calls . . . . . . . . . . . . . . . . . . . . . . . . . 58
5.5 Use In e ace............................... 60
CONTENTS 5
5.5.1 Supe GUI............................. 60
5.5.2 UIelemen s ............................ 61
5.6 T ansla o ................................. 62
5.7 C ea ing and joining ooms . . . . . . . . . . . . . . . . . . . . . . . 64
5.8 Audio communica ion using Vi ox . . . . . . . . . . . . . . . . . . . . 65
5.9 In e ac ing wi h doo s . . . . . . . . . . . . . . . . . . . . . . . . . . 66
5.10 Displaying media on he blackboa d . . . . . . . . . . . . . . . . . . . 68
5.11 Displaying use webcam on hei a a a . . . . . . . . . . . . . . . . . 70
6 Conclusions 72
6.1 Wha wewan ed odo.......................... 72
6.2 Wha weac uallydid........................... 73
6.3 Wha wedidno do ........................... 74
6.3.1 Cha ac e Cus omiza ion . . . . . . . . . . . . . . . . . . . . . 74
6.3.2 Quick emoji eac ions . . . . . . . . . . . . . . . . . . . . . . . 75
6.3.3 Tex Messaging.......................... 75
6.4 Final e sion o he p ojec . . . . . . . . . . . . . . . . . . . . . . . . 75
Conclusiones 78
6.4.1 Cha ac e Cus omiza ion . . . . . . . . . . . . . . . . . . . . . 81
7 Wo k done by each membe 84
7.1 Samuel................................... 84
7.2 Alexande ................................. 86
7.3 Sa a .................................... 88
8 Bibliog aphy 91
9 Appendix 93
Chap e 1: In oduc ion
Telecommunica ions ha e e ol ed exponen ially since he end o he las cen u y,
s a ing om me e, limi ed and o en expensi e elephone con e sa ions o nowadays
being able o sha e all ypes o mul imedia con en , bo h on social ne wo ks and in
ideo calls. And all o cou se o ee and p ac ically in eal ime hanks o echnologies
such as 5G. Howe e , al hough we ha e al eady eahed he end o he i s i h o
he 21s cen u y, an online way o communica ing as na u al as when in pe son has
no ye been achie ed. Cu en ools and pla o ms a e no capable o ec ea ing an
en i onmen ha is in e ac i e enough so ha he e en you a e ha ing in ques ion
(a i ual class, a con e ence, a wo k mee ing) can ake place in a comple ely no mal
way.
Howe e , in he mos ecen yea s he e has been a lo o p og ess in his niche, mos ly
due o he COVID c isis, and hanks o which a lo o money has been in es ed o
digi iza ion. Ye he e is s ill a long way o go. In o de o gi e mo e con ex o his
issue, we will ha e o go back o he beginning o he pandemic, mo e speci ically,
a ound mid-Ma ch, when o a ew mon hs humani y had o s ay a home wi hou
being able o go ou . The heal h sys em collapsed and he au ho i ies did no know
exac ly how o ac in such si ua ion. Rega ding he educa ional sys em, he e was
a g ea pe iod o unce ain y because, wi h some excep ions, uni e si ies, colleges
and ins i u es we e places o in-pe son eaching. Classes we e empo a ily suspended,
6
CHAPTER 1. INTRODUCTION 7
causing exams o be delayed. Finally, and a e obse ing ha his c isis was going o
las , classes we e esumed comple ely online.
And he e is p ecisely he poin o he ma e . Adap ing o he new i ual model was
di icul : many p o esso s did no ha e essen ial esou ces such as co e age and s able
in e ne connec ion, and o he s uploaded p e eco ded classes wi hou aking hem
li e, which made i impossible o ask ques ions in eal ime o ask o a concep o be
explained again, had i no been unde s ood clea ly. And e en in li e classes, asking
ques ions became equally di icul due o he p oblem o la ency, which e en in he bes
cases (when he lag would no be highe han a couple o seconds), caused eache s
and s uden s o unin en ionally in e up each o he when s a ing hese ques ions,
and as a consequence he hy hm o he class would end up being hinde ed. Added o
all o his he e we e o he p oblems, such as sc een eezing when sha ing a window,
o loading ime o he esou ces used, making he quali y o he classes p ac ically
ze o. Then he si ua ion imp o ed and we mo ed o a hyb id model, bu he p oblems
had no ended he e: uni e si ies and colleges needed o ins all came as and simila
in as uc u e o ansmi wha was being w i en o hal o he class ha was s aying
a home ha day on he blackboa d. Bu his came a would no be o enly able o
ocus co ec ly on he blackboa d, causing i o look blu y o e en le pa o i go
ou o plane, ul ima ely causing impo an de ails w i en by he eache no o be seen.
A he momen o handing in his p ojec , we ha e p ac ically le he pandemic
behind, bu he use o all hese echnologies has no s opped, qui e he opposi e. Wha
i mo e, and i we pu e e y hing ha has been said in o e idence, i is clea ha
i ual communica ion sys ems s ill ha e a long way o go and need o be imp o ed
and e ol e, implemen ing unc ionali ies ha allow educing he sepa a ion ( oday
eno mous) be ween in-pe son and emo e in e ac ion expe iences.
CHAPTER 1. INTRODUCTION 8
Thus, he aim o his p ojec is a de eloping a desk op p og am ha allows use s o
connec in o a 3D model o he acul y in o de o gi e o ecei e classes in an online
way. Mo e speci ically, his goal could be subdi ided in o he ollowing asks:
•
De elop a desk op p og am ha no only allows use s o choose ei he o c ea e
o o join a se e oom, bu also:
–
Allows use s o mo e eely wi hin he campus, p o iding access o a ious
class ooms.
–
Allows use s o in e ac wi h he en i onmen , and ha e o he use s see
hose changes (such as opening doo s, knowing he cu en s a e o he
model, e c.).
•
De eloping a desk op applica ion ha allows use s o conduc o a end a class
emo ely.
–
Implemen ing a ea u e ha allows use s o iew a a a s o o he pa ici-
pan s in he same se e o oom, as well as acking he a endance and
iden i y pa icipan s in class.
–
Implemen ing an in-app communica ion channel o use s o engage in
con e sa ions wi h one ano he , making he ask o exchanging eedback
and ansmi ing knowledge easie .
–
Implemen ing a ea u e ha allows use s o see each o he h ough hei
webcams, imp o ing he li e-likeness o in e ac ion
–
Implemen ing a ea u e ha allows use s o sha e con en on he blackboa d
wi h o he s and display i while conduc ing a class
•
Implemen ing addi ional unc ionali ies o p omo e a mo e na u al in e ac ion
among use s.
–
Implemen ing a ea u e o swi eac ions, allowing use s o exp ess ag ee-
3.1. 3D ENGINES 15
much as possible.
•
Physical engine ha simula es he laws o physics. This allows us o c ea e mo e
ealis ic mo emen s and in e ac wi h he en i onmen .
•Anima ions. These can add mo e pe sonali y and ib ancy o he model.
•
Sounds. This unc ionali y allows se ing and de eloping communica ion be ween
use s.
Some o he disad an ages ound we e:
•None o he eam membe s had p e iously wo ked wi h C#.
•Some imes he e ain c ea ion ool is limi ed.
3.1.2 Un eal Engine
I is an engine ha allows o c ea e games, landscapes, in e ac i e en i onmen s o
i ual eali y sys ems wi h an s ounding ealism. P e ious knowledge in C++ is
equi ed. The ad an ages o using i ha we ound we e:
•
I has excellen ools o c ea ing 3D en i onmen s, in addi ion o ha ing g ea
quali y and powe when i comes o modi ying global illumina ion and c ea ing
shade s and ma e ials.
•
We also al eady had p e ious expe ience wi h C++, he p og amming language
o e which i uns. Finally.
•I has easily accessible documen a ion.
The main disad an age hough is ha i is no designed o be used by small eams in
hei de elopmen and some concep s, such as Ac o s, a e mo e complex; as well as,
in e ms o pe o mance, a compu e wi h e y good cha ac e is ics is necessa y o be
able o suppo he p og am when de eloping, since i can collapse and he use o he
CPU will sky ocke .
3.2. PLATFORMS FOR WRITING THIS DOCUMENT 16
3.1.3 C yengine
I is a e y powe ul and e sa ile engine. I s mos ou s anding ea u e is he g aphical
capaci y, being be e in his aspec han Uni y and simila o ha o Un eal Engine.
The ad an ages we ound we e:
•
I s in e ace and de elopmen ools a e mo e complex han hose o he p e ious
wo.
•
The documen a ion is less accessible and i is no ecommended o use when
you a e inexpe ienced in de eloping in e ac i e en i onmen s.
3.1.4 Chosen ool
Finally we op ed o Uni y since he de elopmen wi h Un eal Engine seemed mo e
complex o us as well as he a o emen ioned ha dwa e limi s. Fu he mo e, Uni y can
be used o ee and he main model o he acul y ha was p o ided o us had been
de eloped in Uni y, so we would no need o adap i (wha we had o adap hough
was he s uc u e o nodes and componen s o he acul y model i sel , bu his was
ano he s o y).
3.2 Pla o ms o w i ing his documen
The p og am o w i ing his documen was also impo an in ou case, because we
we e a g oup o h ee people and we wan ed o ha e he possibili y o w i ing all he
h ee o us a he same ime in he documen . Hence, he e a e he wo possibili ies
ha we e conside ed:
3.3. DEVELOPMENT PLATFORMS 17
3.2.1 Gi Hub
Ou i s idea was o upload his documen in o a Gi Hub eposi o y, in o de o
ha e ack o he ile changes. None heless, i did no allow us o wo k di ec ly and
concu en ly on he same ex ile o he documen . Thus, Gi Hub was inally used
solely as a s o age loca ion and e sion con ol sys em no o he memo y, bu o
he p ojec code i sel .
3.2.2 O e lea
This was ano he o he op ions ha ou u o s p oposed o us, since i has a syn ax
ha allows us o s uc u e and main ain he s yle o he en i e documen in a simple
way. I also allows us o wo k synch onously on he same documen , al hough i s ee
e sion only allows wo use s o wo k on i a he same ime. On he o he hand,
some o ou membe s, Samuel and Alex, al eady had p io knowledge on his syn ax,
esul ing his in an addi ional eason o us o inally deciding o go o his la e
op ion.
3.3 De elopmen pla o ms
In e ms o coding, we ha e conside ed se e al IDEs, and he ollowing was he inal
candida e:
3.3.1 Visual S udio
In o de o ca y ou he implemen a ion we use Visual S udio and Visual S udio Code.
Being an in eg a ed de elopmen en i onmen , we we e able o use i o debug, compile,
w i e, edi , and debug he code in o de o deploy ou applica ion. Fu he mo e, all
eam membe s had expe ience using his ool.
3.4. PROGRAMMING LANGUAGES USED 18
3.4 P og amming Languages used
We used C# o sc ip ing wi hin Uni y and PHP o se e -side sc ip ing.
3.4.1 C#
Mic oso p og amming language, inspi ed by C and C++. Used especially o de el-
oping wi hin he .NET pla o m bu also in p oduc s such as Xama in and Uni y. Fo
his eason, we use his language o be able o code he sc ip s in cha ge o achie ing
he necessa y unc ionali ies o ca y ou he p ojec .
I is an objec -o ien ed, s a ically yped and mul i-pa adigm language. T adi ionally i
was ocused on de eloping on Windows, bu i was opened o o he sys ems, making
i possible o use i o de elop on MacOS and Linux. Since i s syn ax is simila o C,
C++, Ja a and o he s, we could easily adap o because he a o emen ioned had been
he mos used languages du ing ou s udies.
3.4.2 PHP
Mainly ocused on se e -side sc ip ing, so i can do any hing ha ano he CGI
p og am can do, such as collec ing o m da a, gene a ing pages wi h dynamic con en ,
o sending and ecei ing cookies. Al hough PHP can do much mo e. I is designed o
be embedded in HTML.
3.5 Tools used o he design sec ion
In he ollowing sec ion, we will desc ibe wha lib a ies and ools ha e we used in
o de o implemen he applica ion. This includes no only plugins bu also lib a ies
de eloped o uni y.
3.5. TOOLS USED FOR THE DESIGN SECTION 19
3.5.1 Ui oolki
A na i e Uni y ool, i is a collec ion o esou ces, ea u es and ools ha allow he
de elopmen o use in e aces and Edi o ex ensions. I allowed us o implemen he
c ea ed p o o ypes ha can be seen in he Design chap e . I was chosen because in
addi ion o being compa ible wi h he engine we decided o use (Uni y), i is also
use - iendly.
3.5.2 Cohe ence
The pla o m comes wi h Uni y plugins, which p o ed o be e y use ul o de eloping
he p ojec . I allows o he c ea ion o scalable and pe sis en online games ega dless
o he eam’s size and expe ience le el. I also enables combining modes wi hin a
single p ojec , meaning you can ha e bo h wo lds and ooms. Wo lds a e always-ac i e
se e s wi h op ional pe sis ence, while ooms a e sessions wi h op ional me ada a and
playe coun s. Ano he ad an age is he abili y o build and upload he p ojec om
Uni y o he Cohe ence cloud o accessibili y. The downside is ha i doesn’ include
ools o de eloping ex o audio channels; i ocuses on c ea ing he se e -side
se ice.
3.5.3 Vi ox
Capable o handling se e unc ionali y and in eg a ing communica ion ea u es in o
he model. Voice and Tex Cha (Vi ox) allows use s o communica e o ally wi h each
o he , ega dless o he pla o m hey a e connec ing om. Fu he mo e, ega dless
o he game engine used o c ea e he p ojec , i allows o seamless in eg a ion o
communica ions wi hou limi a ions on he numbe o connec ed use s.
3.6. WORK TOOL FOR USER STORY MAP 20
3.6 Wo k Tool o Use S o y Map
We decided ha each one would y se e al ools in o de o ha e di e en poin s o
iew o inally mee and decide which one would be chosen o c ea e he use s o y
map He e we lis he di e en applica ions es ed and he p os and cons ha we ha e
ound o each o hem:
Fea u e Map
The ad an ages ha we ound when es ing his applica ion we e ha i is e y
in ui i e and easy o unde s and and use, he in e ace is made o a oid dis ac ions
om ex e nal elemen s, and i also allows you o wo k synch onously online wi h he
es o he membe s. The d awbacks we ound we e ha in his applica ion, he use
who can pe o m he use s o y co ec ly canno be assigned and a e 15 days, only a
limi ed e sion o he applica ion can be accessed, since he ial pe iod ends.
A ion
Some o he bene i s we ound when using his applica ion we e ha i is qui e easy o
use, he ca ds a e numbe ed au oma ically and i allows you o add a ows o make he
low easie o ead. In he d awbacks we saw ha i can only be used a e he 15-day
ee ial i he p emium se ice is pu chased, which makes i no e y accessible. We
ha e con ac ed he sales depa men o ask i i is possible o ob ain a s uden license
bu ha e no ecei ed a esponse so a .
Mi o
We ound his applica ion o be e y lexible, i has e y use ul ea u es such as he
s opwa ch and i also allows you o o e. I would be e y use ul in mee ings ha
equi e a gene al b ains o ming o he p ojec bu i is no a speci ic applica ion o
c ea e use maps since i ocuses on c ea ing schema ics and diag ams.
3.6. WORK TOOL FOR USER STORY MAP 21
Mu al
One o i s bes ad an ages is ha i is comple ely ee- o-use and you can c ea e e y
a ac i e esul s, bu on he o he hand i is e y complica ed o c ea e use maps in
his applica ion.
Ca boa d i !
In Ca dboa d i ! you can c ea e a use map quickly and collabo a i ely bu i is no
possible o assign use ypes and i becomes paid a e he 15-day ial pe iod has
passed.
S o iesOnBoa d
In his applica ion you can add and eloca e new ca ds quickly and easily, bu you
canno assign use ypes and hey do no ha e a ee e sion a e he ial days.
3.6.1 Choosen ool
In o de o be able o decide on he ool in ques ion, each o us had lis ed he d awbacks
and bene i s o each o he applica ions we had es ed. We es ablished c i e ia o
choose which would be he ool we would use om ha momen on. The ac o s ha
had he mos in luence on ou decision we e:
•How iendly he ool is wi h he use .
•I s a ailabili y o usage.
The ime o lea n how o use hese ools was limi ed, so we wan ed o use one wi h he
smalles lea ning cu e possible so we could s a wo king wi h i as soon as possible.
In his sec ion we highligh he Fea u eMap, A ion and Mi o applica ions. E en i a
ool is good, i is no wo h s a ing o wo k wi h i i a e he ial pe iod we canno
use i again, which would delay he wo k low, so we wan ed o use an applica ion
3.7. CREATION OF DIAGRAMS 22
ha was ee o ha a leas ga e us allowed i o e ain much o i s unc ionali y o
ee. Some ha me his c i e ia we e Mu al, which is ee, and Fea u eMap, which
main ains many o i s ea u es a e he ial pe iod.
These we e he op- a ed apps. A ion, al hough we ound i o be qui e comple e, was
handicapped by he impossibili y o accessing i s unc ions o ee once he ial pe iod
ended. The eam’s inal decision was o use Fea u eMap, since i is e y in ui i e
and easy o use, since you can s a using i immedia ely e en i you ha e no p io
knowledge. Addi ionally, his applica ion has he possibili y o he eam o wo k
simul aneously on he same map. The bigges disad an age we ound was he ac
ha he ull e sion is ee only o a limi ed ime (2 weeks), bu a e he ial ime
passes he e is s ill a ee e sion al hough wi h es ic ed unc ionali ies, so i seemed
o us an accep able incon enience.
3.7 C ea ion o diag ams
We gene a ed componen diag ams o elucida e he s uc u e and o ganiza ion o ou
sys em, o e ing insigh s in o he in e ela ionships among i s componen s. Fu he mo e,
we gene a ed lowcha s o g asp he logic o key unc ionali ies, acili a ing he
isualiza ion and design o in o ma ion low wi hin ou sys em. The ools conside ed
o hei c ea ion we e he wollowing:
3.7.1 D aw.io
By ha ing he abili y o c ea e a wide a ie y o diag am ypes, we could add ess
di e en ep esen a ion needs. Addi ionally, he ool enables he expo o diag ams in
a ious o ma s o inclusion in his epo . The accessibili y om any loca ion wi h an
in e ne connec ion no only acili a es collabo a ion bu also suppo s emo e wo k
3.8. AUDIO TOOLS 23
3.7.2 Plan UML
Facili a ing he au oma ic c ea ion o diag ams by desc ibing code in a ex ual o ma ,
i p o ides e sa ili y. I s simple and eadable syn ax eases he upda ing p ocess
o diag ams as he code e ol es, ensu ing consis ency be ween he documen a ion
ou lined in his documen and he implemen ed code.
3.8 Audio Tools
Es ablishing o al communica ion wi hin ou 3D en i onmen in ol es inco po a ing
a ool o lib a y ha enables unc ionali ies such as audio channels. This will allow
use s o ecei e and send sound so ha hey can lis en o each o he . Two po en ial
op ions o accomplishing his include Vi ox and Mumble, and we will explo e each o
hem mo e ho oughly in he ollowing analysis.
3.8.1 Mumble
I is an open-sou ce p ojec , and when combined wi h Uni y, we can use i o achie e
a mo e imme si e expe ience. I employs an audio codec called Opus, p o iding
excep ional sound quali y and low la ency. Opus was designed o minimize he delay
be ween oice message ansmission and ecep ion.
Some ad an ages o using his ool include ope a ing on a clien -se e model, al-
lowing us o se up ou own Mumble se e o ull con ol o e he communica ion
en i onmen , including he c ea ion o channels and p i a e ooms. I is compa ible
wi h Windows, Linux, and macOS.
The MumbleLink p o ocol acili a es communica ion be ween Mumble and o he
ex e nal applica ions, which we would need o in eg a ing Mumble wi h Uni y.
The MumbleLink API allows us o e ie e in o ma ion, such as he use ’s posi ion in
3.8. AUDIO TOOLS 24
3D space o he o ien a ion o hei head. In i ual eali y en i onmen s, we ha e he
capabili y o synch onize he use ’s head mo emen wi h he a a a ’s o ien a ion in
Mumble.
This ool u he acili a es lip anima ion in he 3D model o simula e he use speaking
du ing oice cha . I ’s wo h no ing ha , in ou speci ic case, his ea u e may no be
necessa y since we u ilize a webcam image o he use (discussed la e ).
Mo eo e , he MumbleLink API suppo s spa ial sound e ec s, enabling adjus men s
o olume o sound posi ion based on he use ’s loca ion in he model.
Addi ionally, isual e ec s, such as anima ions o colo changes, can be displayed
con ingen on whe he he use is ac i ely speaking o no .
3.8.2 Vi ox
Vi ox is a oice and ex communica ion pla o m speci ically designed o online
applica ions and i ual en i onmen s. I enables seamless in eg a ion o eal- ime
oice and ex cha unc ionali ies, p o iding a use - iendly applica ion p og amming
in e ace. Addi ionally, i o e s posi ional audio, and is easy o in eg a e wi h VR
headse s.
Compa ible wi h mul iple pla o ms, i enables he c ea ion and managemen o
pe sonalized oice channels o ca e o ou applica ion’s equi emen s. Designed o
handle la ge numbe s o use s simul aneously, i ensu es he easibili y o suppo ing
he simul aneous connec ion o all s uden s and p o esso a e in he uni e si y.
3.8.3 Chosen Tool
We chose Vi ox because, in addi ion o he p e iously men ioned ad an ages, we ound
clea and concise documen a ion ha acili a ed i s in eg a ion wi h Uni y. Since we
did no equi e special e ec s such as lip anima ion, we el mo e con iden using his
4.3. TASK PRIORITIES 31
p ojec o e iew is needed, unlike MoSCoW, which allowed us o e alua e each ca d
independen ly.
Figu e 4.1: Use S o yMap
4.3. TASK PRIORITIES 32
The equi emen s o ask p io i iza ion we e inally g ouped in o ou ca ego ies,
co esponding o he uppe case le e s in i s name. We will now elabo a e on each o
hem now, since we will explain hem in u he de ail in he ollowing chap e s:
4.3.1 Mus ha e
These a e he unc ionali ies ha belong o he walking skele on. Fo mus -ha es, we
ha e selec ed asks ela ed o ou di e en ia ing elemen .
•Rende and display he 3D model o he acul y
–Codename: US_SHOW_MODEL
–Desc ip ion: As a use I wan o be able o see he model o he acul y.
•Mo e eely a ound he acul y
–Codename: US_MOVE
–
Desc ip ion: As a use I wan o be able o mo e and oam eely acco ding
wi h eal wo ld-physics laws, in o de o access di e en places om he
acul y model.
•See o he use s’ a a a s
–Codename: US_SEE_AV
–
Desc ip ion: As a use I wan o be able o see o he people’s a a a s in
o de o in e ac wi h o he use s in a mo e na u al way.
•Communica e wi h o he use s
–Codename: US_COMM
–
Desc ip ion: As a use I wan o be able o communica e wi h o he use s
by means o ei he a ex o audio cha , in o de o le my message each
o he use s and ecei e eedback om hem.
4.3. TASK PRIORITIES 33
•Sha e con en wi h o he Use s
–Codename: US_SH_CONTENT
–
Desc ip ion: As a use I wan o be able o sha e con en wi h he es o he
class, such as playing a ideo o showing a se ies o pic u es o sc eensho s.
•Disconnec
–Codename: US_DICONNECT
–Desc ip ion: As a use I wan o be able o close he applica ion.
•To wa ch sha ed iles in he blackboa d
–Codename: US_WT_CONTENT
–
Desc ip ion: As a use I wan o be able o wa ch he iles sha ed in he
blackboa d in o de o ge knowledge o e i y ha is he co ec con en .
4.3.2 Should ha e
The asks we ha e ca ego ized as should-ha es a e hose ha use s would expec o
ha e. They a e no essen ial o launch he p oduc , bu hey would add alue o he
applica ion, imp o ing he use expe ience on he si e. He e, we include unc ionali ies
like. Being hese add a a a image, eaching and oice cha .
•C ea e a oom
–Codename: US_CR_ROOM
–
Desc ip ion: As a use I wan o c ea e a oom in o de o gi e classes in i .
•Adjus he oom size
–Codename: US_LM_ROOM
–Desc ip ion: As a use I wan o be able o speci y he oom size.
4.3. TASK PRIORITIES 34
•Join oom
–Codename: US_JN_ROOM
–
Desc ip ion: As a use I wan o be able o join a oom wi h a speci ic code.
•See o he use s’ webcam
–Codename: US_SEE_WCM
–
Desc ip ion: As a use I would like o see he es o pa icipan s’ webcam.
•See my own changes in en i onmen
–Codename: US_SEE_USCH_1
–
Desc ip ion: As a use I would like o see he changes ha my own a a a
applies on he en i onmen , such as opening o closing doo s, o ins ance.
•See o he use s’ changes in en i onmen
–Codename: US_SEE_USCH_2
–
Desc ip ion: As a use I would like o see he changes ha he es o
pa icipan s apply on he en i onmen .
•Change he language
–Codename: US_CH_LAN
–
Desc ip ion: As a use I would like o be able o change he language a
any ime.
•View Use names
–Codename: US_SEE_NAME
–
As a use , I wan o be able o see he use names o o he use s o iden i y
hem
4.3. TASK PRIORITIES 35
4.3.3 Could ha e
In he could-ha e ca ego y, we ha e use s o ies ha we conside in e es ing ideas bu
we hink ha implemen ing hem would no be a high p io i y o add alue o he
use , o a e no ye su e i we can implemen hem. Being hese modi y cha ac e ,
chai in e ac ion quick eac ions wi h emojis and manage accoun . show assigned
class ooms, show schedule, ex cha , show esou ces and submi and ge assigmen s.
•Show he ime
–Codename: US_SH_TIME
–
Desc ip ion: As a use , I wan o be able o see he cu en ime wi hin he
applica ion o e ec i ely manage my schedule.
•In e ac wi h he doo s o he acul y.
–Codename: US_DOOR_INT
–
Desc ip ion: As a use , I wan o be able o in e ac wi h he doo s o he
acul y o access di e en a eas wi hin i .
•To e ase blackboa d con en .
–Codename: US_ERASE_BB
–
Desc ip ion: As a use I wan o be able o emo e he con en ha is in
he blackboa d in o de o ge an emp y blackboa d o nex class.
4.3.4 Won’ ha e
Finally, he use s o ies we ha e placed in “won’ -ha e” a e hose ha , we ind
in e es ing bu due o lack o ime o complexi y, we ha e decided o disca d hem.
Pe haps, in he u u e, hey could be econside ed.
•Reac wi h emoji
4.4. WORKPLAN 36
–Codename: US_EMOJI
–
Desc ip ion: As a use I wan o eac wi h emoji in o de o le he p o esso
know ei he whe he I ag ee wi h hem o no , o whe he I ha e any doub s.
•Connec ion wi h i ual eali y headse
–Codename: US_CONNECTION_VR
–
Desc ip ion: As a use I wan o connec whi i ual eali y headse in o he
model o in e ac in o he possible ways wi h i . Achie e a mo e imme si e
expe ience.
•Cus omizing an A a a .
–Codename: US_CUSTOM_A
–
Desc ip ion: As a use , I wan o cus omize my a a a o dis inguish mysel
om o he use s
4.4 Wo kplan
To success ully achie e he objec i es desc ibed in he i s chap e , a se ies o i e a ions
ook place, in which we held an online mee ing e e y ew weeks o moni o he s a us
o he p ojec , see i he membe s had ques ions o needed assis ance wi h any o
he asks ha we e assigned o hem, p io i izing he asks. Ne e heless, du ing he
academic yea 2022-23 we es ablished longe miles ones since we had a specially busy
schedule in e ms o subjec s and o he p ojec s, while sho e ye bigge miles ones
om June onwa d.
In o de o ha e a comp ehensi e o e iew o wha needed o be done in each i e a ion,
we employed a Kanban boa d. This allowed us o o ganize asks and moni o hei
s a us h oughou he de elopmen p ocess. The boa d consis ed o ou columns
ep esen ing di e en s ages o he wo k low.
4.4. WORKPLAN 37
In he i s column, “To Do”, all asks sla ed o he i e a ion we e ini ially placed.
These asks we e p io i ized o ensu e ha hose a he op we e selec ed i s when
assigning asks. Each eam membe could only be assigned one ask a a ime, and
each ask could ha e mo e han one assigned eam membe .
The second column, “Doing”, housed asks ha we e ac i ely in p og ess. The hi d
column, “Ready o Re iew”, se ed o indica e ha asks in he “Doing” column we e
eady o e alua ion once comple ed. The en i e eam conduc ed he e iew o assess
whe he he asks me he expec ed s anda ds. Upon success ul comple ion o he
e iew, he ask ansi ioned o he “Done” column. I e isions we e deemed necessa y
du ing he e iew, he ask e u ned o he “Doing” column.
This ype o boa d p o ed highly bene icial as i acili a ed he assignmen o asks,
acking o asks in p og ess, and p o ided a high-le el o e iew o he ongoing wo k
and he achie emen o objec i es.
4.4.1 I e a ions
I e a ion 1: C ea ion o he eposi o y and impo ing he 3D model o he
acul y
In his i e a ion, he ools ha we would use o w i e he epo we e con as ed and
chosen. Addi ionally, we c ea ed a Gi Hub eposi o y wi h a uni y p ojec whe e we
impo ed he 3D model o he acul y (see US_SHOW_MODEL).
•S a da e: 03/10/2022
•End da e: 01/01/2023
I e a ion 2: Main cha ac e c ea ion and i s s eps wi h physics
In his i e a ion, he basic model o he cha ac e was designed and esea ch was
ca ied ou on how o pe o m mo emen and came a changes co ec ly (see Use
4.4. WORKPLAN 38
S o y US_MOVE).
•S a da e: 01/01/2023
•End da e: 06/03/2023
I e a ion 3: In e ac ion wi h he en i onmen and s a o se e
de elopmen
In his in e ac ion we managed o in e ac wi h doo s, o be able o en e he class ooms
and we also began o es and in es iga e he unc ionali ies p o ided by Cohe ence in
o de o ha e he se e wo king as soon as possible. This sys em would be la e eplaced
wi h heNe wo k Manage objec , using Relay as he anspo laye (see Use
S o ies US_SEE_USCH_1,US_SEE_USCH_2 and US_DOOR_INT).
•S a da e: 06/03/2023
•End da e: 04/06/2023
Re ac o : Modula iza ion o he acul y model and issues wi h eposi o y
e sion
We sligh ly eo ganized he s uc u e o he acul y model. We also ook he ime o
add collide s o bo h walls, ceilings, loo s and o he big deco a i e elemen s, such as
locke s o doo s.
On he o he hand, we we e ha ing ouble when ying o synch onize ou code
because jus opening he p ojec would add housands o “changed iles” s aged o
commi and cons an ly gi ing me ge con lic s, making wo king asynch onously e y
di icul . In he end we disco e ed ha he uni y e sion con ol had been ac i a ed,
and he e was some wei d in e ac ion om ha ing bo h he uni y e sion con ol and
Gi Hub acking changes a he same ime. When ying o emo e he Uni y e sion
con ol, we would no be able o commi he change due o said me ge con lic . We
4.4. WORKPLAN 39
ended up deciding o c ea e a new eposi o y and mo ing ou p og ess o i , bu i
ook some ime.
•S a da e: 10/07/2023
•End da e: 07/08/2023
I e a ion 4: eac ion sys em a emp
In his i e a ion, an a emp was made o add he eac ion unc ionali y, consis ing o
being able o show in he model a humbs up i one ag eed, a humbs down i one
disag eed, and a ques ion ma k i one had doub s when p essing he 1, 2, and 3 keys
on he keyboa d espec i ely. Finally i was decided o pos pone i s implemen a ion
(see US_EMOJI).
•S a da e: 07/08/2023
•End da e: 21/08/2023
I e a ion 5: Tes ing and c ea ing a sepa a e eposi o y o In eg a e Relay
in o de o synch onize objec s h oughou he ne wo k
Be o e adding o he p ojec con aining he acul y model, a sepa a e eposi o y was
used o es and implemen he code ela ed o he clien /se e model ( he demo
p ojec consis ed on a s age wi h a la pla o m and he cha ac e we e ep esen ed
as cubes (see Use S o y US_SEE_AV).
•S a da e: 21/08/2023
•End da e: 28/08/2023
4.4. WORKPLAN 40
I e a ion 6: C ea ion o he da abase model and choice o he ool o i s
de elopmen .
Du ing his i e a ion we discussed how he login sys em should be implemen ed.
Se e al app oaches we e p oposed, such as using XAMPP da abase se ices (mo e
on his in he Implemen a ion chap e ), bu ou inal decision was o use Uni y
Na i e Au hen ica ion Sys em, by means o anonymous hos and clien s, ha would
join he o me one’s oom wi h a code (see Use S o ies US_CR_ROOM,
US_LM_ROOM, US_JN_ROOM).
•S a da e: 28/08/2023
•End da e: 11/09/2023
I e a ion 7: C ea ion o a use in e ace p o o ype and choice o he ool
o i s de elopmen
In his i e a ion se e al p o o ypes o he use in e ace we e c ea ed, he e we e qui e
a ew changes since i ook us a long ime o decide wha elemen s he e would be.
You can see he inal esul s in de ail in he Design chap e . Finally we decided ha
he join code and he g oup size should be shown on he op le , in addi ion o a
d op-down menu ha could allow he use o change he language (see Use S o y
US_SH_TIME). Wha ’s mo e, we implemen he op ion o w i e a use name and
hen display i o he es o he use s (see US_SEE_NAME).
•S a da e: 11/09/2023
•End da e: 25/09/2023
I e a ion 8: Sha e image by ende ing wha a webcam displays.
To acili a e non- e bal communica ion and enable educa o s o e alua e s uden s’
a en i eness, ou emphasis in his i e a ion was on p esen ing he image cap u ed
4.6. RISK MANAGEMENT 47
Table 4.1: Risk Analysis Table
Risk
P obabili y
Impac
Lack o expe ience can lead o delays in com-
ple ing he wo k and may esul in inco ec
execu ion, wo sening pe o mance, and in-
c easing e o . I is a p ojec - ela ed isk.
High High
Un amilia i y wi h de elopmen ools also
poses a isk o he p ojec as un o eseen issues
may a ise. I is a p ojec - ela ed isk.
High C i ical
Lack o communica ion among eam membe s
can esul in subop imal ou comes, po en-
ially equi ing unc ion modi ica ions, lead-
ing o ime loss and inc eased e o . I is a
p ojec - ela ed isk.
Possible Mino
I a eam membe alls ill, i may necessi a e
a eo ganiza ion o assigned asks by he es
o he eam; o he wise, p og ess may be hin-
de ed. I is a p ojec - ela ed isk.
Unlikely Medium
Un o eseen e en s may cause ask de elop-
men o slow down o be pos poned, p e en -
ing he p ope de elopmen o he p ojec . I
is a p ojec - ela ed isk.
High C i ical
Team membe s may lack cla i y abou he
goals o a speci ic unc ionali y, leading o
excessi e changes in use s o ies, esul ing in
poo unc ionali y and dissa is ac ion. I is a
echnical isk.
Possible High
The loss o a eam membe , should hey de-
cide o lea e he p ojec o signi ican easons,
would make i mo e challenging o con inue
wi h he p ojec . I is a business- ela ed isk.
Unlikely Medium
The lack o compa ibili y among di e en so -
wa e componen s used o he p ojec can lead
o sys em ailu es, esul ing in a loss o qual-
i y and di e si y. I is a echnical isk.
Possible High
4.6. RISK MANAGEMENT 48
4.6.3 Risk Planning
To plan o he a ious isks, we employ a p oac i e isk managemen s a egy as we
p e e o apply i be o e he isk occu s. This allows us o a oid any issues be o e
hey become oo p oblema ic o esol e, o a he e y leas , o minimize hei impac .
Each isk has h ee ac ion plans: a oidance, which includes measu es o educe o
elimina e he possibili y o he isk occu ing; moni o ing, whe e we ake measu es o
keep an eye on he isk and ake ac ion be o e i ’s oo la e; and managemen , which
ou lines wha will be done i i ’s no possible o a oid he isk and measu es need
o be aken o mi iga e i . The ollowing able lis s each o he isks along wi h he
speci ic a oidance, moni o ing, and managemen plans ha will be employed o each
one.
Table 4.2: Risk Planning Table.
Risk Ac ion Plan
Fi s
A oidance
Team membe s will seek u o ials o li e a-
u e o acqui e he necessa y knowledge o
p ojec de elopmen . Those who gain g ea e
expe ise in he language and en i onmen s
we a e using will assis and p o ide guidance
o o he eam membe s be o e he p ojec
begins, making he eam mo e e icien .
Moni o ing
Regula ly check i any eam membe is s ug-
gling o comple e a speci ic unc ionali y e i-
cien ly and p o ide assis ance and aining o
build expe ience. Ve i y la e i he assis ance
was e ec i e.
Con inued on nex page
4.6. RISK MANAGEMENT 49
Table 4.2 – con inued om p e ious page
Risk Ac ion Plan
Managemen
I he isk ma e ializes, conduc one o mo e
mee ings o help a ec ed membe s and, i
necessa y, edis ibu e wo kload among o he
eam membe s o p e en delays.
Second
A oidance Same as he p e ious isk.
Moni o ing Same as he p e ious isk.
Managemen Same as he p e ious isk.
Thi d
A oidance
Implemen Agile planning, which adap s well
o changes and includes one o wo-week i e -
a ions.
Moni o ing
Conduc egula mee ings and main ain di ec
con ac among eam membe s.
Managemen
In he e en o occu ence, inc ease he e-
quency o p ojec s a us moni o ing.
Fou h
A oidance
This isk is uncon ollable due o na u al
causes and canno be a oided.
Moni o ing
I any eam membe expe iences po en ial ill-
ness symp oms, hey will in o m he es o
he eam o be p epa ed o ask edis ibu-
ion.
Managemen
I he isk occu s, o educe i s p obabili y,
eam membe s will empo a ily ake o e he
asks o he a ec ed membe while hey e-
co e .
Risk Ac ion Plan
Con inued on nex page
4.6. RISK MANAGEMENT 50
Table 4.2 – con inued om p e ious page
Risk Ac ion Plan
Fi h
A oidance Un o eseen e en s canno be a oided.
Moni o ing
Team membe s acing ask comple ion chal-
lenges should in o m he es o he eam.
Managemen
Depending on he ask’s p io i y, ei he eas-
sign o pos pone i un il he isk is esol ed
o minimized.
Six h
A oidance
To educe he likelihood o his isk, ag ee-
men s will be eached du ing he planning
mee ing o cla i y he objec i es o each ask.
Addi ional mee ings will be scheduled i nec-
essa y o ensu e cla i y.
Moni o ing
I unclea indica ions a e obse ed, plan a
eam mee ing o es ablish he objec i es o
ha unc ionali y.
Managemen
In case he isk ma e ializes, hal he de el-
opmen o ha unc ionali y, de ine i s objec-
i es, and begin implemen ing i again.
Se en h
A oidance
Main ain close communica ion wi h eam
membe s o ensu e hei commi men o he
p ojec .
Moni o ing
Du ing mee ings, check o membe s who may
ha e become dis an , made less p og ess han
expec ed, o ailed o a end. Add ess hei
si ua ion o mo i a e hem i hey a e consid-
e ing lea ing he p ojec .
Con inued on nex page
4.6. RISK MANAGEMENT 51
Table 4.2 – con inued om p e ious page
Risk Ac ion Plan
Managemen
I a membe ul ima ely lea es he eam, con-
duc a mee ing as soon as possible among all
membe s o eassign oles i necessa y and
eo ganize asks based on p io i y.
Eigh h
A oidance
A emp o in es iga e compa ibili y be ween
di e en de elopmen ools ha may be used.
Moni o ing
Du ing he sp in de elopmen , ensu e ha
all eam membe s a e using es ed ools. I
new ea u es a e needed, e i y i he cu en
ools can accommoda e hese needs.
Managemen
I he isk becomes eal, a eam membe will
sea ch o a ool o b idge he incompa ible
ones. I his is no possible, he new incompa -
ible ool will be disca ded, and an al e na i e
solu ion will be sough .
Finally, h ee o he iden i ied isks ma e ialized, numbe ed one, wo, and h ee.
Howe e , by ollowing he con ingency plan, hey did no pose a se ious p oblem and
could be ec i ied, allowing he p ojec o p oceed co ec ly.
Chap e 5: Implemen a ion
This chap e is ocused on desc ibing how each o he unc ionali ies has been imple-
men ed in he applica ion. Fi s , we s a by desc ibing how he p ojec is s uc u ed
and wha elemen s cons i u e i . A e wa ds, we go o e each o hese elemen s in
de ail, desc ibing wha hey a e used o , wha componen s a e in ol ed o each o
hem, and how hese componen s in e ac wi h each o he . Finally, we also show he
execu ion low o each unc ionali y ha has been implemen ed using hese ools.
5.1 The scene
All o he objec s in ou p ojec a e encapsula ed in one single uni y scene called
EscenaFacul ad.uni y (see he componen diag am in igu e 5.1 and he hie a chy
in he edi o in igu e 5.2).
Fi s o , we ha e he Facul ad objec , which is pa en o all o he 3D objec s ha
a e pa o he model be o e any playe s connec . Unde i he e a e many di e en
asse s, such as: windows, ables, chai s and so on, which a e always ixed in he same
place, and he e o e no changes o hese objec s will e e be applied and hence no
need o be synch onized o e he ne wo k. Due o his, each clien has a local copy o
hese objec s in hei machine, educing signi ican ly he a ic in he ne wo k when a
use connec s. Mos o hese objec s also ha e collide s, which limi he mo emen o
he playe .
52
5.1. THE SCENE 53
Figu e 5.1: Hie a chy o he main objec s in he scene, shown in a componen diag am
5.1. THE SCENE 54
Figu e 5.2: Hie a chy o he oo objec s in he scene, shown in he uni y edi o
Inside he Facul ad model, he e a e also blackboa ds. Blackboa ds a e composed
o h ee main objec s, he P op, which is he 3D asse ha ac ually looks like a
physical blackboa d; he Plane, which is he su ace on which he images and ideos
a e shown in; and he Blackboa d objec , he in isible ec angle ha de ines he
in e ac able a ea o he blackboa d, and which is he pa en o he p e ious wo. Inside
he Blackboa d objec , he e is he Blackboa d sc ip , which has e e ences o he
o he child componen s o he blackboa d, and also de ines he logic o be execu ed
when a use in e ac s wi h i . Inside he Plane he e is he VideoWi hAudio sc ip ,
ha akes ca e o playing ideo iles and showing hem on he Plane objec .
Las ly, in he Facul ad, he e a e also doo s. Since doo s can change hei o a ion
while he applica ion is unning ( o ins ance, a use can open o close a doo ), hei
s a e needs o be synch onized o e he ne wo k (so ha i a use opens he doo , i
appea s open o he es o he use s). Due o his, i con ains a Ne wo kObjec
sc ip and a Ne wo kT ans o m sc ip . We will go o e wha each does la e , bu in
5.1. THE SCENE 55
sho , hey indica e ha his objec needs o be synch onized h oughou he ne wo k,
is owned by he se e , and wha p ope ies need o be synch onized.
Nex up, we ha e he Playe p e ab, which is spawned when each use connec s o
he oom. Each playe can mo e a ound he model, and mus he e o e be synch onized
h oughou he ne wo k as well. Fo his sake, i has he Ne wo kObjec sc ip
and he Clien Ne wo kT ans o m. Simila ly o he doo , hese indica es ha he
objec needs o be synch onized o e he ne wo k, and which p ope ies need o be
synch onized. The di e ence he e is ha he playe uses a Clien Ne wo kT an o m
ins ead o Ne wo kT an o m o indica e ha each clien is owne o hei own Playe
ins ance. The playe also has a Playe Ne wo k sc ip ha is in cha ge o ini ializing
he objec in he local machine when i is spawned (such as se ing he name, o
c ea ing i s con olle when hei own cha ac e is spawned). The Playe Ne wo k
sc ip also con ains he RPC me hods a ailable o each playe . They a e used o eques
he se e o un some logic o which he playe does no ha e di ec owne ship o ,
such as opening a doo (mo e on his la e ), o o b oadcas some e en , such as
upda ing a playe ’s webcam
The Playe Con olle s, when c ea ed, a e pu unde he Con olle s objec , and
ha e a e e ence o he Playe hey ha e con ol o . To spli he esponsabili y, he logic
has been spli in o Playe Mo emen Con olle , which is in cha ge o mo ing he
playe objec and he MainCame a; and he Playe In e ac ionCon olle , which is
in cha ge o checking i he playe is looking a an in e ac able objec , and calling he
in e ac me hod o ha objec .
In he scene, he e is also he MainCame a. As indica ed be o e, he MainCame a is
mo ed a ound he model by he Playe Mo emen Con olle , and shows he playe
poin o iew on sc een. Addi ionally, i also ende s an o e lay o he UI de ined in
5.1. THE SCENE 56
Figu e 5.3: Debug console in he scene
UIDocumen and Can as.
Rega ding he UI, i is spli in o wo pa s: he Can as, which con ains he debug
console shown in igu e 5.3 (accessible by p essing F11) and is use ul o unde s anding
be e wha is happening in he backg ound (specially when ha ing mo e han one clien
connec ed o he oom, since he uni y edi o console only shows logs o one clien );
and he UIDocumen , which de ines he es o he UI elemen s, such as he s a ing
sc een, and he in e ac ion messages. The sc ip s MainGui,Connec BoxManage
and In oBoxManage de ine wha each bu on does, and a e in cha ge o showing,
upda ing and hiding elemen s o he UI.
The Ne wo kManage objec is in cha ge o ins an ia ing ne wo k objec s and
synch onizing hem o e he ne wo k. I has wo sc ip s: Ne wo kManage sc ip ,
which con ains a e e ence o he playe p e ab (so ha i is ins an ia ed each ime a
use connec s), a lis o all he ne wo k p e abs ( o b oadcas changes made o hese
5.6. TRANSLATOR 63
men ioned lis o be upda ed wi h he espec i e new alues. Finally, he T ansla o
would ini ialize his a iable wi h he cu en ansla ion.
Excep his was no possible o be done. A all. A leas no he way we wan ed:
in sho , since s ings a e p imi i e ypes in C# nei he he e is an (easy
1
) poin e
ea men in C#, we canno sa e e e ences o he ex o an objec , so as o upda e
hei espec i e alue o he new chosen language on un ime. Tha is o say, unless we
wo ked i ou , we could only se a ce ain language a he beginning o he execu ion,
when all he ex s a e ini ialized.
In o de o sol e his issue we conside ed se e al op ions, om w apping he ex s
in a cus om class and le ing he lis inside T ansla o class be o his ype (so ha
we could sa e a e e ence o hem), o e en ying o keep ack o he poin e s
o all hose a iables. Bu none o hose app oaches wo ked in he end: he o me
one would no wo k since in C# he s ing ype is no a class in con as wi h lan-
guages like Ja a o ins ance, and hence we could no w ap i ; he la e one was
simply impossible o achie e since, once again, he e is no easy poin e ea men in C#.
The solu ion, hough, elied on a a ian o he ini ial app oach, which was no ideal
in any case bu happened o wo k pe ec ly: ins ead o egis e ing he ex s in o he
T ansla o lis ene s a ay, we would egis e he en i e class objec in which hose ex s
a e ea ed (see igu e 5.6). This way, whene e a new language is loaded, he T ansla o
would call all he egis e ed elemen s wi hin i s lis and ell hem o upda e hei
ex s on hei own (see igu e 5.9). Inside his upda eTex s() p ocedu e, he objec
would manually call ano he me hod om he T ansla o class o “in e na ionalize”
he di e en s ings (and in a display o o iginali y we called i _INTL()). The
ansla o would simply e ie e he cu en ansla ion o he p o ided key. Bu o
his o wo k, we had o c ea e a small in e ace o make i wo k. This in e ace, is he
1
In o de o be able o manipula e poin e s in C# you ha e o se a compile lag o allow unsa e
code, and hen ma k a me hod, class, o code block as unsa e
5.7. CREATING AND JOINING ROOMS 64
a o emen ioned IT ansla able in e ace.
He e is he sequence diag am o how ansla ion sys em wo ks:
Figu e 5.9: Upda ing ex s o he cu en language
5.7 C ea ing and joining ooms
Upon s a ing he p og am, he use is p esen ed wi h wo op ions: hey can ei he
c ea e a oom (speci ying he maximum amoun o use s ha can connec o i ) and
connec as a hos ; o connec as a clien by p o iding he oom code o he oom hey
wish o join. To explain he implemen a ion o oom c ea ion, we will go o e he low
o he i s op ion.
Ini ially, he use selec s he oom’s capaci y, indica ing he maximum numbe o use s
ha can be connec ed simul aneously. This alue will be displayed in a label, and
he use will also be able o modi y i by means o a slide , om which i s alue will
be ex ac ed. Subsequen ly, he connec as hos bu on is p essed. The click e en is
igge ed, calling he connec Hos () me hod o he Connec BoxManage class.
In his unc ion, he oomSize alue is e ie ed om he label and passed o he
c ea eRelay() me hod o he Tes Relay class. F om his class, he c ea eAllo-
5.8. AUDIO COMMUNICATION USING VIVOX 65
ca ion me hod o he elaySe ice class is execu ed, passing oomSize as well.
RelaySe ice is esponsible o eques ing he uni y se e s o c ea e and ese e
an alloca ion. Upon execu ion o his me hod, he Uni ySe e s class is u ilized o
ese e a po ion o he Uni y se e ’s memo y o he oom using he ese e me hod
o he Alloca edRelaySe e class.
This Alloca edRelaySe e me hod e u ns he IP add ess and po o be used
o connec o he alloca ed space o he oom. This in o ma ion is passed om
Uni ySe e s o RelaySe ice, e en ually eaching Tes Relay. F om he e, he
ge JoinCodeAsync me hod o he RelaySe ice class is execu ed, esponsible o
e ie ing he code o display and sha e wi h o he use s so hey can connec as clien s
o he newly c ea ed oom. To e ie e his code, he ge JoinCodeAsync me hod
is execu ed, p o iding he alloca ionId o eco e in o ma ion abou he c ea ed
oom om he RelaySe ice class. F om RelaySe ice, he Ge JoinCodeAsync
me hod o he Uni ySe e s class is execu ed, also p o iding he alloca ionId, hus
ob aining he joinCode and e u ning i h ough his low o he Tes Relay class.
Subsequen ly, he Se RelayDa a me hod is called om Tes Relay, wi h he IP
add ess and po as pa ame e s om he Uni yT anspo class. This allows he
Uni yT anspo class o ha e in o ma ion abou he c ea ed oom, as i is esponsible
o de e mining o whom he in o ma ion should be sen and how.
Finally, o connec o he oom, he s a Hos me hod o he Ne wo kManage
class is execu ed om Tes Relay, and he code is displayed on he sc een h ough a
ex box loca ed in MainGUI.uxml.
5.8 Audio communica ion using Vi ox
Vi ox is he sys em ha handles he audio channels and de ini ely all ha is ela ed
o communica ion ia audio. I all s a s espec i ely in he me hods c ea eRelay()
5.9. INTERACTING WITH DOORS 66
and joinRelay() (depending whe he he use is c ea ing a oom o joining i ) om
he class Tes Relay. In hese me hods, we assign he gi en join code as he name
o he oom. Nex , he playe en e s his oom wi h espec i ely Ne wo kMan-
age .Single on.S a Hos () o Ne wo kManage .Single on.S a Clien (), and
he Ne wo kManage inally spawns he playe (which has he Playe Ne wo k
componen ), ini ializing all he necessa y hings when his playe connec s o he
oom.
A e his and in he machine o he ecen ly connec ed use , he Vi ox Se ice is
ini ialized (Vi oxSe ice.Ini ialize()), he Vi ox Sys em signs he playe in o he
audio channel (Vi oxSe ice.SignIn oVi ox), and he OnUse LoggedIn callback
is egis e ed a e he Vi oxPlaye has been c ea ed. Vi oxManage will hen use all
he uni y c eden ials p o ided in i s scene componen in o de o s a he session, and
inally he callback OnUse LoggedIn will be igge ed, whe e he use inally joins
he audio channel, speci ying he name o his channel, ha i is a posi ional channel,
and ha i is an only-audio channel (i could also be con igu ed i as audio-and- ex
channel as well).
On he o he hand, he sou ce poin o he playe audio is upda ed in he scene e e y
0.5 seconds in o de o ha e i up- o-da e wi h he playe , using he cu en posi ion
o he playe Main Came a (no o be con used wi h he Webcam).
5.9 In e ac ing wi h doo s
To in e ac wi h a doo (see diag am in igu e 5.10), he use i s mo es hei
a a a and came a so ha i is acing a nea by doo . When ha happens, he
Playe In e ac ionCon olle de ec s ha he e is an objec in on o he playe
ha implemen s he IIn e ac ion and calls i s in e ac () me hod. This me hod is
implemen ed in Doo In e ac ion, which calls In oBoxManage o show how he
5.9. INTERACTING WITH DOORS 67
ex on how o in e ac wi h he doo in he UI (see igu e 5.11). A e ha , i he use
p esses E, o open o close he doo , hen i in okes oggleDoo Se e RPC on he
Playe Ne wo k sc ip . Since ha me hod is anno a ed wi h Se e RPC, a eques
is sen h ough he ne wo k o he hos machine, whe e he code inside o i is un
he e. Tha me hod calls oggleDoo on he Doo In e ac ionSc ip (on he hos
machine) and i opens he doo locally. The change in o a ion is hen b oadcas ed o
he es o he clien s by he mechanism desc ibed in he ne wo k manage sec ion.
Figu e 5.10: Flow diag am o how o open/close a doo
5.10. DISPLAYING MEDIA ON THE BLACKBOARD 68
Figu e 5.11: In o ma ional ex on how o in e ac wi h a doo
5.10 Displaying media on he blackboa d
To display media on he blackboa d (see igu es 5.12, 5.13, 5.14), he use i s mo es
hei a a a and came a so ha i is acing he blackboa d. When ha happens, he
Playe In e ac ionCon olle de ec s ha he e is an objec in on o he playe
ha implemen s he IIn e ac ion and calls i s in e ac () me hod. This me hod is
implemen ed in Blackboa d, which calls In oBoxManage o show how he ex on
how o in e ac wi h he blackboa d in he UI (see igu e 5.15). A e ha , i he use
p esses “E”, FileB owse Upda e is called, o open a pop-up ile b owse window. Once
he use inishes selec ing he iles o display, he callback DisplayOnBlackboa d in
he Blackboa d sc ip is called, passing he selec ed pa hs as a pa ame e . I he ile
o be displayed is an image, i will call he Uni yWebReques Tex u e o download
he ex u e o he image and hen he ex u e o he plane objec o ha . Id he ile o
be displayed is a ideo, i will delega e i o VideoWi hAudio, which will in u n se
and play he new ile in VideoPlaye . Fo playing o esuming a ideo, when he use
p esses P, he Play o Paused me hod (depending o i he cu en ideo is playing o
no ) will be called, in VideoWi hAudio, and la e delega ed o VideoPlaye .
5.10. DISPLAYING MEDIA ON THE BLACKBOARD 69
Figu e 5.12: Flow diag am o how o in e ac wi h he blackboa d
Figu e 5.13: When he use wan o selec a ile, a pop up ile b owse is opened
5.11. DISPLAYING USER WEBCAM ON THEIR AVATAR 70
Figu e 5.14: A e selec ing he ile, i ’s con en s a e shown in he blackboa d
Figu e 5.15: In o ma ional ex on how o in e ac wi h a doo
5.11 Displaying use webcam on hei a a a
Inside he playe model he e is he FaceCam objec . This is a loa ing ec angle in
on o he a a a ’s head. The ex u e o his ec angle is whe e he webcam image is
displayed. The FaceCam objec has a ched o i he Ge Came aImage sc ip ha is in
5.11. DISPLAYING USER WEBCAM ON THEIR AVATAR 71
cha ge o changing he ex u e o he ec angle wi h he cu en image o he webcam.
Inside he Ge Came aImage, he e is a WebCamTex u e, which akes he i s came a
de ice connec ed o he machine and eco d he use , loading i in o i s ex u e. E e y
ce ain ime (low equency o a oid sa u a ing he ne wo k) he webcam ex u e is
ead, con e ing i in o a Tex u e2D and hen in o a by e a ay o a JPG o se ialize
he image. A e wa ds, his image is passed o he upda eWebcamSe e Rpc me hod
on Playe Ne wo k. Since his is a se e RPC call, his da a is sen o e he ne wo k o
he hos machine. Then, his da a is passed o he upda eWebcamClien Rpc me hod,
since ha me hod is a clien RPC call, his da a is b oadcas ed o e he ne wo k,
and un on each machine o each use connec ed. (No e ha we needed o call he
se e RPC because non-hos clien s a e no able o call clien RPC me hods). On each
machine, he Ge Came aImage componen o he co esponding FaceCam is passed
he image in he me hod se WebcamTex u e. Inside o i , he image is dese ialized,
and pu as he ex u e o he webcam. One hing o no e he e is ha , since we a e
sending each ame as images (no in e - ame comp ession), we needed o ha e he
image as ligh weigh as possible o else he ne wo k can’ handle i , so he esolu ion
is lowe ed as much as possible and he ame a e is e y educed. Fo his eason,
sha ing he webcam o e he ne wo k is only p esen on he "expe imen al" b anch,
ins ead o he "main" b anch.
Chap e 6: Conclusions
In his chap e we b ie ly discuss ou ini ial expec a ions, con as ing hem agains
wha we ac ually ended up doing, and wha we le ou o he scope o he p ojec ,
ei he due o lack o ime, o any o he complica ion. Ne e heless, mos o he
aspec s included in his chap e a e explained in u he de ail in he chap e s de o ed
o Conside ed Technologies,Implemen a ion and Fu u e Wo k, espec i ely,
hence we do no o e ly elabo a e in his one. Finally, we include ou conclusions and
u u e wo k a he end o he chap e .
6.1 Wha we wan ed o do
The ini ial idea o his p ojec was o come up wi h a way o le ing s uden s and
p o esso s in e ac wi h each o he i ually, bu in a mo e na u al way. The concep
included he possibili y o sha ing iles among he class, no only om he eache o
he s uden s bu in be ween hem, oo. Meanwhile, on he aes he ics side o hings,
he playe s hemsel es would ha e had he possibili y o cus omizing hei own a a a ,
changing he clo hes and hei physical aspec . This was impo an i we did no wan
all ou a a a s o look exac ly he same: a simple dummy made o a sphe e and a
weaked pill. O he mino de ails, such as he possibili y o opening a loa ing window
showing a copy o he blackboa d sc een (in case he s uden is a om he on o
class), we e also ini ially conside ed.
72
6.4. FINAL VERSION OF THE PROJECT 79
misma, po ejemplo), ambién ue on conside adas.
Nues o concep o inicial ambién enía en cuen a la posibilidad de do a a los pa ici-
pan es de la capacidad de habili a o inhabili a di e en es ca ac e ís icas del p og ama
dependiendo del ipo de usua io que ue an. Es o implica ía que los p o eso es en-
d ían la opo unidad de cambia los ídeos e imágenes en la piza a mien as que los
es udian es no, o po ejemplo que los p o eso es u ie an pe misos pa a silencia a
uno o a ios pa icipan es si lo necesi a an opo uno. Es os son an solo unos pocos
ejemplos conside ados.
Po o a pa e, la aplicación ambién pe mi i ía a los usua ios con ola el olumen
de o os pa icipan es (es deci , en su p opia máquina), apa e de ene un sonido
espacial pa a cada uno de ellos (es deci , que el audio de cada pe sona se ep oduje a
más al o o bajo —¡Y ambién en cuan o a Panning!— en unción de lo lejos o ce ca
que es én del usua io). Además, el p og ama inclui ía un cha pa a pe mi i una mayo
in e acción con el es o de la clase e i ando al mismo iempo in e umpi o moles a
al p o eso .
Finalmen e, odos los usua ios end ían la posibilidad he mos a su webcam en en e
de su a a a con la in ención de hace la in e acción más pe sonal y, li e almen e
hablando, «ca a a ca a». Adicionalmen e y de ca a a mejo a la expe iencia inme si a,
los «jugado es» end ían ambién la posibilidad de in e ac ua con obje os de su
en o no, ales como pue as.
Lo que ealmen e hicimos
Cuando hicimos es as p ime as sesiones de llu ia de ideas, no nos con u imos a la
ho a de p opone odo ipo de ideas c ea i as; sin emba go no pudimos consegui
6.4. FINAL VERSION OF THE PROJECT 80
implemen a la lis a en e a de odas esas ideas que eníamos en men e en un p incipio.
Po an o, en es a sección hacemos un esumen de lo que hemos sido capaces de
implemen a , desde la a ea más básica y c ucial has a la menos p io i a ia de nues a
lis a:
•
Implemen a un en o no i ual donde dos o más pe sonas puedie an in e ac ua
en e ellas po medio de a a a es.
•
Añadi canales de oz pa a pe mi i a los usua ios habla en e ellos di ec amen e
den o de la aplicación, usando cha de audio po p oximidad que enga en
cuen a la dis ancia al hablan e y la di ección a es e.
•
Añadi la webcam a los a a a es de o ma que comp endan mejo las eacciones
de o os pa icipan es e in e ac úen con ellos de mane a más na u al.
•
Añadi la posibilidad de mos a imágenes o ídeos en un plano den o del
en ono i ual de mane a local y pos e io men e pe mi i que el es o ambién
ea es os cambios (un plano que luego cons i ui ía la piza a).
•
Implemen a un sis ema de aducción de mane a que pe mi a a pe sonas de
di e en es luga es in e ac ua con la app de mane a sencilla.
•
Pe mi i a los usua ios que se au en i iquen como p o eso es o como es udian es.
•
Pe mi i a los usua ios in e ac ua con pue as y piza as (con independencia
del ipo de usua io que sean).
Lo que no hicimos
In his sec ion we enume a e a lis o asks ha we e ini ially planned o be done, bu
due o a ious easons we ended up no implemen ing. This is why we ha e decided o
di e en ia e hese om he u u e wo k lis .
6.4. FINAL VERSION OF THE PROJECT 81
6.4.1 Cha ac e Cus omiza ion
Una posibilidad de a egla la ( al a de) pe sonalización de los a a a es hab ía podido
se a a és de un amewo k llamado Ready Playe Me, el cual pe mi e c ea ,
pe sonaliza y es i u p opio a a a y añadi lo a la aplicación. El amewo k pa ece
se 100% compa ible con Uni y y ambién iene con la posibilidad de pe sonaliza
el a a a ue a del juego, po medio de una web, pe o conside amos es o inalmen e
menos esencial que o as ca ac e ís icas.
Reacciones ápidas con Emoji
In en amos añadi la posibilidad de mos a un emoji o símbolo encima de los a a a es,
indicando al p o eso exp esiones como es a de acue do o no, es a in e sado o no,
es a abu ido, e c. Es o pe mi i ía la exp esión de opiniones sin la necesidad de
esc ibi o habla . Es e en oque acili a ía una comunicación e icien e, especialmen e
cuando el p o eso p egun a si su discu so es á siendo lo su icien emen e cla o, e i ando
espues as múl iples solapadas. Sin emba go, a la ho a de explo a la o ma de mos a
ex u as u obje os encima o delan e del pe sonaje, conside amos o as uncionalidades
más p io i a ias. Finalmen e concluimos que op imiza nues o iempo y es ue zo e a
c ucial, lo que nos lle ó a elega es a uncionalidad a un segundo plano. Finalmen e,
es a ca ac e ís ica no ue implemen ada.
Mensajes de ex o
A la ho a de in es iga odo lo elacionado con la comunicación, p opusimos una solu-
ción que cub i ía an o los comunicación esc i a como o al. Finalmen e, conside amos
más ele an e es ablece un canal de oz, ya que es o ha ía que la expe iencia en el
modelo de la acul ad ue a más pa ecido a aquel en una clase ísical y eal. Po an o
di e imos la implemen ación del canal de ex o a u u as i e aciones pa a inalmen e
edi igi nues os es ue zos a o as a eas.
6.4. FINAL VERSION OF THE PROJECT 82
Ve sión inal de nues o p oyec o
La e sión inal del p oyec o consis e en un p og ama que pe mi e a di e en es pe sonas
uni se a una misma clase en un se ido pa a da y ecibi clases de mane a más
inme si a. Los a a a es ienen un plano lo ando delan e de la cabeza que mues a
el con enido de la webcam de la pe sona con olando dicho a a a . Con es e sis ema,
o ecemos una o ma más na u al de o ganiza euniones i uales po que no solo
podemos e en iempo eal las ca as del es o de la gen e en un en o no i ualsino
que ambién podemos in e ac ua con ellos ca a a ca a.
Sin emba go, y debido a la amplia a iedad de aspec os en los cuales es e p oyec o se
puede expandi , hab ía po an o una g an can idad de uncionalidades que pod ían
conside a se pa iendo de es e pun o, en e las que podemos encon a :
•
Implemen ación de un sis ema de in en a io: Una de nues as ideas u u as
consis e en hace posible ans e i a chi os o documen os en e pe sonas pe o
como si los a a a es se pasa an dichos dicumen os ísicamen e en e ellos. Con
es o, pod íamos e una sue e de in en a io en el que pod íamos almacena una
cie a can idad de obje os, o quizás apun es del p o eso , po ejemplo.
•
O ganizado de ho a ios: O o aspec o impo an e pe o que aun así nos ha
al ado se ía que p o eso es o adminis ado es pudie an c ea y o ganiza sus
clases al p incipio del año, de o ma que, cuando un es udian e se ma icula en
un cu so, se les asigna a au omá icamen e a sus clases co espondien es y a la
ho a co espondien e.
•
Sis ema de Inicio de sesión: Aho a mismo cualquie a puede en a como
p o eso en la aplicación (me iéndose como Hos ). Una de las cosas que debe ían
es a en una e sión u u a se ía cambia el sis ema de au en i icación de mane a
que se pudie a con ola quién se puede egis a como p o eso y quién no.
6.4. FINAL VERSION OF THE PROJECT 83
•
Enc ip ación de con aseña: Po o o lado, no nos podemos ol ida de
la segu idad, y po esa azón se debe ía hace un a amien o segu o de las
con aseñas y en gene al de las bases de da os que se hicie an.
•
Cha de Tex o: O a posibilidad se ía añadi un cha de ex o, de o ma que
dos o más pe sonas pudie an en ia se mensjaes sin moles a al es o de la clase,
o incluso compa i links en e o as cosas.
•
Compa ición de pan alla: O a uncionalidad in e esan e se ía da la opo -
unidad de compa i el con enido de la pan alla del p o eso , o pe mi i nue os
o ma os de a chi o en la piza a ales como pd , po ejemplo.
•
Esc ibi con iza en la piza a: O a opción pod ía se laposibilidad de
esc ibi con iza en la piza a i ual, pe mi iendo a odo el mundo uni se y
esc ibi po ellos mismos.
•
Tene la opción de enmudece el audio: O a uncionalidad a conside a se ía
la posibilidad de enmudece u p opio audio cuando p e ie es no se escuchado y
ene la capacidad de enso dece a o os usua ios en el caso de que puedan se
moles os.
Chap e 7: Wo k done by each
membe
In his inal sec ion, we enume a e he espec i e asks each o us has done in he
de elopmen o his p ojec .
7.1 Samuel
•
Implemen ed he au hen ica ion sys em (F on end side), as well as he ingame
GUI and i s Backend. Fo his sake, he:
–C ea ed he layou using Uni y UI Builde .
–
C ea ed he C# sc ip o handle he use in e ac ion wi h he GUI and
p oceeding o call he co esponding backend sys ems a e wa ds.
•Con ibu ed o he e ac o ing o he Facul y model.
•
Implemen ed he Playe mo emen and he Following Came a Sys em Fo ha
sake, he:
–C ea ed he dummy A a a .
–Assigned he main came a o i .
–Impo ed he “Following Came a” sc ip .
84
7.1. SAMUEL 85
–C ea ed he mo emen con olle sc ip and assigned i o he playe .
–
C ea ed and added he use name ag o e an a a a ’s head, as well as
implemen ing a sys em o le i u n owa ds he playe , so ha hey can
ead i ega dless he angle.
–Finally con e ed he whole hie a chy in o a p e ab.
•
Added a digi al clock o he GUI so ha bo h use s and p o esso s can know
how much ime o class is le .
•Implemen ed he ansla ion sys em. Fo his sake, he:
–C ea ed he IT ansla able in e ace.
–C ea ed he T ansla o class.
–
Made he GUI classes implemen he IT ansla able class and egis e hem
in he T ansla o class.
•Implemen ed he File Selec o sys em. Fo his sake, he:
–Impo ed he FileB owse Upda e sc ip .
–C ea ed he In e ac ion Con olle s o he playe .
–Adjus ed he ile ex ensions o be allowed o be chosen.
–
Made he sc ip o e u n he lis o pa hs o he selec ed iles in o de o
le he Blackboa d sys em o display hem in he class oom.
•Fo ma ed and o ganized he documen empla e in LaTeX.
•Wo ked on some o he UML diag ams.
•
Wo ked on pa o he Implemen a ion,Conside ed Technologies and
P ojec Planning chap e s.
7.2. ALEXANDER 86
7.2 Alexande
•C ea ion o he ini ial p ojec
–C ea ing he gi hub eposi o y wi h he ini ial uni y p ojec .
–Impo ing he exisi ing acul y 3d model o he p ojec .
–Con igu ing he packages and ools we used as we wen along.
•Con ibu ed o he e ac o ing o he acul y model
–
The objec s we e no o ganized in any hie a chy when he model was loaded,
so ga e some iden i iable names and mo e cohe en s uc u e ( acul y has
a eas, which ha e loo s, windows, doo s ... And hose doo s would g oup
he di e en elemen s ha make up he doo ) so ha we could la e wo k
wi h hose elemen s mo e easily
–
Added he necessa y componen s o each i em. These a e mainly collide s
(solid objec s such as loo s, walls, ables, ... need collide s so ha he playe
can no go ho ugh hem) and Doo In e ac ion sc ip s o he doo s
•Resea ch and d a a solu ion o cohe ence as an objec synch oniza ion ool
–
Gain unde s anding o he cohe ence ool, eading he documen a ion,
checking exis ing demos, going h ough u o ials, o e alua e i he ool
was app opia e o ou case.
–
C ea e a sepa a e mini-p ojec o se e as a wo king p o o ype o how he
objec synch oniza ion would be and encoun e any blocke s in he way.
Also o sha e his p o o ype wi h he es o he eam, and es ou he
synch oniza ion hough di e en ne wo ks.
–
This in es iga ion se ed o ealize ha i didn’ in eg a e well wi h he
audio communica ion ools e alua ed, so i was disca ded in a o o syn-
7.2. ALEXANDER 87
ch oniza ion wi h Ne wo kManage using Relay as he anspo
•
Implemen ed and debugged (a lo ) he ne wo k synch oniza ion wi h Ne wo k-
Manage and elay as he anspo
•
Added he in-game debug console o be able o debug some o he synch oniza ion
p oblems when unning mul iple ins ances o he applica ion (ou side he edi o )
•I e a ed and e ac o ed he playe con olle s as ou p ojec de eloped
–
When we allowed o ha e mul iple use s in he scene, a oid c ea ing mul iples
in each machine (causing a playe o mo e all o he s) while also allowing
non-hos playe s o mo e hei own a a a (which led o he c ea ion o
hings like Clien Ne wo kT an o m, o gi e he au ho i y o he a a a
objec o he clien ha owns i )
–
C ea ed he Se e Rpc and Clien Rpc me hods, used when synch onizing
he doo s because he clien has no owne ship o e he doo s, and o
synch onizing he webcams since he e was no di ec way o synch onize
ha da a.
•C ea ed he componen diag am and some o he sequence diag ams
–
P esen ed he es o he eam wi h he plan Uml ool, as a way o bo h
mo e quickly c ea e and edi diag ams, which allowed o mo e isual
con e sa ion on how we could i e a e di e en lows in ou code, by mo e
easily compa ing he be o e and a e o each p oposed change.
–
C ea ed some o he sequence diag ams and c ea ed he componen diag am
o isualize how all o he ele an objec s and sc ip s in ou p ojec in e ac
•
Wo ked on w i ing his documen . Mainly ocused on he Implemen a ion
and Conside ed Technologies chap e s, bu also con ibu ing and e iewing
o a lesse ex en on he es o he chap e s.
7.3. SARA 88
7.3 Sa a
•
Modi ica ions o he sc ip Playe In e ac ionCon olle o suppo en i onmen al
in e ac ion unc ionali ies
•In e ac ion wi h doo s.
–C ea ion o he Doo In e ac ion.
–Modi ica ions o he sc ip Playe Ne wo k.
–
Adjus men s o a ibu e alues ela ed o coo dina es, necessa y o he
p ope mo emen o doo s.
–Pe o ming manual es s o e alua e unc ionali y
•T ying ou a quick eac ion sys em (emojis on he a a a )
–Sea ch o h ee-dimensional esou ces o display
–Execu ing es s on displaying o hiding objec s wi hin he scene
•In e ac ion wi h he blackboa d.
–
Resea ch on how o display esou ces like ideos o p esen a ions on a
plane.
–Modi ica ions o he sc ip In oBoxManage .
–
Added a plane o he blackboa d o ende ex u es o images o ideos
in ended o display.
–
C ea ion o he Blackboa d sc ip and addi ion o he plane loca ed a he
blackboa d posi ion.
–Added a
–Pe o ming manual es s o e alua e unc ionali y
CHAPTER 9. APPENDIX 95
mejo ados y e oluciona , implemen ando uncionalidades que pe mi an educi la
sepa ación (hoy eno me) en e las expe iencias de in e acción p esencial y emo a.