scieee Open visual document viewer

Exploring mechanisms for virtual interaction to improve online teaching

Aguilar, Alexander de; Sacó Baños, Sara; Santos Hernán, Samuel

Abstract

The following project consists on the specification, design and implementation of a desktop application that allows users both to attend or to give classes in a nonpresential way, yet comfortably and efficiently. This would be achieved by means of a digital model of the faculty (already existing and given to us by our project conductors, but to which we have had to apply a big, general refactorization), and a Graphical User Interface (GUI) that would help the user experience to be pleasant and easy to control. The application also implements a server-client system in order to make the actual interaction between users possible. The application could also give support for virtual reality glasses, but it must work in any case with a desktop environment, in order to make it accessible to all users.

Full text

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.