14
TFG EN ENGINYERIA INFORMÀTICA, ESCOLA D’ENGINYERIA (EE), UNIVERSITAT AUTÒNOMA DE BARCELONA (UAB) 1 Creació d’un videojoc mòbil addictiu, per a Android, amb Unity Nil Pascual Fernández ResumPossiblement un dels reptes més difícils per un programador de videojocs és aconseguir que el videojoc sigui addictiu i agradi als usuaris finals. En aquest projecte busquem implementar un videojoc addictiu per a Android, des de la presa de requisits, fins la publicació de l’aplicació a la Google Play Store. Per aconseguir aquest objectiu s’ha entrevistat a un psicòleg, expert en la matèria i, a partir de les seves respostes, hem extret uns objectius que la nostra aplicació ha de complir per a considerar-se addictiva. L’aplicació ofereix diversos modes de joc immersiu en 3D a l’usuari, on, cada un, conté una mecànica i objectiu diferent. També conté un llistat d’objectius a complir, una taula de les millors puntuacions dels usuaris per a cada joc, i una botiga per a canviar visualment els diferents components del joc al gust de l’usuari, entre altres. Paraules clauvideojoc, Google Play Store, Android, C#, Unity, programació mòbil, addictiu, arcade, joc. AbstractPossibly one of the most difficult challenges for a video game programmer is getting the video game addictive and appealing to end users. In this project we seek to implement an addictive video game for Android, from the taking of requirements, to the publication of the application in the Google Play Store. To achieve this goal, a psychologist, an expert in the field, was interviewed and, based on his answers, we extracted some objectives that our application must meet in order to be considered addictive. The application offers several immersive 3D game modes to the user, each of which contains a different mechanics and objective. It also contains a list of goals to be met, a table of the best user scores for each game, and a store to visually change the different components of the game to the user's taste, among others. Index Termsvideo game, Google Play Store, Android, C #, Unity, mobile programming, addictive, arcade, game. —————————— —————————— 1 INTRODUCCIÓ E ls jocs han existit al llarg de la història de la humanitat. Els més comuns han estat tradicionalment els de taula i de saló. Els escacs, les cartes o el billar han estat presents per molt temps. No serà fins a l'arribada de l'electrònica i la informàti- ca quan neixi el videojoc. L'any 1973, va aparèixer en locals públics com bars, aeroports, etc. el primer joc arca- de totalment electrònic, el Pong. Malgrat de la seva enor- me senzillesa, va causar un gran enrenou en l'època a causa de que no disposava de parts mecàniques mòbils; tot el joc estava implementat en un microprocessador i es desenvolupava a la pantalla d'un televisor. A començament dels 90s i amb l'aparició dels PC, nei- xen els primers jocs en 3D (Wolfenstein 3D, Catacombs 3D). Es van aprofitar les capacitats tècniques que oferien els PC per desenvolupar noves tècniques per la realització de videojocs, com el mapeig de textures, ombres dinàmi- ques, scroll, etc. Amb l'evolució tecnològica, les companyies van co- mençar a plasmar-ho en els seus productes, l'era del 3D havia arribat i estava en el seu moment més important: Nintendo al 1996, va treure la seva consola Nintendo 64 i al costat d'ella va llançar el Mario64, joc amb el qual va revolucionar el concepte de 3D, amb gràfics i textures realistes, animacions més fluides i una interacció amb l'usuari més addictiva. En aquell mateix any Sony va llançar la seva primera consola: la Playstation, que tenia un reproductor de CDs, lo qual comportava que els vi- deojocs es gravessin en aquest format per a la seva execu- ció. Entre tota aquesta guerra de consoles i ordinadors, va aparèixer el telèfon mòbil, i així una nova oportunitat per a la indústria. El primer joc per mòbil va ser llançat per Nokia, avui propietat de Microsoft. Era el joc de ‘snake’ la serp que havia de menjar quadrats. El joc era molt senzill. Mentre la gent es sorprenia amb els jocs de la Nintendo amb els seus gràfics millorats, tot dins d'un cartutx, Nokia amb aquest senzill joc canviava totalment l'ús dels mòbils per sempre. El nostre joc ‘Gravity Pong’ és un videojoc gratuït que es pot descarregar per a Android des de la PlayStore gra- tuïtament, el qual s’ha desenvolupat per a entendre més d’aprop aquest fenomen: Com un joc aparentment sim- ple, pot triomfar tant? Que es necessita per a desenvolu- par-lo? Realment hi ha al darrere un plantejament ‘sim- ple’? ———————————————— E-mail de contacte: [email protected] Menció realitzada: Enginyeria del Software Treball tutoritzat per: Gemma Sánchez Albaladejo (Departament de Ciènci- es de la Computació) Curs 2019/20 “Mes” de 2020, Escola d’Enginyeria (UAB)

Nil Pascual Fernández - UAB Barcelona · 2020. 9. 2. · llançar la seva primera consola: la Playstation, que tenia un reproductor de CDs, lo qual comportava que els vi-deojocs

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Nil Pascual Fernández - UAB Barcelona · 2020. 9. 2. · llançar la seva primera consola: la Playstation, que tenia un reproductor de CDs, lo qual comportava que els vi-deojocs

TFG EN ENGINYERIA INFORMAgraveTICA ESCOLA DrsquoENGINYERIA (EE) UNIVERSITAT AUTOgraveNOMA DE BARCELONA (UAB) 1

Creacioacute drsquoun videojoc mogravebil addictiu per a Android amb Unity

Nil Pascual Fernaacutendez

ResummdashPossiblement un dels reptes meacutes difiacutecils per un programador de videojocs eacutes aconseguir que el videojoc sigui

addictiu i agradi als usuaris finals En aquest projecte busquem implementar un videojoc addictiu per a Android des de la presa

de requisits fins la publicacioacute de lrsquoaplicacioacute a la Google Play Store Per aconseguir aquest objectiu srsquoha entrevistat a un

psicograveleg expert en la mategraveria i a partir de les seves respostes hem extret uns objectius que la nostra aplicacioacute ha de complir

per a considerar-se addictiva Lrsquoaplicacioacute ofereix diversos modes de joc immersiu en 3D a lrsquousuari on cada un conteacute una

mecagravenica i objectiu diferent Tambeacute conteacute un llistat drsquoobjectius a complir una taula de les millors puntuacions dels usuaris per a

cada joc i una botiga per a canviar visualment els diferents components del joc al gust de lrsquousuari entre altres

Paraules claumdashvideojoc Google Play Store Android C Unity programacioacute mogravebil addictiu arcade joc

Abstractmdash Possibly one of the most difficult challenges for a video game programmer is getting the video game addictive and

appealing to end users In this project we seek to implement an addictive video game for Android from the taking of

requirements to the publication of the application in the Google Play Store To achieve this goal a psychologist an expert in

the field was interviewed and based on his answers we extracted some objectives that our application must meet in order to

be considered addictive The application offers several immersive 3D game modes to the user each of which contains a

different mechanics and objective It also contains a list of goals to be met a table of the best user scores for each game and a

store to visually change the different components of the game to the users taste among others

Index Termsmdashvideo game Google Play Store Android C Unity mobile programming addictive arcade game

mdashmdashmdashmdashmdashmdashmdashmdashmdashmdash mdashmdashmdashmdashmdashmdashmdashmdashmdashmdash

1 INTRODUCCIOacute

Els jocs han existit al llarg de la histograveria de la humanitat

Els meacutes comuns han estat tradicionalment els de taula i de saloacute Els escacs les cartes o el billar han estat presents per molt temps

No seragrave fins a larribada de lelectrogravenica i la informagraveti-ca quan neixi el videojoc Lany 1973 va aparegraveixer en locals puacuteblics com bars aeroports etc el primer joc arca-de totalment electrogravenic el Pong Malgrat de la seva enor-me senzillesa va causar un gran enrenou en legravepoca a causa de que no disposava de parts mecagraveniques mogravebils tot el joc estava implementat en un microprocessador i es desenvolupava a la pantalla dun televisor

A comenccedilament dels 90s i amb laparicioacute dels PC nei-xen els primers jocs en 3D (Wolfenstein 3D Catacombs 3D) Es van aprofitar les capacitats tegravecniques que oferien els PC per desenvolupar noves tegravecniques per la realitzacioacute de videojocs com el mapeig de textures ombres dinagravemi-ques scroll etc

Amb levolucioacute tecnologravegica les companyies van co-menccedilar a plasmar-ho en els seus productes lera del 3D havia arribat i estava en el seu moment meacutes important Nintendo al 1996 va treure la seva consola Nintendo 64 i

al costat della va llanccedilar el Mario64 joc amb el qual va revolucionar el concepte de 3D amb gragravefics i textures realistes animacions meacutes fluides i una interaccioacute amb lusuari meacutes addictiva En aquell mateix any Sony va llanccedilar la seva primera consola la Playstation que tenia un reproductor de CDs lo qual comportava que els vi-deojocs es gravessin en aquest format per a la seva execu-cioacute

Entre tota aquesta guerra de consoles i ordinadors va aparegraveixer el telegravefon mogravebil i aixiacute una nova oportunitat per a la induacutestria El primer joc per mogravebil va ser llanccedilat per Nokia avui propietat de Microsoft Era el joc de lsquosnakersquo la serp que havia de menjar quadrats

El joc era molt senzill Mentre la gent es sorprenia amb els jocs de la Nintendo amb els seus gragravefics millorats tot dins dun cartutx Nokia amb aquest senzill joc canviava totalment luacutes dels mogravebils per sempre

El nostre joc lsquoGravity Pongrsquo eacutes un videojoc gratuiumlt que

es pot descarregar per a Android des de la PlayStore gra-tuiumltament el qual srsquoha desenvolupat per a entendre meacutes drsquoaprop aquest fenomen Com un joc aparentment sim-ple pot triomfar tant Que es necessita per a desenvolu-par-lo Realment hi ha al darrere un plantejament lsquosim-plersquo mdashmdashmdashmdashmdashmdashmdashmdashmdashmdashmdashmdashmdashmdashmdashmdash

bull E-mail de contacte nilpascual8gmailcom

bull Mencioacute realitzada Enginyeria del Software

bull Treball tutoritzat per Gemma Saacutenchez Albaladejo (Departament de Ciegravenci-es de la Computacioacute)

bull Curs 201920 ldquoMesrdquo de 2020 Escola drsquoEnginyeria (UAB)

2 EEUAB TFG INFORMAgraveTICA CREACIOacute DrsquoUN VIDEOJOC MOgraveBIL ADDICTIU

2 ESTAT DE LrsquoART

Quan parlem de videojocs addictius el primer que ens ve a la ment soacuten jocs drsquoegravexit com el lsquoPongrsquo [25] lsquoFlappy birdsrsquo [26] o lsquoCandy crushrsquo [27] Tot i la seva senzilla elaboracioacute i mecagravenica no es pot negar que soacuten jocs amb un egravexit ro-tund al mercat i jugats diagraveriament per milions de perso-nes

A quegrave eacutes degut Bagravesicament a la diversioacute que ofereix

en poc temps partides ragravepides puntuacions que compa-rar amb amics i mecagraveniques fagravecils drsquoentendre per a to-thom

En el cas de lsquoGravity Pongrsquo (El nostre joc) no es busca

igualar el nivell de les visuals ni animacions drsquoaquests jocs El que es busca es desenvolupar un joc des de lrsquoinici que contingui les mateixes caracteriacutestiques i prestacions que aquests jocs tan addictius per entendre de meacutes a prop com uns jocs aparentment tant simples tenen enre-re un plantejament drsquoalta complexitat que els fa arribar a ser els jocs amb meacutes egravexit de la historia

3 OBJECTIUS

Lrsquoobjectiu principal del projecte eacutes realitzar el proceacutes de desenvolupament i disseny des de zero drsquoun videojoc addictiu per al sistema operatiu lsquoAndroidrsquo realitzat amb el motor gragravefic Unity Aixograve comportaragrave una presa de requi-sits on es contactaragrave amb experts sobre lrsquoaddiccioacute per investigar quins aspectes es podrien traduir a un videojoc del gegravenere Tambeacute srsquohauran de realitzar dissenys de lrsquoentorn on srsquoaprofitaran per a realitzar diferents tests amb potencials usuaris (lsquofirst-clickrsquo test [7]) i srsquoutilitzaran elements artiacutestics gratuiumlts [22] [23]

El segon objectiu seragrave el desenvolupament del videojoc

i lrsquoelaboracioacute del codi amb el llenguatge de programacioacute C desenvolupat amb el motor gragravefic lsquoUnityrsquo Srsquoaplicaran diferents tests a lrsquoaplicacioacute per a provar la seva seguretat i consistegravencia Dins drsquoaquest objectiu es vol desenvolupar

bull Una pagravegina principal amb tres opcions de menuacute di-ferents Histograveria Lliure i Tenda i dos petits botons que serviran per a visualitzar els objectius del joc i les taules de puntuacions

bull Un sistema de joc basat en el clagravessic joc lsquoarcadersquo i primer videojoc de la histograveria de lsquoPongrsquo perograve apor-tant un toc meacutes modern innovador i entretingut

bull Un mode histograveria on seguint una divertida histograveria amb diagravelegs entre personatges haurem de superar diferents pantalles seguint la mecagravenica explicada al punt anterior perograve amb petites variacions Constaragrave de 5 nivells amb dificultat progressiva i enemics amb intelmiddotligegravencia artificial

bull Un mode lliure on ens trobem amb lrsquoessegravencia del joc Al contrari del mode histograveria en aquest mode no ens molestaragrave cap enemic constaragrave de 5 nivells de joc diferents on cadascun canviaragrave totalment la forma de jugar la partida i on lrsquoobjectiu seragrave fer la magravexima puntuacioacute possible per rivalitzar amb els nostres amics Es guardaragrave la millor puntuacioacute acon-seguida a cada nivell i per a poder jugar es necessita-ran tiquets que si ens quedem sense haurem de vi-sualitzar un anunci per aconseguir-ne meacutes

bull Un sistema de millores aleatograveries (boost) que aparei-

xeran per pantalla oferint diferents efectes que can-viiumln el transcurs e la partida

bull Una botiga on trobarem textures visuals que po-drem comprar per a personalitzar tots els objectes del joc al nostre gust Perograve no seragrave fagravecil aconseguir-ho els diferents aspectes valdran monedes que no-meacutes es podran aconseguir jugant al mode lliure on cada punt aconseguit seragrave una moneda per utilitzar a la botiga

bull I finalment un apartat drsquoobjectius i marcador de puntuacions on es podran visualitzar diferents ob-jectius a completar dins del joc i les puntuacions dels nostres amics als diferents modes de joc respecti-vament

Finalment un cop lrsquoaplicacioacute sigui testejada interna-

ment el tercer objectiu eacutes penjar-la a la plataforma Play Store drsquoAndroid on qualsevol usuari la podragrave descarre-gar gratuiumltament

4 METODOLOGIA

Per al desenvolupament drsquoaquest projecte srsquoha seguit la metodologia de lsquoRapid Prototypingrsquo [1] El lsquoRapid prototypingrsquo o disseny ragravepid se centra en una representacioacute daquells aspectes del programari que seran visibles per al client o lusuari final Aquest disseny con-dueix a la construccioacute dun prototip el qual eacutes avaluat pel client contiacutenuament per a una retroalimentacioacute Gragravecies a aquesta continua retroalimentacioacute es refinen els requisits del programari que es desenvoluparagrave Aixograve permet que al mateix temps el desenvolupador entengui millor el que sha de fer i el client vegi resultats a curt termini

Les etapes a seguir en retroalimentacioacute tal com veiem

a la figura 1 seran

bull Comunicacioacute

bull Pla ragravepid

bull Modelatge i disseny ragravepid

bull Construccioacute del prototip

bull Desenvolupament i entrega retroalimentacioacute Quegrave srsquoaplicaran per cada aspecte a desenvolupar del

joc

NIL PASCUAL FERNAacuteNDEZ CREACIOacute DrsquoUN VIDEOJOC MOgraveBIL ADDICTIU 3

Fig 1 Rapid prototyping

Aquesta metodologia eacutes molt uacutetil per a un projecte on

es tenen clars els objectius generals del software perograve no srsquoidentifiquen clarament els seus requisits (lrsquoestat inicial del nostre projecte) Tambeacute seragrave altament uacutetil per a provar que el joc eacutes addictiu ja que amb un constant contacte amb els usuaris hi hauragrave un feedback molt gran en tot moment Aquesta metodologia portaragrave com a objectiu final un software de qualitat gragravecies a la bona definicioacute de requi-sits que sersquon podragrave extreure i el descart de funcionalitats o aspectes no necessaris en el projecte que endarreririen les entregues

5 PLANIFICACIOacute

51 Planificacioacute de les tasques

La primera setmana del projecte es van dedicar iacutente-grament a la planificacioacute del projecte Tot i que pot sem-blar que soacuten massa dies per a aquesta tasca es va consi-derar fonamental que la planificacioacute inicial fos la meacutes encertada possible pel bon devenir del projecte

El projecte el podem dividir principalment en sis eta-

pes o tasques principals 1 Definicioacute del projecte consisteix en la definicioacute de

lrsquoabast del projecte i la planificacioacute de les tasques que srsquohan de realitzar per tal drsquoassolir els objectius

2 Estudi sobre lrsquoaddiccioacute aquest estudi consisteix a concertar una entrevista amb un psicograveleg expert en la mategraveria per a formular-li un seguit de preguntes extreurersquon les primeres conclusions i objectius en clau de requisits que necessitaragrave el projecte Tant les preguntes formulades com les respostes extre-tes es poden trobar al document adjunt ldquoEntrevis-ta amb un psicogravelegrdquo

3 Presa de requisits aquesta etapa es considera drsquoalta importagravencia per al desenvolupament del projecte i consisteix que a partir de lrsquoetapa anteri-or i una investigacioacute personal sobre el tema a trac-tar elabora un document complet de requisits Es considera drsquoalta importagravencia ja que amb un bon document i unes bones pautes se sabragrave en tot moment el que srsquoha de fer i com srsquoha de fer Els requisits complets es poden trobar al document

adjunt ldquoDesenvolupament del jocrdquo al CAPIacuteTOL 1 4 Disseny i Test aquesta etapa consisteix que a par-

tir del document de requisits extret elaborar un document de disseny del videojoc Aquest docu-ment conteacute tant tota la part artiacutestica (Guioacute histograveria controls personatges) com la part de disseny del software (Diagrama de classes targetes crc dia-grames de sequumlegravencia disseny de interfaccedil) I a partir dels primers esbossos de interfaccedil realit-zar tests de first-click-test per a saber si la interfaccedil era correcte i intuiumltiva El document complet de disseny es pot trobar a lrsquoarxiu adjunt ldquoDesenvolupament del jocrdquo al CAPIacuteTOL 2

5 Desenvolupament de lrsquoaplicacioacute implementacioacute i testeig del videojoc a partir dels apartats anteriors

6 Pas a produccioacute un cop desenvolupada i testejada lrsquoaplicacioacute es pujaragrave una versioacute estable a la plata-forma Play Store

7 Documentacioacute del projecte redaccioacute del dossier del projecte i preparacioacute de la presentacioacute

A la Taula 1 podem veure les tasques que acabem

drsquoexplicar amb les hores planificades per la seva resolucioacute i els rols que participen en cada una drsquoelles Pel nostre cas el Project Manager el dissenyador el programador i el tester soacuten la mateixa persona (lrsquoestudiant)

TAULA 1

ROLS PER TASCA

Tasca Temps(hores) Rols participants

Definicioacute 20 Project Manager

propietari de lrsquoapp

Estudi sobre lrsquoaddiccioacute 20 Dissenyador psicograve-

leg

Presa de requisits 40 Dissenyador

Disseny i test 30 Dissenyador usuaris

de test

Desenvolupament de

lrsquoaplicacioacute

150 Programador tester

propietari de lrsquoapp

Pas a produccioacute 10 Tester propietari de

lrsquoapp

Documentacioacute del

projecte

30 Project Manager

TOTAL 300

I per finalitzar veurem quin seria el cost aproximat que suposaria pel client aquets projecte A la Taula 2 mos-trem el cost dels sous dels treballadors segons el seu rol i a la Taula 3 el cagravelcul del cost final A lrsquohora de calcular el cost final afegim uns costos indirectes corresponents als desplaccedilaments per les reunions amb el client No tindrem en compte el cost drsquoadquisicioacute dels ordinadors utilitzats pels treballadors (suposarem que soacuten de pro-pietat) ni les llicegravencies dels programes de desenvolu-pament utilitzats (ja que tot eacutes software lliure o sense cap cost)

4 EEUAB TFG INFORMAgraveTICA CREACIOacute DrsquoUN VIDEOJOC MOgraveBIL ADDICTIU

TAULA 2

COST MONETARI

Rol treballador Cost (euroh) Temps (h) Cost total

(euro)

Project

Manager

50 50 2500

Dissenyador 25 90 2250

Programador 20 150 3000

Tester 20 30 600

TOTAL 300 8350

Per tant el cost final del projecte despreacutes drsquoaplicar un

20 de benefici seria

TAULA 5

COST TOTAL

Tipus de cost Cost (euro)

Cost Directe 8350

Benefici +20

TOTAL 10020

Hem de tenir en compte que el cost final obtingut se-

gurament no seria tant elevat La planificacioacute de les hores srsquoha realitzat tenint en compte que no tinc gaire experiegraven-cia a lrsquohora de treballar en projectes de programacioacute drsquoaquest abast El meacutes probable es que a una empresa especialitzada en el desenvolupament software no li cal-guin tantes hores per a poder assolir els objectius esta-blerts

Al apegravendixs A1 i A2 trobem tota la informacioacute sobre la planificacioacute de les tasques En el primer trobem la planifi-cacioacute inicial que es va realitzar i en el A2 la planificacioacute final que ha sorgit amb les condicions en les que srsquoha treballat

52 Avaluacioacute de Riscos

Un altre aspecte fonamental de la planificacioacute drsquoun projecte eacutes lrsquoavaluacioacute dels possibles riscos que poden comprometre el correcte desenvolupament del projecte Estudiant amb anterioritat quines poden ser les principals amenaces es poden trobar possibles solucions o fins i tot arribar a evitar-los

bull Un dels possibles riscos principals que vagraverem tenir en compte era la falta drsquoexperiegravencia amb el motor gragravefic ja que no srsquohavia treballat dins del grau Per aixograve es va treballar des de un principi en estudiar-lo a partir de la documentacioacute [17] [20] [21] [24]

bull Un segon risc podia ser la lsquono addiccioacute de lrsquoaplicacioacutersquo que aquesta no arribeacutes a ser un entorn que cridi lrsquoatencioacute i caigueacutes en la monotonia i sim-plicitat Per aixograve es va treballar en la presa de re-quisits amb psicograveleg per a que el joc tingueacutes totes les eines drsquoun videojoc drsquoaquesta classe

bull Per acabar un aspecte de risc per a la finalitzacioacute del projecte i molt important que es va tenir en

compte era no aconseguir pujar lrsquoaplicacioacute a la Play Store Degut a la situacioacute actual amb el CO-VID-19 informen a la pagravegina que cada revisioacute pot portar un temps de 7 o meacutes dies degut a questa si-tuacioacute Aquest aspecte incontrolable podia deri-var a la no pujada de lrsquoapp o a no aconseguir pujar una versioacute sense errors importants Per aixograve com veiem a la planificacioacute final al annex A2 srsquoha avan-ccedilat el proceacutes de desenvolupament per a tenir meacutes temps en aquest aspecte

6 DESENVOLUPAMENT

Per a explicar el desenvolupament de lrsquoaplicacioacute amb la magravexima exactitud possible srsquoaniragrave referenciant al docu-ment adjunt ldquoDesenvolupament del Jocrdquo un document de meacutes de 70 pagravegines que conteacute tot tota la informacioacute relacionada amb el projecte de inici a final el qual srsquoha anat redactant paralmiddotlelament amb el transcurs drsquoaquest

61 Estudi sobre lrsquoaddiccioacute

El primer pas per a comenccedilar el projecte ha sigut assegu-rar-se que aquest conteacute els aspectes clau per a que com-pleixi els objectius plantejats Per aconseguir-ho es va formalitzar una reunioacute amb una psicograveloga experta en la mategraveria

La entrevista cal destacar-la com a molt satisfactograveria gragravecies a una bona recerca del tema [2][3] es van quumlestio-nar aspectes generals al psicograveleg com Que eacutes lrsquoaddiccioacute per a tu Consideres que hi ha diferents tipus drsquoaddiccioacute De les que es va extreure una gran perspectiva sobre el punt de vista de lrsquoentrevistat i per exemple es va aconse-guir que definiacutes la nostra aplicacioacute com a tipus drsquoaddiccioacute no destructiva un gran pas ja que era un dels objectius del treball que es classifiqueacutes com a addictiva

Amb altres quumlestions com Quins soacuten els elements clau per considerar un joc addictiu O Quines caracteriacutestiques ha drsquooferir a primera vista per a seguir explorant-lo Srsquoha aconseguit extreure una part emocional molt important de lrsquoaddiccioacute que inclou els sentiments Srsquoha vist que aquests soacuten molt important que es produeixin durant el joc tant si soacuten bons com dolents Gragravecies a aquesta part es van prendre conclusions com que el sistema de ragraven-quing de puntuacions del joc deixaria de ser local per a ser global i es va concloure desenvolupar un guioacute per al mode historia el qual inclou diagravelegs amb humor entre altres

Es poden trobar la totalitat de lrsquoentrevista al document adjunt ldquoEntrevista amb un Psicogravelegrdquo i el guioacute final al document adjunt Desenvolupament del Jocrdquo a lrsquoapartat 212 ldquoLlibret i guioacuterdquo

62 Resum del Joc

El funcionament principal del videojoc eacutes semblant al joc de Pong [25] perograve respectant certes distagravencies Tot i que el joc compta amb 10 escenaris amb les seves progravepies caracteriacutestiques si meacutes no la mecagravenica principal del joc

NIL PASCUAL FERNAacuteNDEZ CREACIOacute DrsquoUN VIDEOJOC MOgraveBIL ADDICTIU 5

consta drsquouna pala de joc que lrsquousuari mouragrave horitzontal-ment per a evitar que una pilota caigui al terra Tambeacute compta amb tres murs als marges de la pantalla que a part de sumar punts quan siguin tocats amb la pilota canviaran de color segons els cops consecutius que han sigut golejats Si superen els 3 cops consecutius el mur en quumlestioacute desapareixeragrave fent impossible el seu contacte amb la pilota A meacutes diferents objectes apareixeran alea-tograveriament durant la partida per a oferir-nos efectes espe-cials que ens ajudaran o ens faran la partida meacutes compli-cada durant un cert temps

Al acabar cada partida obtindrem una puntuacioacute que es mostraragrave en un marcador de puntuacions per a compa-rar-la amb la dels nostres amics A part tota la informacioacute del joc es guardaragrave al dispositiu guardant el progreacutes en tot moment

Tot i que hem dit abans que el joc compta amb 10 es-cenaris diferents aquests es divideixen en dos modes de joc Historia i Lliure

El mode historia compta amb una petita trama que in-volucraragrave al jugador per a salvar el planeta on lrsquoobjectiu seragrave acabar amb els diferents enemics dels 5 nivells que amenaccedilaran al jugador

Lrsquoobjectiu del mode lliure seragrave en canvi aconseguir la magravexima puntuacioacute possible drsquoentre 5 modes de joc de mecagraveniques i dificultats diferents

Tot el progreacutes que aconseguim al joc es plasmaragrave en forma de monedes que podrem invertir per a personalit-zar amb diferents aspectes els objectes del joc

63 Presa de Requisits

Un cop fet lrsquoestudi per a elaborar el document de re-quisits srsquohan consultat moltes fonts drsquoinformacioacute [15] [16] historia dels videojocs [4] jocs semblants arquitectures de hardware que podria suportar el joc [5] estagravendards de desenvolupament documents de requisits[6] i documen-tacioacute[17] [18] [20] Vull tornar a destacar la importagravencia de lrsquoentrevista per a poder realitzar correctament aquest document oferint uns objectius clars Amb aquest treball fet vaig comenccedilar a redactar els requisits que es troben al ldquoCAPIacuteTOL 1rdquo del document adjunt ldquoDesenvolupament del jocrdquo Aquest conteacute molts apartats entre ells dos de clau

- Els requeriments del sistema On es parla sobre el propogravesit del sistema a desenvolupar el seu objec-tiu principal i les seves funcions Aquest apartat conteacute aspectes molt concrets del desenvolupa-ment com que el joc seragrave desenvolupat en castellagrave la connectivitat o requeriments de hardware miacute-nims per al funcionament del joc i conteacute un petit estudi sobre la restriccioacute drsquoedat del joc PEGI 3 Finalment conteacute una llista completa tant dels re-queriments funcionals del sistema com dels no funcionals on srsquoexplica detalladament cada funcioacute que podragrave oferir el joc com per exemple el mode historia

o Suportaragrave 5 escenaris diferents o Inclouragrave un tutorial interactiu amb

lrsquousuari o A cada escenari apareixeragrave un enemic di-

ferent amb habilitats moviments i IA propis

- Lrsquoanagravelisi del sistema En aquesta segona seccioacute clau del document a partir de la llista de requeri-ments esmentada en lrsquoapartat anterior es fa una anagravelisi preliminar del producte resumint totes les funcionalitats que contindragrave i els efectes que pro-duiragrave cada una en el transcurs de lrsquoaplicacioacute A partir drsquoaquesta primera anagravelisi srsquohan elaborat diferents diagrames de casos drsquouacutes on es poden veure molt visualment les interaccions que pot fer lrsquousuari amb el sistema

Fig 2 Diagrama de Navegar per la tenda

Com veiem a la Figura 2 drsquoexemple podem observar

totes les opcions drsquointeraccioacute que teacute lrsquousuari un cop estagrave dins la botiga Es poden trobar tots els casos drsquouacutes al do-cument adjunt ldquo Desenvolupament del Jocrdquo a lrsquoapartat 122 ldquoCasos drsquouacutesrdquo

Finalment a partir dels diagrames de casos drsquouacutes srsquoha elaborat una fitxa com la de la figura 3 de cada un on eacutes detalla les precondicions que srsquohan de complir pregravevia-ment per a que aquest es pugui dur a terme lrsquoiniciador que executa aquest cas drsquouacutes i el curs drsquoaccions que ocor-reran a partir drsquoaquest iniciador

Nom del Cas drsquoUacutes Comprar una textura per la pilota

Requeriment(s) Explorat(s) 681516

Precondicioacute(ns)

- Lrsquousuari ha seleccionat lrsquoopcioacute del menuacute ldquoTendardquo

Iniciador(s) Lrsquousuari ha polsat sobre el botoacute de tenda

Curs drsquoAccioacute Principal

1 Lrsquousuari selecciona la tenda de la pilota

2 Lrsquousuari fa scroll fins a seleccionar una textura que li agradi i

la polsa

3 Es comprova si ja teacute comprada aquesta textura (no la teacute)

4 Es comprova si teacute suficients monedes per adquirir la textura

(en teacute)

5 Lrsquousuari adquireix la textura srsquoelimina el seu preu per a in-

dicar-ho i es carrega la textura a la pilota de mostra de la ten-

da i a la que utilitzarem en qualsevol partida

Curs(os) Alternatiu drsquoAccioacute

3b Es comprova si ja teacute comprada aquesta textura (si la teacute)

4b Es carrega la textura a la pilota de mostra de la tenda i a la que

utilitzarem en qualsevol partida

4c Es comprova si teacute suficients monedes per adquirir la textura

(no en teacute)

5c Es mostra un aviacutes que lrsquousuari no teacute suficients monedes i no

es desbloqueja la textura

Fig 3 Descripcioacute Cas drsquouacutes ldquoComprar textura per la pilotardquo

6 EEUAB TFG INFORMAgraveTICA CREACIOacute DrsquoUN VIDEOJOC MOgraveBIL ADDICTIU

64 Disseny i Test

Un cop redactats els requisits vaig passar a redactar el ldquoCAPIacuteTOL 2 DISSENY I CONSTRUCCIOacute DEL VIDEO-JOCrdquo que conteacute les seguumlents seccions clau

- Disseny Artiacutestic Conteacute tota la informacioacute per a en-tendre el concepte artiacutestic del videojoc Tota la his-toria en la que es desenvolupa aixiacute com un guioacute complet de tots els diagravelegs del mode historia entre altres Una seccioacute interessant que apareix eacutes la explicacioacute dels controls que hauragrave drsquoutilitzar lrsquousuari i perquegrave srsquohan fet aixiacute on es concreta que el joc nomeacutes con-tindragrave dos tipus de moviments el toc amb el dit i lrsquoscroll lateral Al simplificar el joc a dos tipus de moviments srsquoaconsegueix molta senzillesa que a nivell pragravectic es tradueix a un facilitat molt gran en lrsquoaprenentatge drsquouacutes Finalment conteacute una descripcioacute completa de tots els boosts(objectes aleatoris) que intervenen a les partides i els efectes que tindran

- Disseny del Software En aquesta seccioacute srsquoha desenvolupat un diagrama de classes i escenes a partir de tots els casos drsquouacutes Srsquoha optat per incloure les escenes (progravepies del motor Unity) dins drsquoaquest diagrama ja que proporcionen molta meacutes facilitat a lrsquohora drsquoentendre la relacioacute de les classes ja que algunes no intervenen entre siacute directament sinoacute a partir drsquouna escena especiacutefica

Fig 4 Diagrama de classes i escenes

Amb el diagrama definit es descriuen la funcionalitats de cada classe junt amb els seus atributs propis i les funcions que la formen

Definides les funcions de les classes srsquohan descrit els diagrames de sequumlegravencia molt importants per a observar el flux de les diverses accions directes que pot realitzar lrsquousuari amb la interfaccedil I en consequumlegravencia com reacciona el motor a partir de cada accioacute amb les escenes arxius de

guardat i els serveis de google Ha sigut molt uacutetil per a realitzar un desenvolupament correcte

Fig 5 Diagrama de Sequumlegravencia de la primera execucioacute del Joc

La seccioacute inclou un esboacutes de tota la interfaccedil que interactua amb lrsquousuari Per aconseguir un bon resultat drsquoaquesta es van preparar unes imatges que reconstruiumlen la interfaccedil i es va fer un first-click test [7] amb lrsquoeina web lsquoopti-malworkshoprsquo A causa de la versioacute gratuiumlta srsquohan realitzat 3 estudis dife-rents ja que lrsquoeina limitava la quantitat de preguntes per estudi [8] [9] [10] Gragravecies a aquesta eina amb cada estudi realitzat hem obtingut uns resultats molt visuals que ens han servit per conegraveixer realment si els menuacutes estaven ben estructurats El resultat com podem veure a les imatges de la seccioacute A2 i A3 del apegravendix ha sigut molt satisfactori i no srsquoha necessitat de realitzar cap canvi a la interfaccedil de lrsquousuari Podem dir que el plantejament drsquouna interfaccedil molt senzi-lla i intuiumltiva ha sigut correcte

- Implementacioacute del software Per acabar questa

seccioacute conteacute tots els elements artiacutestics que interve-nen en el joc (models 3D sprites) totes les escenes i la icona que es mostraragrave a la play store

65 Desenvolupament de LrsquoAplicacioacute

651 Implementacioacute del Menuacute Principal

Respecte a la implementacioacute del videojoc es va comenccedilar per elaborar el menuacute principal Per fer-ho es va iniciar el desenvolupament del script ldquoGameManagerrdquo Srsquoha de dir que tots els components visuals del joc srsquohan creat dins drsquouna estructura canvas [13] de Unity per a crear una interfaccedil responsive [12]

Script GameManager Per a crear aquest script encarregat de guardar totes les dades srsquoha utilitzat els PlayerPrefs [14] de unity Soacuten funcions del tipus clau-valor on amb un id pots guardar un valor a un espai de memograveria del dispositiu Aquest GameManager com srsquoexplica a la documentacioacute

NIL PASCUAL FERNAacuteNDEZ CREACIOacute DrsquoUN VIDEOJOC MOgraveBIL ADDICTIU 7

del desenvolupament del joc srsquoencarrega tant de crear lrsquoarxiu de guardat quan srsquoinicialitza per primer com el joc com de carregar els valors drsquoaquests un cop ja srsquoha jugat meacutes drsquoun cop Amb el GameManager com a estructura principal srsquoha comenccedilat a desenvolupar lrsquoescena del Menuacute principal Escena lsquoMenuacutersquo ndash Menuacute principal Per aquest menuacute principal que veiem a la figura 6 es buscava una sensacioacute drsquoimmersioacute al joc que et fes sentir a lrsquoespai Per aixograve es va decidir dividir les 4 parts principals drsquoaquest menuacute Menuacute principal mode lliure mode histo-ria i botiga en diferents punts de lrsquoespai 3D formant una circumferegravencia Aixograve ha permegraves desenvolupar la seguumlent foacutermula per a la cagravemera de joc que ofereix una sensacioacute de flotar a lrsquoespai cameraTransformrotation = QuaternionSlerp (camera-TransformrotationcameraDesiredLookAtrotation CAMERA_TRANSITION_SPEED TimedeltaTime) Amb aquesta foacutermula estem assignant al valor de rotacioacute de la cagravemera del joc una nova rotacioacute entre la seva posi-cioacute actual (cameraTransformrotation) i la posicioacute destiacute (cameraDesiredLookAtrotation) Gragravecies a la funcioacute slerp() realitzaragrave un moviment molt lleuger seguint la velocitat que li indiquem Per a veure millor aquest efecte de cagravemera es pot consul-tar el viacutedeo adjunt ldquoDEMO_GRAVITY_PONGrdquo

Escena lsquoMenuacutersquo ndash Mode Lliure El seguumlent pas ja amb la cagravemera a punt ha sigut desenvo-lupar el llistat de nivells del mode lliure que trobem a la figura 7 Ha sigut una decisioacute difiacutecil i bastant creativa ja que es volia una llista de nivells molt visual i vaig decidir mostrar els nivells com a imatges Investigant vaig trobar que mitjanccedilant codi pots trobar i guardar a variables els sprites que estiguin dins de la carpeta que crea unity de ldquoResourcesrdquo Amb aquesta tegravecnica i un Scroll Rect [11] podem passar els nivells amb un scroll lateral Despreacutes srsquoha afegit la imatge i el text dels tiquets a la part inferior del nivell i el regravecord del nivell a sobre drsquoaquest Per finalitzar srsquoha creat el botoacute de tornar per a que la cagravemera torni a rotar fins la posicioacute del menuacute principal Escena lsquoMenuacutersquo ndash Botiga La botiga com observem ala figura 8 manteacute una estruc-tura semblant al llistat de nivells perograve amb diferegravencies notables En comptes de carregar varies imatges carrega una imat-ge sencera amb totes les textures i la divideix en textures de 256x256 per a una millor optimitzacioacute Teacute un indica-dor monedes del joc i teacute un botoacute extra per a canviar entre la tenda de textures de la pilota i de la lluna de joc

Fig 6 Menuacute Principal

Fig 7 Mode lliure

Escena lsquoMenuacutersquo ndash Mode Histograveria El llistat de nivells del mode histograveria no utilitza la tegravecnica de cagraverrega de imatges pels nivells sinoacute que srsquohan utilitzat uns models gratuiumlts de planetes 3D Cada planeta forma un nivell amb el seu nom i el seu regravecord de temps propi Un cop acabada tota la visual de lrsquoescena del menuacute srsquoha creat el script que el gestionaria anomenat ldquoMainMenurdquo

Fig 8 Botiga

Figura 9 Mode Histograveria

Script MainMenu Aquest script srsquoencarrega de carregar i gestionar els com-ponents de lrsquoescena del menuacute del llistat de nivells i la botiga Primer de tot carrega gragravecies als playerPrefs guardats tots els textos de regravecords de puntuacioacute de cada nivell els tiquets les monedes i les textures comprades de la pilota i lluna de joc que lrsquousuari havia obtingut Srsquoha creat un sistema tant per al llistat de nivells com a la botiga de bloqueig on al llistat de nivells es bloquegen tots els botons dels jocs menys del primer fins que en aquest no srsquohagi obtingut una puntuacioacute miacutenima de 5 i a la botiga es guarda una matriu de desbloquejos que indica quines textures srsquohan comprat i ja no apareixeragrave el seu preu i quines no Tambeacute srsquoencarrega de a la botiga mostrar com quedaria la textura comprada a la pilota o a la lluna de joc i apli-car-la per a quan juguem qualsevol partida Aquest script tambeacute carrega la muacutesica del menuacute

8 EEUAB TFG INFORMAgraveTICA CREACIOacute DrsquoUN VIDEOJOC MOgraveBIL ADDICTIU

Script History_Levels Aquest script srsquoencarrega de la gestioacute del menuacute ldquoHISTO-RIArdquo Srsquoha creat un sistema de visualitzacioacute on el jugador can-via de nivell mitjanccedilant dues fletxes i un jugador no po-dragrave accedir a un nivell fins que hagi completat lrsquoanterior Junt amb aquest sistema de bloqueig segons el nivell on es situiuml el jugador es mostraragrave el millor temps en que lrsquoha acabat (si es que hi ha) i el nom del nivell Amb aquests components descrits fins ara ja tindriacuteem tot el menuacute principal acabat Un cop acabat el menuacute srsquoha passat a crear els nivells del mode lliure

652 Implementacioacute del Mode Lliure

El mode lliure consta de 5 nivells amb mecagraveniques de joc variants perograve compartint lrsquoestructura principal del joc Per a explicar com srsquoha desenvolupat aquest mode srsquoutilitzaragrave de referegravencia el mode de joc ldquoCLASSICrdquo el mode de joc original on primer srsquoexplicaran els compo-nents de lrsquoescena i despreacutes els scripts que la componen Una part molt important drsquoaquestes escenes eacutes el disseny seguint el esquema senzill i visual del joc srsquoha passat per diversos plantejaments murs reals una barra plana Finalment despreacutes drsquoun extens plantejament es va deci-dir aplicar el disseny que veiem a la figura 10 En aquest disseny podem observar que els murs soacuten llums LED Aquesta decisioacute srsquoha considerat la millor ja que oferia tota la informacioacute que necessita el jugador dels murs sense ser un objecte molt gran i amb molt detall Finalment srsquohan utilitzat imatges de la temagravetica espacial per a completar el fons de lrsquoescena Escena CLASSIC Lrsquoescena drsquoaquest mode de joc la componen directament la pilota la lluna de joc els murs de joc la puntuacioacute el menuacute de pausa i els tiquets disponibles Perograve realment hi ha molts meacutes components secundaris que no srsquoentraragrave en detall a explicar-los perograve que valia la pena mencionar-los com uns murs secundaris invisibles que srsquoutilitzen per detectar si el jugador perd quan ha destruiumlt un mur ob-jectes que solament es mostren quan srsquoagafa un boost llums que segueixen els objectes per crear un efecte pri-mer pla la interfaccedil del menuacute de pausa Presentats aixiacute els components de lrsquoescena eacutes meacutes interes-sant veure els scripts que afecten a aquests components Script ClassicBall Aquest script que controla la pilota eacutes el meacutes important de lrsquoescena ja que gestiona tot el que pot tenir contacte amb ella La funcioacute meacutes important drsquoaquest script eacutes sens dubte OnCollisionEnter() Aquest funcioacute nativa de Unity ser-veix per a gestionar quan lrsquoobjecte topa amb un altre objecte Quan la pilota topa amb un mur detecta quin eacutes

i segons el seu color actual li canviaragrave el seu color al que toqui i suma un punt Si la pilota topa amb la lluna de joc simplement augmen-taragrave la seva velocitat Si topa amb el forat negre de la part inferior o traspassa un mur destruiumlt srsquoencarrega de parar la partida i la muacutesica mostrar el menuacute de derrota afegir a les monedes totals del jugador les guanyades aquella partida i canviar el regravecord de puntuacioacute del nivell si srsquoha superat

Fig 10 Escena CLASSIC

Fig 11 Efecte de Boost de Gel

Script ClassicPad Aquest script simplement srsquoencarrega de la gestioacute del moviment de la lluna de joc Detecta si el jugador estagrave polsant a sobre drsquoella i es mou en consequumlegravencia Per al mode histograveria srsquoencarrega de si un projectil topa amb ella parar la partida i mostrar el menuacute de derrota Script Pause Menu Aquest script com el seu nom indica gestiona tot el me-nuacute de pausa Que quan es polsi a sobre del botoacute de pausa es pari el joc i es mostri la interfaccedil que quan polsem sobre lsquoreprendrersquo la partida actual segueixi on estava que es torni al menuacute o que es surti de la partida Script Boosts Aquest script srsquoencarrega drsquoinvocar un objecte aleatori que apareix cada x segons aleatograveriament per pantalla un cert temps Segons el boost es produeix un efecte diferent Per fer aixograve se li ha assignat el script a una imatge i srsquoha jugat amb el seu render (el component que fa que es mos-tri la imatge) Gragravecies a la funcioacute TimeTimeSinceLevelLoad que ens proporciona el temps que ha passat des de que srsquoha carregat el nivell sabem quan fer invisible o no lrsquoobjecte Aixiacute creat lrsquoalgoritme que mostra una imatge aleatograveriament drsquouna llista drsquoimatges sempre que no hi hagi un boost funcionant Ara amb un switch case segons la imatge que srsquoestagrave mos-trant crida a la funcioacute del boost que toca per a que realitzi lrsquoefecte adequat Un bon exemple eacutes el boost de gel que al collir-lo com veiem a la figura 11 mostra a tots els murs que no hagin sigut destruiumlts una imatge de neu que impedeix destruir-los

NIL PASCUAL FERNAacuteNDEZ CREACIOacute DrsquoUN VIDEOJOC MOgraveBIL ADDICTIU 9

Es poden trobar tots els boosts i efectes a lrsquoapartat 215 del document adjunt ldquoDesenvolupament del Jocrdquo Amb tots aquests components ja es podria jugar una par-tida ldquoCLASSICrdquo del mode lliure Per a construir els altres nivells del mode lliure srsquoha jugat amb potenciar o extreure aquestes funcions descrites per proporcionar un altre tipus de joc

bull Escena Double Trouble Aquiacute srsquoha duplicat la pilota de joc i srsquoha adaptat lrsquoentorn per a que el nivell sigui jugable

bull Escena Faster Aquest mode es juga al doble de la velocitat normal de joc utilitzant la funcioacute Ti-meTimeScale = 2 que duplica el temps

bull Escena Insight Aquest mode es juga sense veure els components del joc el jugador nomeacutes veu una estela que indica el moviment de la pilota i la lluna de joc

bull Escena Relax En aquest mode on nomeacutes es perdragrave la partida si aquesta cau al forat negre inferior Els murs mai poden ser destruiumlts i no apareixen boosts

653 Implementacioacute del Mode Histograveria

Per a aquest mode srsquoha utilitzat com a base lrsquoestructura del nivell ldquoCLASSICrdquo del mode lliure Amb aquesta es-tructura srsquohan eliminat els boosts i el marcador de pun-tuacioacute Consta drsquoun objectiu totalment diferent al mode lliure no volem aconseguir la major puntuacioacute sinoacute que volem destruir la nau enemiga i si pot ser en el menor temps possible Script Dialog Primerament srsquoha creat un sistema de diagravelegs en el que seguint el guioacute descrit al document adjunt ldquoDesenvolu-pament del Jocrdquo apartat 212 dos personatges ens ense-nyen a jugar a lrsquohora que ens narren una divertida histograve-ria Dit aixograve srsquoha creat un sistema drsquoescriptura on segons unes frases donades srsquoescriu lletra per lletra aconseguint lrsquoefecte de narracioacute dels videojocs Quan comprovem que srsquoha mostrat tota la frase per pan-talla mostrem un botoacute per a continuar amb la conversa i un altre botoacute per a saltar el diagraveleg i comenccedilar a jugar Agafant la primera lletra de la frase amb la funcioacute subs-tring() sabrem si quin personatge parla i hem de mostrar Script History_Ball La pilota srsquoha hagut drsquoadaptar a tots els nous compo-nents A meacutes srsquoha creat un sistema per a mostrar en tot mo-ment el temps que ha passat des de lrsquoinici del nivell Per fer-ho srsquohan utilitzat 2 variables pels minuts i segons Aixograve ha permegraves visualitzar amb meacutes comoditat el format de temps ldquominuts segonsrdquo amb la funcioacute toString()

permetent realitzar les comparacions de temps correcta-ment Script Launcher Aquest script srsquoencarrega un model de miacutessil que li indi-quem i crear una instagravencia drsquoaquest davant la nau amb una certa velocitat dirigit cap a la part inferior de la pan-talla Per aconseguir-ho srsquoutilitza un objecte auxiliar a lrsquoescena lsquoFirePointrsquo que eacutes situat sempre davant la nau on srsquoinstanciaragrave el model del miacutessil amb un cert impuls Po-dem visualitzar aquest sistema a la figura 12 Script ProjectileCollision Aquest script srsquoencarrega solament de destruir el miacutessil quan topi amb un objecte que no sigui la lluna de joc Eacutes un script per a optimitzar el rendiment del joc Un cop descrits els scripts en comuacute per a tots els nivells passem als scripts que a cada nivell soacuten diferents perograve que srsquoutilitzen per a una mateixa causa la gestioacute de la nau enemiga

bull Capiacutetols 1 i 2 Els capiacutetols 1 i 2 comparteixen el ma-teix moviment de la nau Aquest script mou la nau seguint un moviment aleatori Lrsquoalgorisme consisteix en que srsquoescull un punt aleatori a arribar i quan srsquoarriba srsquoescull un altre

bull Capiacutetol 3 Al tercer capiacutetol eacutes on veiem per primer cop una intelmiddotligegravencia artificial en el moviment de la nau aquesta fugiragrave de la pilota Per fer-ho srsquoha divi-dit el nivell en dues zones dreta i esquerra quan la pilota estigui a la zona de la dreta la nau es mouragrave a lrsquoesquerra i a la inversa Per a que no sigui impossi-ble tocar-la srsquoha ajustat la velocitat del seu movi-ment adequadament

bull Capiacutetol 4 Al quart capiacutetol la nau ja consta drsquouna intelmiddotligegravencia artificial meacutes avanccedilada en la que es mou segons a on la pilota estigui situada Lrsquoalgorisme consisteix en tenir la posicioacute de la pilota en tot moment i srsquoha dividit lrsquoespai de la partida en 4 quadrats com podem veure a la figura 13 Si la pilota estagrave al quadrat 1 la nau es mouragrave al qua-drat contrari el 4 Si la pilota es situa al quadrat 2 la nau es mouragrave al quadrat 3 Per a que no fos impossi-ble topar amb la nau srsquoha drsquoajustat la velocitat del moviment

bull Capiacutetol 5 Al capiacutetol final lrsquoalgoritme consta del ma-teix moviment que al nivell anterior perograve afegint un extra que si la nau es troba en el mateix quadrat que la pilota en el mateix instant de temps la nau redui-ragrave el seu tamany complicant lrsquoobjectiu drsquoaconseguir destruir-la

10 EEUAB TFG INFORMAgraveTICA CREACIOacute DrsquoUN VIDEOJOC MOgraveBIL ADDICTIU

Fig 12 Nau amb lrsquoobjecte lsquoFire-

Pointrsquo

Fig 13 Divisioacute de quadres nivells 4 i 5

Per a veure visualment com funcionen les funcions expli-cades en aquest apartat es pot consultar el viacutedeo adjunt ldquoDEMO_GRAVITY_PONGrdquo

66 Proves

Gragravecies a la metodologia de desenvolupament de Rapid Prototyping srsquoha pogut anar testejant cada mogravedul desen-volupat al moment aixiacute extraient tots els resultats de tests ragravepidament Srsquohan realitzat 4 tipus de proves diferents

bull A les proves drsquounitat srsquoha testejat que els diferents mograveduls del sistema funcionin correctament Com que si un miacutessil drsquouna nau enemiga glopeja la lluna de joc es mostra el menuacute correcte o si tenim les su-ficients monedes per a comprar una textura la po-dem comprar satisfactograveriament entre altres

bull A les proves drsquointegracioacute srsquoha testejat que les in-teraccions entre els diferents escenaris del sistema sigui correcte Srsquoha provat que es pugi accedir a tots els nivells del videojoc i que des de aquests es pu-gui tornar correctament al menuacute principal a traveacutes del menuacute de pausa

bull Les proves de validacioacute han servit per comprovar que hem complit amb els requisits del projecte Hem testejat el correcte log in amb google la visualitzacioacute dels marcadors i la visualitzacioacute dels objectius entre altres

bull Per acabar les proves de sistema han servit gragravecies a la developer console [24] comprovar que el joc srsquoha executat correctament variant els dispositius i versions drsquoAndroid

A lrsquoapartat 31 del document adjunt ldquoDesenvolupament del Jocrdquo es poden trobar la totalitat de les proves realitza-des de cada tipus amb els seus resultats corresponents

7 CONCLUSIONS

I ja per finalitzar aquest document explicareacute quines soacuten les conclusions que he extret sobre el projecte Primer de tot crec que la planificacioacute que vaig realitzar a

lrsquoinici ha sigut lrsquoencertada Les petites alteracions que srsquohan acabat realitzant (com podem veure en el diagrama de Gantt real de lrsquoapegravendix 2) han estat meacutes enfocades a avanccedilar lrsquoinici de les tasques que no pas a endarrerir-les a causa de la situacioacute excepcional que hem viscut

Respecte a la fase drsquoimplementacioacute considero que

srsquohan completat tots els objectius que es presentaven a lrsquoinici del projecte Srsquohan desenvolupat totes les funcions que es van proposar al document de requisits amb lrsquoajuda de la psicograveloga que havia de tenir el joc per a que es considereacutes addictiu i aixiacute ha sigut Per lo que podem concloure que hem desenvolupat un joc addictiu per a Android satisfactograveriament A meacutes srsquoha de dir que lrsquoaplicacioacute eacutes responsive [12] i molt fagravecilment escalable

I com a uacuteltim punt voldria comentar que mrsquohagueacutes

agradat disposar de meacutes temps i recursos per a millorar tot lrsquoaspecte visual de lrsquoaplicacioacute encara meacutes fins a arribar a apropar-se al nivell de mitjanes produccions aquest aspecte milloraria lrsquointeregraves per al joc

71 Futures Accions

A continuacioacute detallarem aquelles accions futures que he considerat que pot ser interessant desenvolupar en prograveximes ampliacions del joc per tal que lrsquoexperiegravencia drsquouacutes dels usuaris sigui la millor possible

bull Un tutorial molt meacutes visual que es mostri el primer cop que srsquoiniciiuml lrsquoaplicacioacute on no solament srsquoexpliqui sobre la mecagravenica del joc sinoacute que tambeacute es guiiuml a lrsquousuari a traveacutes dels menuacutes la interfaccedil i els diferents modes i nivells de joc

bull Una integracioacute drsquoalgun mode de joc online on es po-gueacutes competir contra un altre jugador en temps real oferiria molt drsquoatractiu i enriquiria molt lrsquoaplicacioacute

bull Per acabar com ja hem comentat una millora visual en la que no mrsquohe pogut centrar en especial durant el projecte on amb lrsquoajuda drsquoalgun professional en la mategraveria es crearien unes visuals progravepies per al joc

8 AGRAIumlMENTS

En primer lloc mrsquoagradaria agrair a la meva famiacutelia el suport incondicional que mrsquohan donat en tot moment durant els quatre anys que porto de carrera Sense ells res de tot aixograve hauria estat possible

Tambeacute mrsquoagradaria agrair la Gemma Saacutenchez la meva tutora del TFG pels consells i lrsquoajuda que mrsquoha ofert du-rant aquests mesos tant durs i especials de projecte insis-tint en quegrave treballes ben dur des del primer dia ha per-megraves que aquest treball hagi pogut tirar endavant amb meacutes facilitat

Finalment voldria agrair a les altres persones que han fet aquest treball possible des de la psicograveloga experta que ens va ajudar a definir molt beacute els requisis fins a tots els companys i amics que han treballat com a testers del joc trobant lsquobugsrsquo i fent propostes sobre possibles millores drsquoaquest

NIL PASCUAL FERNAacuteNDEZ CREACIOacute DrsquoUN VIDEOJOC MOgraveBIL ADDICTIU 11

IacuteNDEX DE FIGURES

Fig 1 lsquoRapid Prototypingrsquo3

Fig 2 Diagrama de Classes lsquoNavegar per la Tendarsquo5

Fig 3 Descripcioacute Cas drsquouacutes ldquoComprar textura pilotardquo6

Fig 4 Diagrama de Classes i Escenes6

Fig 5 Diagrama de Sequumlegravencia 1a Execucioacute6

Fig 6 Escena Menuacute Principal7

Fig 7 Escena Mode Lliure7

Fig 8 Escena Botiga8

Fig 9 Escena Mode Histograveria8

Fig 10 Escena lsquoCLASSICrsquo8

Fig 11 Efecte Boost de Gel8

Fig 12 Nau amb objecte lsquofirepointrsquo10

Fig 13 Divisioacute de quadres nivells 4 i 510

REFEREgraveNCIES

[1] Desenvolupament lsquoRapid prototypingrsquo httpseswikipediaorgwikiModelo_de_prototipos

[2] Article de lrsquoaddiccioacute als videojocs httpspsicologiaymentecomclinicaadiccion-a-videojuegos

[3] Per quegrave enganxen els videojocs httpswwwlavanguardiacomestilos-de-vida2012062954317381414por-que-enganchan-los-videojuegoshtml

[4] Historia dels Videojocs httpswwwfibupceduretroinformaticahistoriavideojocshtml

[5] Requisits miacutenims Candy Crush Saga httpswwwmicrosoftcomes-espcandy-crush-sa-ga9nblggh18846activetab=pivotregionofsystemrequirementstab

[6] Document SRS drsquoexemple httpswwwdocsitycomesejemplo-de-documento-srs4930539

[7] El lsquoFirst clickrsquo test httpsusabilityhubcomguidesfirst-click-testing

[8] Quumlestionari lsquoFirst clickrsquo test I httpsowsiocm7v7lx3h4

[9] Quumlestionari lsquoFirst clickrsquo test II httpsowsiocmj6574121

[10] Quumlestionari lsquoFirst clickrsquo test III httpsowsiocm7df25ouc

[11] Scroll Rect de Unity httpsdocsunity3dcomes20184Manualscript-ScrollRecthtml

[12] Disseny Responsive httpswww40defiebrecomque-esdiseno-responsi-ve~text=El20disentildeo20web20responsive20o3B20ordenador2C20tablet2C20smartphonehellip

[13] Canvas de Unity httpsdocsunity3dcomescurrentManualUICanvashtml

[14] Playerprefs de Unity httpsdocsunity3dcomescurrentScriptReferencePlayerPrefshtml

[15] ldquoDisseny de Softwarerdquo Assignatura del grau que ha ser-

vit de font bagravesica dels coneixements aplicats tant a An-droid com als tests amb usuaris La seva guia docent la trobem disponible a httpsdocsunity3dcomManualUnityManualhtml

[16] ldquoTest i Qualitat del Softwarerdquo Assignatura del grau que ha servit de font bagravesica dels coneixements aplicats per als tests del codi La seva guia docent la trobem disponible a httpsguiesuabcatguies_docentspublicportalhtml2019assignatura102758ca

[17] ldquoDocumentacioacuten de Unityrdquo Documentacioacute completa del motor gragravefic lsquoUnityrsquo que srsquoha anat consultant en tot mo-ment del desenvolupament httpsdocsunity3dcomManualUnityManualhtml httpswwww3schoolscomcs

[18] ldquoStack Overflowrdquo Fograverum de preguntes i respostes rela-cionades amb el moacuten de la programacioacute i la informagravetica Srsquoha anat consultant durant la fase drsquoimplementacioacute Al-gunes de les pagravegines que voldria destacar

o Text borroacutes a Unity httpsstackoverflowcomquestions16506737unity3d-3d-text-always-displayed-blur16507861

o Sing-In Google httpsstackoverflowcomquestions59599895problems-with-google-sign-in-in-unity

[19] ldquoComo firmar tu apprdquo Documentacioacute per a desenvolupa-dors Android sobre com signar una aplicacioacute per a que totes les funcions de google funcionin correctament httpsdeveloperandroidcomstudiopublishapp-signinggoogle-play-app-signing

[20] ldquoUnity Ads Documentationrdquo Documentacioacute sobre el sis-tema de publicitat de unity utilitzat a lrsquoapp httpsdocsunity3dcomPackagescomunityads34manualindexhtml

[21] ldquoGoogle play games plugin for unityrdquo Plugin per a unity per a poder utilitzar totes les funcions de google play games httpsgithubcomplaygameservicesplay-games-plugin-for-unity

[22] ldquoFlaticonrdquo Web de recursos gratuiumlts drsquoon srsquohan descarre-gat els sprites que srsquoutilitzen al joc httpswwwflaticones

[23] ldquoUnity Asset Storerdquo Web de recursos gratuiumlts de unity drsquoon srsquohan descarregat els models dels planetes que srsquoutilitzen al joc entre altres httpsassetstoreunitycomgclid=CjwKCAjwlZf3BRABEiwA8Q0qq9NcH2nCMrUHDdQUrV0K7dNiZD6JMAy7G8x93NPLzD3wZKmhiK1MQBoCvR0QAvD_BwE

[24] ldquoAyuda de Play Consolerdquo Documentacioacute sobre al play console plataform on es puja lrsquoaplicacioacute per a que es vi-sualitzi a la play store que srsquoha consultat quan han sorgit problemes httpssupportgooglecomgoogleplayandroid-developerhl=estopic=3450769

[25] ldquoPongrdquo Primer videojoc de la histograveria httpseswikipediaorgwikiPong~text=Pong20(o20Tele-Pong)mesa20(o20ping20pong)

[26] ldquoFlappy Birdsrdquo httpseswikipediaorgwikiFlappy_Bird

[27] ldquoCandy Crushrdquo httpswwwxatakamovilcommovil-y-sociedadcandy-crush-saga-la-ciencia-detras-de-la-adiccion

12 EEUAB TFG INFORMAgraveTICA CREACIOacute DrsquoUN VIDEOJOC MOgraveBIL ADDICTIU

APEgraveNDIX

A1 DIAGRAMA DE GANTT DE LA PLANIFICACIOacute INICIAL

A1 Diagrama de Gantt corresponent a la planificacioacute inicial del projecte En aquest diagrama podem veure les diferents tasquesetapes de desenvolupament amb les setmanes que es va planificar destinar a cada una

A2 SECCIOacute DrsquoAPEgraveNDIX

A2 Diagrama de Gantt corresponent a la planificacioacute final del projecte Tal i com podem veure tenim alguns canvis en els temps respecte a la planificacioacute inicial es va acurtar la fase de desenvolupament ja que amb la situacioacute excepcional del paiacutes srsquoha disposat de molt meacutes

temps per al desenvolupament lo qual ha permegraves avanccedilar el pas a produccioacute i la documentacioacute del projecte

NIL PASCUAL FERNAacuteNDEZ CREACIOacute DrsquoUN VIDEOJOC MOgraveBIL ADDICTIU 13

A3 RESULTAT DEL ESTUDI DE DISSENY ndash TASCA 1

A3 Resultat Estudi 1 - Tasca 1 Com observem el 90 dels testers han completat lrsquoobjectiu de la tasca

A4 RESULTAT DEL ESTUDI DE DISSENY ndash TASCA 1 (MAPA DE CALOR)

A4 Resultat estudi 1 ndash Tasca 1 (Mapa de Calor) Com podem observar la zona de tocs de dit del 70 dels tocs se centra en el botoacute correcte

14 EEUAB TFG INFORMAgraveTICA CREACIOacute DrsquoUN VIDEOJOC MOgraveBIL ADDICTIU

Page 2: Nil Pascual Fernández - UAB Barcelona · 2020. 9. 2. · llançar la seva primera consola: la Playstation, que tenia un reproductor de CDs, lo qual comportava que els vi-deojocs

2 EEUAB TFG INFORMAgraveTICA CREACIOacute DrsquoUN VIDEOJOC MOgraveBIL ADDICTIU

2 ESTAT DE LrsquoART

Quan parlem de videojocs addictius el primer que ens ve a la ment soacuten jocs drsquoegravexit com el lsquoPongrsquo [25] lsquoFlappy birdsrsquo [26] o lsquoCandy crushrsquo [27] Tot i la seva senzilla elaboracioacute i mecagravenica no es pot negar que soacuten jocs amb un egravexit ro-tund al mercat i jugats diagraveriament per milions de perso-nes

A quegrave eacutes degut Bagravesicament a la diversioacute que ofereix

en poc temps partides ragravepides puntuacions que compa-rar amb amics i mecagraveniques fagravecils drsquoentendre per a to-thom

En el cas de lsquoGravity Pongrsquo (El nostre joc) no es busca

igualar el nivell de les visuals ni animacions drsquoaquests jocs El que es busca es desenvolupar un joc des de lrsquoinici que contingui les mateixes caracteriacutestiques i prestacions que aquests jocs tan addictius per entendre de meacutes a prop com uns jocs aparentment tant simples tenen enre-re un plantejament drsquoalta complexitat que els fa arribar a ser els jocs amb meacutes egravexit de la historia

3 OBJECTIUS

Lrsquoobjectiu principal del projecte eacutes realitzar el proceacutes de desenvolupament i disseny des de zero drsquoun videojoc addictiu per al sistema operatiu lsquoAndroidrsquo realitzat amb el motor gragravefic Unity Aixograve comportaragrave una presa de requi-sits on es contactaragrave amb experts sobre lrsquoaddiccioacute per investigar quins aspectes es podrien traduir a un videojoc del gegravenere Tambeacute srsquohauran de realitzar dissenys de lrsquoentorn on srsquoaprofitaran per a realitzar diferents tests amb potencials usuaris (lsquofirst-clickrsquo test [7]) i srsquoutilitzaran elements artiacutestics gratuiumlts [22] [23]

El segon objectiu seragrave el desenvolupament del videojoc

i lrsquoelaboracioacute del codi amb el llenguatge de programacioacute C desenvolupat amb el motor gragravefic lsquoUnityrsquo Srsquoaplicaran diferents tests a lrsquoaplicacioacute per a provar la seva seguretat i consistegravencia Dins drsquoaquest objectiu es vol desenvolupar

bull Una pagravegina principal amb tres opcions de menuacute di-ferents Histograveria Lliure i Tenda i dos petits botons que serviran per a visualitzar els objectius del joc i les taules de puntuacions

bull Un sistema de joc basat en el clagravessic joc lsquoarcadersquo i primer videojoc de la histograveria de lsquoPongrsquo perograve apor-tant un toc meacutes modern innovador i entretingut

bull Un mode histograveria on seguint una divertida histograveria amb diagravelegs entre personatges haurem de superar diferents pantalles seguint la mecagravenica explicada al punt anterior perograve amb petites variacions Constaragrave de 5 nivells amb dificultat progressiva i enemics amb intelmiddotligegravencia artificial

bull Un mode lliure on ens trobem amb lrsquoessegravencia del joc Al contrari del mode histograveria en aquest mode no ens molestaragrave cap enemic constaragrave de 5 nivells de joc diferents on cadascun canviaragrave totalment la forma de jugar la partida i on lrsquoobjectiu seragrave fer la magravexima puntuacioacute possible per rivalitzar amb els nostres amics Es guardaragrave la millor puntuacioacute acon-seguida a cada nivell i per a poder jugar es necessita-ran tiquets que si ens quedem sense haurem de vi-sualitzar un anunci per aconseguir-ne meacutes

bull Un sistema de millores aleatograveries (boost) que aparei-

xeran per pantalla oferint diferents efectes que can-viiumln el transcurs e la partida

bull Una botiga on trobarem textures visuals que po-drem comprar per a personalitzar tots els objectes del joc al nostre gust Perograve no seragrave fagravecil aconseguir-ho els diferents aspectes valdran monedes que no-meacutes es podran aconseguir jugant al mode lliure on cada punt aconseguit seragrave una moneda per utilitzar a la botiga

bull I finalment un apartat drsquoobjectius i marcador de puntuacions on es podran visualitzar diferents ob-jectius a completar dins del joc i les puntuacions dels nostres amics als diferents modes de joc respecti-vament

Finalment un cop lrsquoaplicacioacute sigui testejada interna-

ment el tercer objectiu eacutes penjar-la a la plataforma Play Store drsquoAndroid on qualsevol usuari la podragrave descarre-gar gratuiumltament

4 METODOLOGIA

Per al desenvolupament drsquoaquest projecte srsquoha seguit la metodologia de lsquoRapid Prototypingrsquo [1] El lsquoRapid prototypingrsquo o disseny ragravepid se centra en una representacioacute daquells aspectes del programari que seran visibles per al client o lusuari final Aquest disseny con-dueix a la construccioacute dun prototip el qual eacutes avaluat pel client contiacutenuament per a una retroalimentacioacute Gragravecies a aquesta continua retroalimentacioacute es refinen els requisits del programari que es desenvoluparagrave Aixograve permet que al mateix temps el desenvolupador entengui millor el que sha de fer i el client vegi resultats a curt termini

Les etapes a seguir en retroalimentacioacute tal com veiem

a la figura 1 seran

bull Comunicacioacute

bull Pla ragravepid

bull Modelatge i disseny ragravepid

bull Construccioacute del prototip

bull Desenvolupament i entrega retroalimentacioacute Quegrave srsquoaplicaran per cada aspecte a desenvolupar del

joc

NIL PASCUAL FERNAacuteNDEZ CREACIOacute DrsquoUN VIDEOJOC MOgraveBIL ADDICTIU 3

Fig 1 Rapid prototyping

Aquesta metodologia eacutes molt uacutetil per a un projecte on

es tenen clars els objectius generals del software perograve no srsquoidentifiquen clarament els seus requisits (lrsquoestat inicial del nostre projecte) Tambeacute seragrave altament uacutetil per a provar que el joc eacutes addictiu ja que amb un constant contacte amb els usuaris hi hauragrave un feedback molt gran en tot moment Aquesta metodologia portaragrave com a objectiu final un software de qualitat gragravecies a la bona definicioacute de requi-sits que sersquon podragrave extreure i el descart de funcionalitats o aspectes no necessaris en el projecte que endarreririen les entregues

5 PLANIFICACIOacute

51 Planificacioacute de les tasques

La primera setmana del projecte es van dedicar iacutente-grament a la planificacioacute del projecte Tot i que pot sem-blar que soacuten massa dies per a aquesta tasca es va consi-derar fonamental que la planificacioacute inicial fos la meacutes encertada possible pel bon devenir del projecte

El projecte el podem dividir principalment en sis eta-

pes o tasques principals 1 Definicioacute del projecte consisteix en la definicioacute de

lrsquoabast del projecte i la planificacioacute de les tasques que srsquohan de realitzar per tal drsquoassolir els objectius

2 Estudi sobre lrsquoaddiccioacute aquest estudi consisteix a concertar una entrevista amb un psicograveleg expert en la mategraveria per a formular-li un seguit de preguntes extreurersquon les primeres conclusions i objectius en clau de requisits que necessitaragrave el projecte Tant les preguntes formulades com les respostes extre-tes es poden trobar al document adjunt ldquoEntrevis-ta amb un psicogravelegrdquo

3 Presa de requisits aquesta etapa es considera drsquoalta importagravencia per al desenvolupament del projecte i consisteix que a partir de lrsquoetapa anteri-or i una investigacioacute personal sobre el tema a trac-tar elabora un document complet de requisits Es considera drsquoalta importagravencia ja que amb un bon document i unes bones pautes se sabragrave en tot moment el que srsquoha de fer i com srsquoha de fer Els requisits complets es poden trobar al document

adjunt ldquoDesenvolupament del jocrdquo al CAPIacuteTOL 1 4 Disseny i Test aquesta etapa consisteix que a par-

tir del document de requisits extret elaborar un document de disseny del videojoc Aquest docu-ment conteacute tant tota la part artiacutestica (Guioacute histograveria controls personatges) com la part de disseny del software (Diagrama de classes targetes crc dia-grames de sequumlegravencia disseny de interfaccedil) I a partir dels primers esbossos de interfaccedil realit-zar tests de first-click-test per a saber si la interfaccedil era correcte i intuiumltiva El document complet de disseny es pot trobar a lrsquoarxiu adjunt ldquoDesenvolupament del jocrdquo al CAPIacuteTOL 2

5 Desenvolupament de lrsquoaplicacioacute implementacioacute i testeig del videojoc a partir dels apartats anteriors

6 Pas a produccioacute un cop desenvolupada i testejada lrsquoaplicacioacute es pujaragrave una versioacute estable a la plata-forma Play Store

7 Documentacioacute del projecte redaccioacute del dossier del projecte i preparacioacute de la presentacioacute

A la Taula 1 podem veure les tasques que acabem

drsquoexplicar amb les hores planificades per la seva resolucioacute i els rols que participen en cada una drsquoelles Pel nostre cas el Project Manager el dissenyador el programador i el tester soacuten la mateixa persona (lrsquoestudiant)

TAULA 1

ROLS PER TASCA

Tasca Temps(hores) Rols participants

Definicioacute 20 Project Manager

propietari de lrsquoapp

Estudi sobre lrsquoaddiccioacute 20 Dissenyador psicograve-

leg

Presa de requisits 40 Dissenyador

Disseny i test 30 Dissenyador usuaris

de test

Desenvolupament de

lrsquoaplicacioacute

150 Programador tester

propietari de lrsquoapp

Pas a produccioacute 10 Tester propietari de

lrsquoapp

Documentacioacute del

projecte

30 Project Manager

TOTAL 300

I per finalitzar veurem quin seria el cost aproximat que suposaria pel client aquets projecte A la Taula 2 mos-trem el cost dels sous dels treballadors segons el seu rol i a la Taula 3 el cagravelcul del cost final A lrsquohora de calcular el cost final afegim uns costos indirectes corresponents als desplaccedilaments per les reunions amb el client No tindrem en compte el cost drsquoadquisicioacute dels ordinadors utilitzats pels treballadors (suposarem que soacuten de pro-pietat) ni les llicegravencies dels programes de desenvolu-pament utilitzats (ja que tot eacutes software lliure o sense cap cost)

4 EEUAB TFG INFORMAgraveTICA CREACIOacute DrsquoUN VIDEOJOC MOgraveBIL ADDICTIU

TAULA 2

COST MONETARI

Rol treballador Cost (euroh) Temps (h) Cost total

(euro)

Project

Manager

50 50 2500

Dissenyador 25 90 2250

Programador 20 150 3000

Tester 20 30 600

TOTAL 300 8350

Per tant el cost final del projecte despreacutes drsquoaplicar un

20 de benefici seria

TAULA 5

COST TOTAL

Tipus de cost Cost (euro)

Cost Directe 8350

Benefici +20

TOTAL 10020

Hem de tenir en compte que el cost final obtingut se-

gurament no seria tant elevat La planificacioacute de les hores srsquoha realitzat tenint en compte que no tinc gaire experiegraven-cia a lrsquohora de treballar en projectes de programacioacute drsquoaquest abast El meacutes probable es que a una empresa especialitzada en el desenvolupament software no li cal-guin tantes hores per a poder assolir els objectius esta-blerts

Al apegravendixs A1 i A2 trobem tota la informacioacute sobre la planificacioacute de les tasques En el primer trobem la planifi-cacioacute inicial que es va realitzar i en el A2 la planificacioacute final que ha sorgit amb les condicions en les que srsquoha treballat

52 Avaluacioacute de Riscos

Un altre aspecte fonamental de la planificacioacute drsquoun projecte eacutes lrsquoavaluacioacute dels possibles riscos que poden comprometre el correcte desenvolupament del projecte Estudiant amb anterioritat quines poden ser les principals amenaces es poden trobar possibles solucions o fins i tot arribar a evitar-los

bull Un dels possibles riscos principals que vagraverem tenir en compte era la falta drsquoexperiegravencia amb el motor gragravefic ja que no srsquohavia treballat dins del grau Per aixograve es va treballar des de un principi en estudiar-lo a partir de la documentacioacute [17] [20] [21] [24]

bull Un segon risc podia ser la lsquono addiccioacute de lrsquoaplicacioacutersquo que aquesta no arribeacutes a ser un entorn que cridi lrsquoatencioacute i caigueacutes en la monotonia i sim-plicitat Per aixograve es va treballar en la presa de re-quisits amb psicograveleg per a que el joc tingueacutes totes les eines drsquoun videojoc drsquoaquesta classe

bull Per acabar un aspecte de risc per a la finalitzacioacute del projecte i molt important que es va tenir en

compte era no aconseguir pujar lrsquoaplicacioacute a la Play Store Degut a la situacioacute actual amb el CO-VID-19 informen a la pagravegina que cada revisioacute pot portar un temps de 7 o meacutes dies degut a questa si-tuacioacute Aquest aspecte incontrolable podia deri-var a la no pujada de lrsquoapp o a no aconseguir pujar una versioacute sense errors importants Per aixograve com veiem a la planificacioacute final al annex A2 srsquoha avan-ccedilat el proceacutes de desenvolupament per a tenir meacutes temps en aquest aspecte

6 DESENVOLUPAMENT

Per a explicar el desenvolupament de lrsquoaplicacioacute amb la magravexima exactitud possible srsquoaniragrave referenciant al docu-ment adjunt ldquoDesenvolupament del Jocrdquo un document de meacutes de 70 pagravegines que conteacute tot tota la informacioacute relacionada amb el projecte de inici a final el qual srsquoha anat redactant paralmiddotlelament amb el transcurs drsquoaquest

61 Estudi sobre lrsquoaddiccioacute

El primer pas per a comenccedilar el projecte ha sigut assegu-rar-se que aquest conteacute els aspectes clau per a que com-pleixi els objectius plantejats Per aconseguir-ho es va formalitzar una reunioacute amb una psicograveloga experta en la mategraveria

La entrevista cal destacar-la com a molt satisfactograveria gragravecies a una bona recerca del tema [2][3] es van quumlestio-nar aspectes generals al psicograveleg com Que eacutes lrsquoaddiccioacute per a tu Consideres que hi ha diferents tipus drsquoaddiccioacute De les que es va extreure una gran perspectiva sobre el punt de vista de lrsquoentrevistat i per exemple es va aconse-guir que definiacutes la nostra aplicacioacute com a tipus drsquoaddiccioacute no destructiva un gran pas ja que era un dels objectius del treball que es classifiqueacutes com a addictiva

Amb altres quumlestions com Quins soacuten els elements clau per considerar un joc addictiu O Quines caracteriacutestiques ha drsquooferir a primera vista per a seguir explorant-lo Srsquoha aconseguit extreure una part emocional molt important de lrsquoaddiccioacute que inclou els sentiments Srsquoha vist que aquests soacuten molt important que es produeixin durant el joc tant si soacuten bons com dolents Gragravecies a aquesta part es van prendre conclusions com que el sistema de ragraven-quing de puntuacions del joc deixaria de ser local per a ser global i es va concloure desenvolupar un guioacute per al mode historia el qual inclou diagravelegs amb humor entre altres

Es poden trobar la totalitat de lrsquoentrevista al document adjunt ldquoEntrevista amb un Psicogravelegrdquo i el guioacute final al document adjunt Desenvolupament del Jocrdquo a lrsquoapartat 212 ldquoLlibret i guioacuterdquo

62 Resum del Joc

El funcionament principal del videojoc eacutes semblant al joc de Pong [25] perograve respectant certes distagravencies Tot i que el joc compta amb 10 escenaris amb les seves progravepies caracteriacutestiques si meacutes no la mecagravenica principal del joc

NIL PASCUAL FERNAacuteNDEZ CREACIOacute DrsquoUN VIDEOJOC MOgraveBIL ADDICTIU 5

consta drsquouna pala de joc que lrsquousuari mouragrave horitzontal-ment per a evitar que una pilota caigui al terra Tambeacute compta amb tres murs als marges de la pantalla que a part de sumar punts quan siguin tocats amb la pilota canviaran de color segons els cops consecutius que han sigut golejats Si superen els 3 cops consecutius el mur en quumlestioacute desapareixeragrave fent impossible el seu contacte amb la pilota A meacutes diferents objectes apareixeran alea-tograveriament durant la partida per a oferir-nos efectes espe-cials que ens ajudaran o ens faran la partida meacutes compli-cada durant un cert temps

Al acabar cada partida obtindrem una puntuacioacute que es mostraragrave en un marcador de puntuacions per a compa-rar-la amb la dels nostres amics A part tota la informacioacute del joc es guardaragrave al dispositiu guardant el progreacutes en tot moment

Tot i que hem dit abans que el joc compta amb 10 es-cenaris diferents aquests es divideixen en dos modes de joc Historia i Lliure

El mode historia compta amb una petita trama que in-volucraragrave al jugador per a salvar el planeta on lrsquoobjectiu seragrave acabar amb els diferents enemics dels 5 nivells que amenaccedilaran al jugador

Lrsquoobjectiu del mode lliure seragrave en canvi aconseguir la magravexima puntuacioacute possible drsquoentre 5 modes de joc de mecagraveniques i dificultats diferents

Tot el progreacutes que aconseguim al joc es plasmaragrave en forma de monedes que podrem invertir per a personalit-zar amb diferents aspectes els objectes del joc

63 Presa de Requisits

Un cop fet lrsquoestudi per a elaborar el document de re-quisits srsquohan consultat moltes fonts drsquoinformacioacute [15] [16] historia dels videojocs [4] jocs semblants arquitectures de hardware que podria suportar el joc [5] estagravendards de desenvolupament documents de requisits[6] i documen-tacioacute[17] [18] [20] Vull tornar a destacar la importagravencia de lrsquoentrevista per a poder realitzar correctament aquest document oferint uns objectius clars Amb aquest treball fet vaig comenccedilar a redactar els requisits que es troben al ldquoCAPIacuteTOL 1rdquo del document adjunt ldquoDesenvolupament del jocrdquo Aquest conteacute molts apartats entre ells dos de clau

- Els requeriments del sistema On es parla sobre el propogravesit del sistema a desenvolupar el seu objec-tiu principal i les seves funcions Aquest apartat conteacute aspectes molt concrets del desenvolupa-ment com que el joc seragrave desenvolupat en castellagrave la connectivitat o requeriments de hardware miacute-nims per al funcionament del joc i conteacute un petit estudi sobre la restriccioacute drsquoedat del joc PEGI 3 Finalment conteacute una llista completa tant dels re-queriments funcionals del sistema com dels no funcionals on srsquoexplica detalladament cada funcioacute que podragrave oferir el joc com per exemple el mode historia

o Suportaragrave 5 escenaris diferents o Inclouragrave un tutorial interactiu amb

lrsquousuari o A cada escenari apareixeragrave un enemic di-

ferent amb habilitats moviments i IA propis

- Lrsquoanagravelisi del sistema En aquesta segona seccioacute clau del document a partir de la llista de requeri-ments esmentada en lrsquoapartat anterior es fa una anagravelisi preliminar del producte resumint totes les funcionalitats que contindragrave i els efectes que pro-duiragrave cada una en el transcurs de lrsquoaplicacioacute A partir drsquoaquesta primera anagravelisi srsquohan elaborat diferents diagrames de casos drsquouacutes on es poden veure molt visualment les interaccions que pot fer lrsquousuari amb el sistema

Fig 2 Diagrama de Navegar per la tenda

Com veiem a la Figura 2 drsquoexemple podem observar

totes les opcions drsquointeraccioacute que teacute lrsquousuari un cop estagrave dins la botiga Es poden trobar tots els casos drsquouacutes al do-cument adjunt ldquo Desenvolupament del Jocrdquo a lrsquoapartat 122 ldquoCasos drsquouacutesrdquo

Finalment a partir dels diagrames de casos drsquouacutes srsquoha elaborat una fitxa com la de la figura 3 de cada un on eacutes detalla les precondicions que srsquohan de complir pregravevia-ment per a que aquest es pugui dur a terme lrsquoiniciador que executa aquest cas drsquouacutes i el curs drsquoaccions que ocor-reran a partir drsquoaquest iniciador

Nom del Cas drsquoUacutes Comprar una textura per la pilota

Requeriment(s) Explorat(s) 681516

Precondicioacute(ns)

- Lrsquousuari ha seleccionat lrsquoopcioacute del menuacute ldquoTendardquo

Iniciador(s) Lrsquousuari ha polsat sobre el botoacute de tenda

Curs drsquoAccioacute Principal

1 Lrsquousuari selecciona la tenda de la pilota

2 Lrsquousuari fa scroll fins a seleccionar una textura que li agradi i

la polsa

3 Es comprova si ja teacute comprada aquesta textura (no la teacute)

4 Es comprova si teacute suficients monedes per adquirir la textura

(en teacute)

5 Lrsquousuari adquireix la textura srsquoelimina el seu preu per a in-

dicar-ho i es carrega la textura a la pilota de mostra de la ten-

da i a la que utilitzarem en qualsevol partida

Curs(os) Alternatiu drsquoAccioacute

3b Es comprova si ja teacute comprada aquesta textura (si la teacute)

4b Es carrega la textura a la pilota de mostra de la tenda i a la que

utilitzarem en qualsevol partida

4c Es comprova si teacute suficients monedes per adquirir la textura

(no en teacute)

5c Es mostra un aviacutes que lrsquousuari no teacute suficients monedes i no

es desbloqueja la textura

Fig 3 Descripcioacute Cas drsquouacutes ldquoComprar textura per la pilotardquo

6 EEUAB TFG INFORMAgraveTICA CREACIOacute DrsquoUN VIDEOJOC MOgraveBIL ADDICTIU

64 Disseny i Test

Un cop redactats els requisits vaig passar a redactar el ldquoCAPIacuteTOL 2 DISSENY I CONSTRUCCIOacute DEL VIDEO-JOCrdquo que conteacute les seguumlents seccions clau

- Disseny Artiacutestic Conteacute tota la informacioacute per a en-tendre el concepte artiacutestic del videojoc Tota la his-toria en la que es desenvolupa aixiacute com un guioacute complet de tots els diagravelegs del mode historia entre altres Una seccioacute interessant que apareix eacutes la explicacioacute dels controls que hauragrave drsquoutilitzar lrsquousuari i perquegrave srsquohan fet aixiacute on es concreta que el joc nomeacutes con-tindragrave dos tipus de moviments el toc amb el dit i lrsquoscroll lateral Al simplificar el joc a dos tipus de moviments srsquoaconsegueix molta senzillesa que a nivell pragravectic es tradueix a un facilitat molt gran en lrsquoaprenentatge drsquouacutes Finalment conteacute una descripcioacute completa de tots els boosts(objectes aleatoris) que intervenen a les partides i els efectes que tindran

- Disseny del Software En aquesta seccioacute srsquoha desenvolupat un diagrama de classes i escenes a partir de tots els casos drsquouacutes Srsquoha optat per incloure les escenes (progravepies del motor Unity) dins drsquoaquest diagrama ja que proporcionen molta meacutes facilitat a lrsquohora drsquoentendre la relacioacute de les classes ja que algunes no intervenen entre siacute directament sinoacute a partir drsquouna escena especiacutefica

Fig 4 Diagrama de classes i escenes

Amb el diagrama definit es descriuen la funcionalitats de cada classe junt amb els seus atributs propis i les funcions que la formen

Definides les funcions de les classes srsquohan descrit els diagrames de sequumlegravencia molt importants per a observar el flux de les diverses accions directes que pot realitzar lrsquousuari amb la interfaccedil I en consequumlegravencia com reacciona el motor a partir de cada accioacute amb les escenes arxius de

guardat i els serveis de google Ha sigut molt uacutetil per a realitzar un desenvolupament correcte

Fig 5 Diagrama de Sequumlegravencia de la primera execucioacute del Joc

La seccioacute inclou un esboacutes de tota la interfaccedil que interactua amb lrsquousuari Per aconseguir un bon resultat drsquoaquesta es van preparar unes imatges que reconstruiumlen la interfaccedil i es va fer un first-click test [7] amb lrsquoeina web lsquoopti-malworkshoprsquo A causa de la versioacute gratuiumlta srsquohan realitzat 3 estudis dife-rents ja que lrsquoeina limitava la quantitat de preguntes per estudi [8] [9] [10] Gragravecies a aquesta eina amb cada estudi realitzat hem obtingut uns resultats molt visuals que ens han servit per conegraveixer realment si els menuacutes estaven ben estructurats El resultat com podem veure a les imatges de la seccioacute A2 i A3 del apegravendix ha sigut molt satisfactori i no srsquoha necessitat de realitzar cap canvi a la interfaccedil de lrsquousuari Podem dir que el plantejament drsquouna interfaccedil molt senzi-lla i intuiumltiva ha sigut correcte

- Implementacioacute del software Per acabar questa

seccioacute conteacute tots els elements artiacutestics que interve-nen en el joc (models 3D sprites) totes les escenes i la icona que es mostraragrave a la play store

65 Desenvolupament de LrsquoAplicacioacute

651 Implementacioacute del Menuacute Principal

Respecte a la implementacioacute del videojoc es va comenccedilar per elaborar el menuacute principal Per fer-ho es va iniciar el desenvolupament del script ldquoGameManagerrdquo Srsquoha de dir que tots els components visuals del joc srsquohan creat dins drsquouna estructura canvas [13] de Unity per a crear una interfaccedil responsive [12]

Script GameManager Per a crear aquest script encarregat de guardar totes les dades srsquoha utilitzat els PlayerPrefs [14] de unity Soacuten funcions del tipus clau-valor on amb un id pots guardar un valor a un espai de memograveria del dispositiu Aquest GameManager com srsquoexplica a la documentacioacute

NIL PASCUAL FERNAacuteNDEZ CREACIOacute DrsquoUN VIDEOJOC MOgraveBIL ADDICTIU 7

del desenvolupament del joc srsquoencarrega tant de crear lrsquoarxiu de guardat quan srsquoinicialitza per primer com el joc com de carregar els valors drsquoaquests un cop ja srsquoha jugat meacutes drsquoun cop Amb el GameManager com a estructura principal srsquoha comenccedilat a desenvolupar lrsquoescena del Menuacute principal Escena lsquoMenuacutersquo ndash Menuacute principal Per aquest menuacute principal que veiem a la figura 6 es buscava una sensacioacute drsquoimmersioacute al joc que et fes sentir a lrsquoespai Per aixograve es va decidir dividir les 4 parts principals drsquoaquest menuacute Menuacute principal mode lliure mode histo-ria i botiga en diferents punts de lrsquoespai 3D formant una circumferegravencia Aixograve ha permegraves desenvolupar la seguumlent foacutermula per a la cagravemera de joc que ofereix una sensacioacute de flotar a lrsquoespai cameraTransformrotation = QuaternionSlerp (camera-TransformrotationcameraDesiredLookAtrotation CAMERA_TRANSITION_SPEED TimedeltaTime) Amb aquesta foacutermula estem assignant al valor de rotacioacute de la cagravemera del joc una nova rotacioacute entre la seva posi-cioacute actual (cameraTransformrotation) i la posicioacute destiacute (cameraDesiredLookAtrotation) Gragravecies a la funcioacute slerp() realitzaragrave un moviment molt lleuger seguint la velocitat que li indiquem Per a veure millor aquest efecte de cagravemera es pot consul-tar el viacutedeo adjunt ldquoDEMO_GRAVITY_PONGrdquo

Escena lsquoMenuacutersquo ndash Mode Lliure El seguumlent pas ja amb la cagravemera a punt ha sigut desenvo-lupar el llistat de nivells del mode lliure que trobem a la figura 7 Ha sigut una decisioacute difiacutecil i bastant creativa ja que es volia una llista de nivells molt visual i vaig decidir mostrar els nivells com a imatges Investigant vaig trobar que mitjanccedilant codi pots trobar i guardar a variables els sprites que estiguin dins de la carpeta que crea unity de ldquoResourcesrdquo Amb aquesta tegravecnica i un Scroll Rect [11] podem passar els nivells amb un scroll lateral Despreacutes srsquoha afegit la imatge i el text dels tiquets a la part inferior del nivell i el regravecord del nivell a sobre drsquoaquest Per finalitzar srsquoha creat el botoacute de tornar per a que la cagravemera torni a rotar fins la posicioacute del menuacute principal Escena lsquoMenuacutersquo ndash Botiga La botiga com observem ala figura 8 manteacute una estruc-tura semblant al llistat de nivells perograve amb diferegravencies notables En comptes de carregar varies imatges carrega una imat-ge sencera amb totes les textures i la divideix en textures de 256x256 per a una millor optimitzacioacute Teacute un indica-dor monedes del joc i teacute un botoacute extra per a canviar entre la tenda de textures de la pilota i de la lluna de joc

Fig 6 Menuacute Principal

Fig 7 Mode lliure

Escena lsquoMenuacutersquo ndash Mode Histograveria El llistat de nivells del mode histograveria no utilitza la tegravecnica de cagraverrega de imatges pels nivells sinoacute que srsquohan utilitzat uns models gratuiumlts de planetes 3D Cada planeta forma un nivell amb el seu nom i el seu regravecord de temps propi Un cop acabada tota la visual de lrsquoescena del menuacute srsquoha creat el script que el gestionaria anomenat ldquoMainMenurdquo

Fig 8 Botiga

Figura 9 Mode Histograveria

Script MainMenu Aquest script srsquoencarrega de carregar i gestionar els com-ponents de lrsquoescena del menuacute del llistat de nivells i la botiga Primer de tot carrega gragravecies als playerPrefs guardats tots els textos de regravecords de puntuacioacute de cada nivell els tiquets les monedes i les textures comprades de la pilota i lluna de joc que lrsquousuari havia obtingut Srsquoha creat un sistema tant per al llistat de nivells com a la botiga de bloqueig on al llistat de nivells es bloquegen tots els botons dels jocs menys del primer fins que en aquest no srsquohagi obtingut una puntuacioacute miacutenima de 5 i a la botiga es guarda una matriu de desbloquejos que indica quines textures srsquohan comprat i ja no apareixeragrave el seu preu i quines no Tambeacute srsquoencarrega de a la botiga mostrar com quedaria la textura comprada a la pilota o a la lluna de joc i apli-car-la per a quan juguem qualsevol partida Aquest script tambeacute carrega la muacutesica del menuacute

8 EEUAB TFG INFORMAgraveTICA CREACIOacute DrsquoUN VIDEOJOC MOgraveBIL ADDICTIU

Script History_Levels Aquest script srsquoencarrega de la gestioacute del menuacute ldquoHISTO-RIArdquo Srsquoha creat un sistema de visualitzacioacute on el jugador can-via de nivell mitjanccedilant dues fletxes i un jugador no po-dragrave accedir a un nivell fins que hagi completat lrsquoanterior Junt amb aquest sistema de bloqueig segons el nivell on es situiuml el jugador es mostraragrave el millor temps en que lrsquoha acabat (si es que hi ha) i el nom del nivell Amb aquests components descrits fins ara ja tindriacuteem tot el menuacute principal acabat Un cop acabat el menuacute srsquoha passat a crear els nivells del mode lliure

652 Implementacioacute del Mode Lliure

El mode lliure consta de 5 nivells amb mecagraveniques de joc variants perograve compartint lrsquoestructura principal del joc Per a explicar com srsquoha desenvolupat aquest mode srsquoutilitzaragrave de referegravencia el mode de joc ldquoCLASSICrdquo el mode de joc original on primer srsquoexplicaran els compo-nents de lrsquoescena i despreacutes els scripts que la componen Una part molt important drsquoaquestes escenes eacutes el disseny seguint el esquema senzill i visual del joc srsquoha passat per diversos plantejaments murs reals una barra plana Finalment despreacutes drsquoun extens plantejament es va deci-dir aplicar el disseny que veiem a la figura 10 En aquest disseny podem observar que els murs soacuten llums LED Aquesta decisioacute srsquoha considerat la millor ja que oferia tota la informacioacute que necessita el jugador dels murs sense ser un objecte molt gran i amb molt detall Finalment srsquohan utilitzat imatges de la temagravetica espacial per a completar el fons de lrsquoescena Escena CLASSIC Lrsquoescena drsquoaquest mode de joc la componen directament la pilota la lluna de joc els murs de joc la puntuacioacute el menuacute de pausa i els tiquets disponibles Perograve realment hi ha molts meacutes components secundaris que no srsquoentraragrave en detall a explicar-los perograve que valia la pena mencionar-los com uns murs secundaris invisibles que srsquoutilitzen per detectar si el jugador perd quan ha destruiumlt un mur ob-jectes que solament es mostren quan srsquoagafa un boost llums que segueixen els objectes per crear un efecte pri-mer pla la interfaccedil del menuacute de pausa Presentats aixiacute els components de lrsquoescena eacutes meacutes interes-sant veure els scripts que afecten a aquests components Script ClassicBall Aquest script que controla la pilota eacutes el meacutes important de lrsquoescena ja que gestiona tot el que pot tenir contacte amb ella La funcioacute meacutes important drsquoaquest script eacutes sens dubte OnCollisionEnter() Aquest funcioacute nativa de Unity ser-veix per a gestionar quan lrsquoobjecte topa amb un altre objecte Quan la pilota topa amb un mur detecta quin eacutes

i segons el seu color actual li canviaragrave el seu color al que toqui i suma un punt Si la pilota topa amb la lluna de joc simplement augmen-taragrave la seva velocitat Si topa amb el forat negre de la part inferior o traspassa un mur destruiumlt srsquoencarrega de parar la partida i la muacutesica mostrar el menuacute de derrota afegir a les monedes totals del jugador les guanyades aquella partida i canviar el regravecord de puntuacioacute del nivell si srsquoha superat

Fig 10 Escena CLASSIC

Fig 11 Efecte de Boost de Gel

Script ClassicPad Aquest script simplement srsquoencarrega de la gestioacute del moviment de la lluna de joc Detecta si el jugador estagrave polsant a sobre drsquoella i es mou en consequumlegravencia Per al mode histograveria srsquoencarrega de si un projectil topa amb ella parar la partida i mostrar el menuacute de derrota Script Pause Menu Aquest script com el seu nom indica gestiona tot el me-nuacute de pausa Que quan es polsi a sobre del botoacute de pausa es pari el joc i es mostri la interfaccedil que quan polsem sobre lsquoreprendrersquo la partida actual segueixi on estava que es torni al menuacute o que es surti de la partida Script Boosts Aquest script srsquoencarrega drsquoinvocar un objecte aleatori que apareix cada x segons aleatograveriament per pantalla un cert temps Segons el boost es produeix un efecte diferent Per fer aixograve se li ha assignat el script a una imatge i srsquoha jugat amb el seu render (el component que fa que es mos-tri la imatge) Gragravecies a la funcioacute TimeTimeSinceLevelLoad que ens proporciona el temps que ha passat des de que srsquoha carregat el nivell sabem quan fer invisible o no lrsquoobjecte Aixiacute creat lrsquoalgoritme que mostra una imatge aleatograveriament drsquouna llista drsquoimatges sempre que no hi hagi un boost funcionant Ara amb un switch case segons la imatge que srsquoestagrave mos-trant crida a la funcioacute del boost que toca per a que realitzi lrsquoefecte adequat Un bon exemple eacutes el boost de gel que al collir-lo com veiem a la figura 11 mostra a tots els murs que no hagin sigut destruiumlts una imatge de neu que impedeix destruir-los

NIL PASCUAL FERNAacuteNDEZ CREACIOacute DrsquoUN VIDEOJOC MOgraveBIL ADDICTIU 9

Es poden trobar tots els boosts i efectes a lrsquoapartat 215 del document adjunt ldquoDesenvolupament del Jocrdquo Amb tots aquests components ja es podria jugar una par-tida ldquoCLASSICrdquo del mode lliure Per a construir els altres nivells del mode lliure srsquoha jugat amb potenciar o extreure aquestes funcions descrites per proporcionar un altre tipus de joc

bull Escena Double Trouble Aquiacute srsquoha duplicat la pilota de joc i srsquoha adaptat lrsquoentorn per a que el nivell sigui jugable

bull Escena Faster Aquest mode es juga al doble de la velocitat normal de joc utilitzant la funcioacute Ti-meTimeScale = 2 que duplica el temps

bull Escena Insight Aquest mode es juga sense veure els components del joc el jugador nomeacutes veu una estela que indica el moviment de la pilota i la lluna de joc

bull Escena Relax En aquest mode on nomeacutes es perdragrave la partida si aquesta cau al forat negre inferior Els murs mai poden ser destruiumlts i no apareixen boosts

653 Implementacioacute del Mode Histograveria

Per a aquest mode srsquoha utilitzat com a base lrsquoestructura del nivell ldquoCLASSICrdquo del mode lliure Amb aquesta es-tructura srsquohan eliminat els boosts i el marcador de pun-tuacioacute Consta drsquoun objectiu totalment diferent al mode lliure no volem aconseguir la major puntuacioacute sinoacute que volem destruir la nau enemiga i si pot ser en el menor temps possible Script Dialog Primerament srsquoha creat un sistema de diagravelegs en el que seguint el guioacute descrit al document adjunt ldquoDesenvolu-pament del Jocrdquo apartat 212 dos personatges ens ense-nyen a jugar a lrsquohora que ens narren una divertida histograve-ria Dit aixograve srsquoha creat un sistema drsquoescriptura on segons unes frases donades srsquoescriu lletra per lletra aconseguint lrsquoefecte de narracioacute dels videojocs Quan comprovem que srsquoha mostrat tota la frase per pan-talla mostrem un botoacute per a continuar amb la conversa i un altre botoacute per a saltar el diagraveleg i comenccedilar a jugar Agafant la primera lletra de la frase amb la funcioacute subs-tring() sabrem si quin personatge parla i hem de mostrar Script History_Ball La pilota srsquoha hagut drsquoadaptar a tots els nous compo-nents A meacutes srsquoha creat un sistema per a mostrar en tot mo-ment el temps que ha passat des de lrsquoinici del nivell Per fer-ho srsquohan utilitzat 2 variables pels minuts i segons Aixograve ha permegraves visualitzar amb meacutes comoditat el format de temps ldquominuts segonsrdquo amb la funcioacute toString()

permetent realitzar les comparacions de temps correcta-ment Script Launcher Aquest script srsquoencarrega un model de miacutessil que li indi-quem i crear una instagravencia drsquoaquest davant la nau amb una certa velocitat dirigit cap a la part inferior de la pan-talla Per aconseguir-ho srsquoutilitza un objecte auxiliar a lrsquoescena lsquoFirePointrsquo que eacutes situat sempre davant la nau on srsquoinstanciaragrave el model del miacutessil amb un cert impuls Po-dem visualitzar aquest sistema a la figura 12 Script ProjectileCollision Aquest script srsquoencarrega solament de destruir el miacutessil quan topi amb un objecte que no sigui la lluna de joc Eacutes un script per a optimitzar el rendiment del joc Un cop descrits els scripts en comuacute per a tots els nivells passem als scripts que a cada nivell soacuten diferents perograve que srsquoutilitzen per a una mateixa causa la gestioacute de la nau enemiga

bull Capiacutetols 1 i 2 Els capiacutetols 1 i 2 comparteixen el ma-teix moviment de la nau Aquest script mou la nau seguint un moviment aleatori Lrsquoalgorisme consisteix en que srsquoescull un punt aleatori a arribar i quan srsquoarriba srsquoescull un altre

bull Capiacutetol 3 Al tercer capiacutetol eacutes on veiem per primer cop una intelmiddotligegravencia artificial en el moviment de la nau aquesta fugiragrave de la pilota Per fer-ho srsquoha divi-dit el nivell en dues zones dreta i esquerra quan la pilota estigui a la zona de la dreta la nau es mouragrave a lrsquoesquerra i a la inversa Per a que no sigui impossi-ble tocar-la srsquoha ajustat la velocitat del seu movi-ment adequadament

bull Capiacutetol 4 Al quart capiacutetol la nau ja consta drsquouna intelmiddotligegravencia artificial meacutes avanccedilada en la que es mou segons a on la pilota estigui situada Lrsquoalgorisme consisteix en tenir la posicioacute de la pilota en tot moment i srsquoha dividit lrsquoespai de la partida en 4 quadrats com podem veure a la figura 13 Si la pilota estagrave al quadrat 1 la nau es mouragrave al qua-drat contrari el 4 Si la pilota es situa al quadrat 2 la nau es mouragrave al quadrat 3 Per a que no fos impossi-ble topar amb la nau srsquoha drsquoajustat la velocitat del moviment

bull Capiacutetol 5 Al capiacutetol final lrsquoalgoritme consta del ma-teix moviment que al nivell anterior perograve afegint un extra que si la nau es troba en el mateix quadrat que la pilota en el mateix instant de temps la nau redui-ragrave el seu tamany complicant lrsquoobjectiu drsquoaconseguir destruir-la

10 EEUAB TFG INFORMAgraveTICA CREACIOacute DrsquoUN VIDEOJOC MOgraveBIL ADDICTIU

Fig 12 Nau amb lrsquoobjecte lsquoFire-

Pointrsquo

Fig 13 Divisioacute de quadres nivells 4 i 5

Per a veure visualment com funcionen les funcions expli-cades en aquest apartat es pot consultar el viacutedeo adjunt ldquoDEMO_GRAVITY_PONGrdquo

66 Proves

Gragravecies a la metodologia de desenvolupament de Rapid Prototyping srsquoha pogut anar testejant cada mogravedul desen-volupat al moment aixiacute extraient tots els resultats de tests ragravepidament Srsquohan realitzat 4 tipus de proves diferents

bull A les proves drsquounitat srsquoha testejat que els diferents mograveduls del sistema funcionin correctament Com que si un miacutessil drsquouna nau enemiga glopeja la lluna de joc es mostra el menuacute correcte o si tenim les su-ficients monedes per a comprar una textura la po-dem comprar satisfactograveriament entre altres

bull A les proves drsquointegracioacute srsquoha testejat que les in-teraccions entre els diferents escenaris del sistema sigui correcte Srsquoha provat que es pugi accedir a tots els nivells del videojoc i que des de aquests es pu-gui tornar correctament al menuacute principal a traveacutes del menuacute de pausa

bull Les proves de validacioacute han servit per comprovar que hem complit amb els requisits del projecte Hem testejat el correcte log in amb google la visualitzacioacute dels marcadors i la visualitzacioacute dels objectius entre altres

bull Per acabar les proves de sistema han servit gragravecies a la developer console [24] comprovar que el joc srsquoha executat correctament variant els dispositius i versions drsquoAndroid

A lrsquoapartat 31 del document adjunt ldquoDesenvolupament del Jocrdquo es poden trobar la totalitat de les proves realitza-des de cada tipus amb els seus resultats corresponents

7 CONCLUSIONS

I ja per finalitzar aquest document explicareacute quines soacuten les conclusions que he extret sobre el projecte Primer de tot crec que la planificacioacute que vaig realitzar a

lrsquoinici ha sigut lrsquoencertada Les petites alteracions que srsquohan acabat realitzant (com podem veure en el diagrama de Gantt real de lrsquoapegravendix 2) han estat meacutes enfocades a avanccedilar lrsquoinici de les tasques que no pas a endarrerir-les a causa de la situacioacute excepcional que hem viscut

Respecte a la fase drsquoimplementacioacute considero que

srsquohan completat tots els objectius que es presentaven a lrsquoinici del projecte Srsquohan desenvolupat totes les funcions que es van proposar al document de requisits amb lrsquoajuda de la psicograveloga que havia de tenir el joc per a que es considereacutes addictiu i aixiacute ha sigut Per lo que podem concloure que hem desenvolupat un joc addictiu per a Android satisfactograveriament A meacutes srsquoha de dir que lrsquoaplicacioacute eacutes responsive [12] i molt fagravecilment escalable

I com a uacuteltim punt voldria comentar que mrsquohagueacutes

agradat disposar de meacutes temps i recursos per a millorar tot lrsquoaspecte visual de lrsquoaplicacioacute encara meacutes fins a arribar a apropar-se al nivell de mitjanes produccions aquest aspecte milloraria lrsquointeregraves per al joc

71 Futures Accions

A continuacioacute detallarem aquelles accions futures que he considerat que pot ser interessant desenvolupar en prograveximes ampliacions del joc per tal que lrsquoexperiegravencia drsquouacutes dels usuaris sigui la millor possible

bull Un tutorial molt meacutes visual que es mostri el primer cop que srsquoiniciiuml lrsquoaplicacioacute on no solament srsquoexpliqui sobre la mecagravenica del joc sinoacute que tambeacute es guiiuml a lrsquousuari a traveacutes dels menuacutes la interfaccedil i els diferents modes i nivells de joc

bull Una integracioacute drsquoalgun mode de joc online on es po-gueacutes competir contra un altre jugador en temps real oferiria molt drsquoatractiu i enriquiria molt lrsquoaplicacioacute

bull Per acabar com ja hem comentat una millora visual en la que no mrsquohe pogut centrar en especial durant el projecte on amb lrsquoajuda drsquoalgun professional en la mategraveria es crearien unes visuals progravepies per al joc

8 AGRAIumlMENTS

En primer lloc mrsquoagradaria agrair a la meva famiacutelia el suport incondicional que mrsquohan donat en tot moment durant els quatre anys que porto de carrera Sense ells res de tot aixograve hauria estat possible

Tambeacute mrsquoagradaria agrair la Gemma Saacutenchez la meva tutora del TFG pels consells i lrsquoajuda que mrsquoha ofert du-rant aquests mesos tant durs i especials de projecte insis-tint en quegrave treballes ben dur des del primer dia ha per-megraves que aquest treball hagi pogut tirar endavant amb meacutes facilitat

Finalment voldria agrair a les altres persones que han fet aquest treball possible des de la psicograveloga experta que ens va ajudar a definir molt beacute els requisis fins a tots els companys i amics que han treballat com a testers del joc trobant lsquobugsrsquo i fent propostes sobre possibles millores drsquoaquest

NIL PASCUAL FERNAacuteNDEZ CREACIOacute DrsquoUN VIDEOJOC MOgraveBIL ADDICTIU 11

IacuteNDEX DE FIGURES

Fig 1 lsquoRapid Prototypingrsquo3

Fig 2 Diagrama de Classes lsquoNavegar per la Tendarsquo5

Fig 3 Descripcioacute Cas drsquouacutes ldquoComprar textura pilotardquo6

Fig 4 Diagrama de Classes i Escenes6

Fig 5 Diagrama de Sequumlegravencia 1a Execucioacute6

Fig 6 Escena Menuacute Principal7

Fig 7 Escena Mode Lliure7

Fig 8 Escena Botiga8

Fig 9 Escena Mode Histograveria8

Fig 10 Escena lsquoCLASSICrsquo8

Fig 11 Efecte Boost de Gel8

Fig 12 Nau amb objecte lsquofirepointrsquo10

Fig 13 Divisioacute de quadres nivells 4 i 510

REFEREgraveNCIES

[1] Desenvolupament lsquoRapid prototypingrsquo httpseswikipediaorgwikiModelo_de_prototipos

[2] Article de lrsquoaddiccioacute als videojocs httpspsicologiaymentecomclinicaadiccion-a-videojuegos

[3] Per quegrave enganxen els videojocs httpswwwlavanguardiacomestilos-de-vida2012062954317381414por-que-enganchan-los-videojuegoshtml

[4] Historia dels Videojocs httpswwwfibupceduretroinformaticahistoriavideojocshtml

[5] Requisits miacutenims Candy Crush Saga httpswwwmicrosoftcomes-espcandy-crush-sa-ga9nblggh18846activetab=pivotregionofsystemrequirementstab

[6] Document SRS drsquoexemple httpswwwdocsitycomesejemplo-de-documento-srs4930539

[7] El lsquoFirst clickrsquo test httpsusabilityhubcomguidesfirst-click-testing

[8] Quumlestionari lsquoFirst clickrsquo test I httpsowsiocm7v7lx3h4

[9] Quumlestionari lsquoFirst clickrsquo test II httpsowsiocmj6574121

[10] Quumlestionari lsquoFirst clickrsquo test III httpsowsiocm7df25ouc

[11] Scroll Rect de Unity httpsdocsunity3dcomes20184Manualscript-ScrollRecthtml

[12] Disseny Responsive httpswww40defiebrecomque-esdiseno-responsi-ve~text=El20disentildeo20web20responsive20o3B20ordenador2C20tablet2C20smartphonehellip

[13] Canvas de Unity httpsdocsunity3dcomescurrentManualUICanvashtml

[14] Playerprefs de Unity httpsdocsunity3dcomescurrentScriptReferencePlayerPrefshtml

[15] ldquoDisseny de Softwarerdquo Assignatura del grau que ha ser-

vit de font bagravesica dels coneixements aplicats tant a An-droid com als tests amb usuaris La seva guia docent la trobem disponible a httpsdocsunity3dcomManualUnityManualhtml

[16] ldquoTest i Qualitat del Softwarerdquo Assignatura del grau que ha servit de font bagravesica dels coneixements aplicats per als tests del codi La seva guia docent la trobem disponible a httpsguiesuabcatguies_docentspublicportalhtml2019assignatura102758ca

[17] ldquoDocumentacioacuten de Unityrdquo Documentacioacute completa del motor gragravefic lsquoUnityrsquo que srsquoha anat consultant en tot mo-ment del desenvolupament httpsdocsunity3dcomManualUnityManualhtml httpswwww3schoolscomcs

[18] ldquoStack Overflowrdquo Fograverum de preguntes i respostes rela-cionades amb el moacuten de la programacioacute i la informagravetica Srsquoha anat consultant durant la fase drsquoimplementacioacute Al-gunes de les pagravegines que voldria destacar

o Text borroacutes a Unity httpsstackoverflowcomquestions16506737unity3d-3d-text-always-displayed-blur16507861

o Sing-In Google httpsstackoverflowcomquestions59599895problems-with-google-sign-in-in-unity

[19] ldquoComo firmar tu apprdquo Documentacioacute per a desenvolupa-dors Android sobre com signar una aplicacioacute per a que totes les funcions de google funcionin correctament httpsdeveloperandroidcomstudiopublishapp-signinggoogle-play-app-signing

[20] ldquoUnity Ads Documentationrdquo Documentacioacute sobre el sis-tema de publicitat de unity utilitzat a lrsquoapp httpsdocsunity3dcomPackagescomunityads34manualindexhtml

[21] ldquoGoogle play games plugin for unityrdquo Plugin per a unity per a poder utilitzar totes les funcions de google play games httpsgithubcomplaygameservicesplay-games-plugin-for-unity

[22] ldquoFlaticonrdquo Web de recursos gratuiumlts drsquoon srsquohan descarre-gat els sprites que srsquoutilitzen al joc httpswwwflaticones

[23] ldquoUnity Asset Storerdquo Web de recursos gratuiumlts de unity drsquoon srsquohan descarregat els models dels planetes que srsquoutilitzen al joc entre altres httpsassetstoreunitycomgclid=CjwKCAjwlZf3BRABEiwA8Q0qq9NcH2nCMrUHDdQUrV0K7dNiZD6JMAy7G8x93NPLzD3wZKmhiK1MQBoCvR0QAvD_BwE

[24] ldquoAyuda de Play Consolerdquo Documentacioacute sobre al play console plataform on es puja lrsquoaplicacioacute per a que es vi-sualitzi a la play store que srsquoha consultat quan han sorgit problemes httpssupportgooglecomgoogleplayandroid-developerhl=estopic=3450769

[25] ldquoPongrdquo Primer videojoc de la histograveria httpseswikipediaorgwikiPong~text=Pong20(o20Tele-Pong)mesa20(o20ping20pong)

[26] ldquoFlappy Birdsrdquo httpseswikipediaorgwikiFlappy_Bird

[27] ldquoCandy Crushrdquo httpswwwxatakamovilcommovil-y-sociedadcandy-crush-saga-la-ciencia-detras-de-la-adiccion

12 EEUAB TFG INFORMAgraveTICA CREACIOacute DrsquoUN VIDEOJOC MOgraveBIL ADDICTIU

APEgraveNDIX

A1 DIAGRAMA DE GANTT DE LA PLANIFICACIOacute INICIAL

A1 Diagrama de Gantt corresponent a la planificacioacute inicial del projecte En aquest diagrama podem veure les diferents tasquesetapes de desenvolupament amb les setmanes que es va planificar destinar a cada una

A2 SECCIOacute DrsquoAPEgraveNDIX

A2 Diagrama de Gantt corresponent a la planificacioacute final del projecte Tal i com podem veure tenim alguns canvis en els temps respecte a la planificacioacute inicial es va acurtar la fase de desenvolupament ja que amb la situacioacute excepcional del paiacutes srsquoha disposat de molt meacutes

temps per al desenvolupament lo qual ha permegraves avanccedilar el pas a produccioacute i la documentacioacute del projecte

NIL PASCUAL FERNAacuteNDEZ CREACIOacute DrsquoUN VIDEOJOC MOgraveBIL ADDICTIU 13

A3 RESULTAT DEL ESTUDI DE DISSENY ndash TASCA 1

A3 Resultat Estudi 1 - Tasca 1 Com observem el 90 dels testers han completat lrsquoobjectiu de la tasca

A4 RESULTAT DEL ESTUDI DE DISSENY ndash TASCA 1 (MAPA DE CALOR)

A4 Resultat estudi 1 ndash Tasca 1 (Mapa de Calor) Com podem observar la zona de tocs de dit del 70 dels tocs se centra en el botoacute correcte

14 EEUAB TFG INFORMAgraveTICA CREACIOacute DrsquoUN VIDEOJOC MOgraveBIL ADDICTIU

Page 3: Nil Pascual Fernández - UAB Barcelona · 2020. 9. 2. · llançar la seva primera consola: la Playstation, que tenia un reproductor de CDs, lo qual comportava que els vi-deojocs

NIL PASCUAL FERNAacuteNDEZ CREACIOacute DrsquoUN VIDEOJOC MOgraveBIL ADDICTIU 3

Fig 1 Rapid prototyping

Aquesta metodologia eacutes molt uacutetil per a un projecte on

es tenen clars els objectius generals del software perograve no srsquoidentifiquen clarament els seus requisits (lrsquoestat inicial del nostre projecte) Tambeacute seragrave altament uacutetil per a provar que el joc eacutes addictiu ja que amb un constant contacte amb els usuaris hi hauragrave un feedback molt gran en tot moment Aquesta metodologia portaragrave com a objectiu final un software de qualitat gragravecies a la bona definicioacute de requi-sits que sersquon podragrave extreure i el descart de funcionalitats o aspectes no necessaris en el projecte que endarreririen les entregues

5 PLANIFICACIOacute

51 Planificacioacute de les tasques

La primera setmana del projecte es van dedicar iacutente-grament a la planificacioacute del projecte Tot i que pot sem-blar que soacuten massa dies per a aquesta tasca es va consi-derar fonamental que la planificacioacute inicial fos la meacutes encertada possible pel bon devenir del projecte

El projecte el podem dividir principalment en sis eta-

pes o tasques principals 1 Definicioacute del projecte consisteix en la definicioacute de

lrsquoabast del projecte i la planificacioacute de les tasques que srsquohan de realitzar per tal drsquoassolir els objectius

2 Estudi sobre lrsquoaddiccioacute aquest estudi consisteix a concertar una entrevista amb un psicograveleg expert en la mategraveria per a formular-li un seguit de preguntes extreurersquon les primeres conclusions i objectius en clau de requisits que necessitaragrave el projecte Tant les preguntes formulades com les respostes extre-tes es poden trobar al document adjunt ldquoEntrevis-ta amb un psicogravelegrdquo

3 Presa de requisits aquesta etapa es considera drsquoalta importagravencia per al desenvolupament del projecte i consisteix que a partir de lrsquoetapa anteri-or i una investigacioacute personal sobre el tema a trac-tar elabora un document complet de requisits Es considera drsquoalta importagravencia ja que amb un bon document i unes bones pautes se sabragrave en tot moment el que srsquoha de fer i com srsquoha de fer Els requisits complets es poden trobar al document

adjunt ldquoDesenvolupament del jocrdquo al CAPIacuteTOL 1 4 Disseny i Test aquesta etapa consisteix que a par-

tir del document de requisits extret elaborar un document de disseny del videojoc Aquest docu-ment conteacute tant tota la part artiacutestica (Guioacute histograveria controls personatges) com la part de disseny del software (Diagrama de classes targetes crc dia-grames de sequumlegravencia disseny de interfaccedil) I a partir dels primers esbossos de interfaccedil realit-zar tests de first-click-test per a saber si la interfaccedil era correcte i intuiumltiva El document complet de disseny es pot trobar a lrsquoarxiu adjunt ldquoDesenvolupament del jocrdquo al CAPIacuteTOL 2

5 Desenvolupament de lrsquoaplicacioacute implementacioacute i testeig del videojoc a partir dels apartats anteriors

6 Pas a produccioacute un cop desenvolupada i testejada lrsquoaplicacioacute es pujaragrave una versioacute estable a la plata-forma Play Store

7 Documentacioacute del projecte redaccioacute del dossier del projecte i preparacioacute de la presentacioacute

A la Taula 1 podem veure les tasques que acabem

drsquoexplicar amb les hores planificades per la seva resolucioacute i els rols que participen en cada una drsquoelles Pel nostre cas el Project Manager el dissenyador el programador i el tester soacuten la mateixa persona (lrsquoestudiant)

TAULA 1

ROLS PER TASCA

Tasca Temps(hores) Rols participants

Definicioacute 20 Project Manager

propietari de lrsquoapp

Estudi sobre lrsquoaddiccioacute 20 Dissenyador psicograve-

leg

Presa de requisits 40 Dissenyador

Disseny i test 30 Dissenyador usuaris

de test

Desenvolupament de

lrsquoaplicacioacute

150 Programador tester

propietari de lrsquoapp

Pas a produccioacute 10 Tester propietari de

lrsquoapp

Documentacioacute del

projecte

30 Project Manager

TOTAL 300

I per finalitzar veurem quin seria el cost aproximat que suposaria pel client aquets projecte A la Taula 2 mos-trem el cost dels sous dels treballadors segons el seu rol i a la Taula 3 el cagravelcul del cost final A lrsquohora de calcular el cost final afegim uns costos indirectes corresponents als desplaccedilaments per les reunions amb el client No tindrem en compte el cost drsquoadquisicioacute dels ordinadors utilitzats pels treballadors (suposarem que soacuten de pro-pietat) ni les llicegravencies dels programes de desenvolu-pament utilitzats (ja que tot eacutes software lliure o sense cap cost)

4 EEUAB TFG INFORMAgraveTICA CREACIOacute DrsquoUN VIDEOJOC MOgraveBIL ADDICTIU

TAULA 2

COST MONETARI

Rol treballador Cost (euroh) Temps (h) Cost total

(euro)

Project

Manager

50 50 2500

Dissenyador 25 90 2250

Programador 20 150 3000

Tester 20 30 600

TOTAL 300 8350

Per tant el cost final del projecte despreacutes drsquoaplicar un

20 de benefici seria

TAULA 5

COST TOTAL

Tipus de cost Cost (euro)

Cost Directe 8350

Benefici +20

TOTAL 10020

Hem de tenir en compte que el cost final obtingut se-

gurament no seria tant elevat La planificacioacute de les hores srsquoha realitzat tenint en compte que no tinc gaire experiegraven-cia a lrsquohora de treballar en projectes de programacioacute drsquoaquest abast El meacutes probable es que a una empresa especialitzada en el desenvolupament software no li cal-guin tantes hores per a poder assolir els objectius esta-blerts

Al apegravendixs A1 i A2 trobem tota la informacioacute sobre la planificacioacute de les tasques En el primer trobem la planifi-cacioacute inicial que es va realitzar i en el A2 la planificacioacute final que ha sorgit amb les condicions en les que srsquoha treballat

52 Avaluacioacute de Riscos

Un altre aspecte fonamental de la planificacioacute drsquoun projecte eacutes lrsquoavaluacioacute dels possibles riscos que poden comprometre el correcte desenvolupament del projecte Estudiant amb anterioritat quines poden ser les principals amenaces es poden trobar possibles solucions o fins i tot arribar a evitar-los

bull Un dels possibles riscos principals que vagraverem tenir en compte era la falta drsquoexperiegravencia amb el motor gragravefic ja que no srsquohavia treballat dins del grau Per aixograve es va treballar des de un principi en estudiar-lo a partir de la documentacioacute [17] [20] [21] [24]

bull Un segon risc podia ser la lsquono addiccioacute de lrsquoaplicacioacutersquo que aquesta no arribeacutes a ser un entorn que cridi lrsquoatencioacute i caigueacutes en la monotonia i sim-plicitat Per aixograve es va treballar en la presa de re-quisits amb psicograveleg per a que el joc tingueacutes totes les eines drsquoun videojoc drsquoaquesta classe

bull Per acabar un aspecte de risc per a la finalitzacioacute del projecte i molt important que es va tenir en

compte era no aconseguir pujar lrsquoaplicacioacute a la Play Store Degut a la situacioacute actual amb el CO-VID-19 informen a la pagravegina que cada revisioacute pot portar un temps de 7 o meacutes dies degut a questa si-tuacioacute Aquest aspecte incontrolable podia deri-var a la no pujada de lrsquoapp o a no aconseguir pujar una versioacute sense errors importants Per aixograve com veiem a la planificacioacute final al annex A2 srsquoha avan-ccedilat el proceacutes de desenvolupament per a tenir meacutes temps en aquest aspecte

6 DESENVOLUPAMENT

Per a explicar el desenvolupament de lrsquoaplicacioacute amb la magravexima exactitud possible srsquoaniragrave referenciant al docu-ment adjunt ldquoDesenvolupament del Jocrdquo un document de meacutes de 70 pagravegines que conteacute tot tota la informacioacute relacionada amb el projecte de inici a final el qual srsquoha anat redactant paralmiddotlelament amb el transcurs drsquoaquest

61 Estudi sobre lrsquoaddiccioacute

El primer pas per a comenccedilar el projecte ha sigut assegu-rar-se que aquest conteacute els aspectes clau per a que com-pleixi els objectius plantejats Per aconseguir-ho es va formalitzar una reunioacute amb una psicograveloga experta en la mategraveria

La entrevista cal destacar-la com a molt satisfactograveria gragravecies a una bona recerca del tema [2][3] es van quumlestio-nar aspectes generals al psicograveleg com Que eacutes lrsquoaddiccioacute per a tu Consideres que hi ha diferents tipus drsquoaddiccioacute De les que es va extreure una gran perspectiva sobre el punt de vista de lrsquoentrevistat i per exemple es va aconse-guir que definiacutes la nostra aplicacioacute com a tipus drsquoaddiccioacute no destructiva un gran pas ja que era un dels objectius del treball que es classifiqueacutes com a addictiva

Amb altres quumlestions com Quins soacuten els elements clau per considerar un joc addictiu O Quines caracteriacutestiques ha drsquooferir a primera vista per a seguir explorant-lo Srsquoha aconseguit extreure una part emocional molt important de lrsquoaddiccioacute que inclou els sentiments Srsquoha vist que aquests soacuten molt important que es produeixin durant el joc tant si soacuten bons com dolents Gragravecies a aquesta part es van prendre conclusions com que el sistema de ragraven-quing de puntuacions del joc deixaria de ser local per a ser global i es va concloure desenvolupar un guioacute per al mode historia el qual inclou diagravelegs amb humor entre altres

Es poden trobar la totalitat de lrsquoentrevista al document adjunt ldquoEntrevista amb un Psicogravelegrdquo i el guioacute final al document adjunt Desenvolupament del Jocrdquo a lrsquoapartat 212 ldquoLlibret i guioacuterdquo

62 Resum del Joc

El funcionament principal del videojoc eacutes semblant al joc de Pong [25] perograve respectant certes distagravencies Tot i que el joc compta amb 10 escenaris amb les seves progravepies caracteriacutestiques si meacutes no la mecagravenica principal del joc

NIL PASCUAL FERNAacuteNDEZ CREACIOacute DrsquoUN VIDEOJOC MOgraveBIL ADDICTIU 5

consta drsquouna pala de joc que lrsquousuari mouragrave horitzontal-ment per a evitar que una pilota caigui al terra Tambeacute compta amb tres murs als marges de la pantalla que a part de sumar punts quan siguin tocats amb la pilota canviaran de color segons els cops consecutius que han sigut golejats Si superen els 3 cops consecutius el mur en quumlestioacute desapareixeragrave fent impossible el seu contacte amb la pilota A meacutes diferents objectes apareixeran alea-tograveriament durant la partida per a oferir-nos efectes espe-cials que ens ajudaran o ens faran la partida meacutes compli-cada durant un cert temps

Al acabar cada partida obtindrem una puntuacioacute que es mostraragrave en un marcador de puntuacions per a compa-rar-la amb la dels nostres amics A part tota la informacioacute del joc es guardaragrave al dispositiu guardant el progreacutes en tot moment

Tot i que hem dit abans que el joc compta amb 10 es-cenaris diferents aquests es divideixen en dos modes de joc Historia i Lliure

El mode historia compta amb una petita trama que in-volucraragrave al jugador per a salvar el planeta on lrsquoobjectiu seragrave acabar amb els diferents enemics dels 5 nivells que amenaccedilaran al jugador

Lrsquoobjectiu del mode lliure seragrave en canvi aconseguir la magravexima puntuacioacute possible drsquoentre 5 modes de joc de mecagraveniques i dificultats diferents

Tot el progreacutes que aconseguim al joc es plasmaragrave en forma de monedes que podrem invertir per a personalit-zar amb diferents aspectes els objectes del joc

63 Presa de Requisits

Un cop fet lrsquoestudi per a elaborar el document de re-quisits srsquohan consultat moltes fonts drsquoinformacioacute [15] [16] historia dels videojocs [4] jocs semblants arquitectures de hardware que podria suportar el joc [5] estagravendards de desenvolupament documents de requisits[6] i documen-tacioacute[17] [18] [20] Vull tornar a destacar la importagravencia de lrsquoentrevista per a poder realitzar correctament aquest document oferint uns objectius clars Amb aquest treball fet vaig comenccedilar a redactar els requisits que es troben al ldquoCAPIacuteTOL 1rdquo del document adjunt ldquoDesenvolupament del jocrdquo Aquest conteacute molts apartats entre ells dos de clau

- Els requeriments del sistema On es parla sobre el propogravesit del sistema a desenvolupar el seu objec-tiu principal i les seves funcions Aquest apartat conteacute aspectes molt concrets del desenvolupa-ment com que el joc seragrave desenvolupat en castellagrave la connectivitat o requeriments de hardware miacute-nims per al funcionament del joc i conteacute un petit estudi sobre la restriccioacute drsquoedat del joc PEGI 3 Finalment conteacute una llista completa tant dels re-queriments funcionals del sistema com dels no funcionals on srsquoexplica detalladament cada funcioacute que podragrave oferir el joc com per exemple el mode historia

o Suportaragrave 5 escenaris diferents o Inclouragrave un tutorial interactiu amb

lrsquousuari o A cada escenari apareixeragrave un enemic di-

ferent amb habilitats moviments i IA propis

- Lrsquoanagravelisi del sistema En aquesta segona seccioacute clau del document a partir de la llista de requeri-ments esmentada en lrsquoapartat anterior es fa una anagravelisi preliminar del producte resumint totes les funcionalitats que contindragrave i els efectes que pro-duiragrave cada una en el transcurs de lrsquoaplicacioacute A partir drsquoaquesta primera anagravelisi srsquohan elaborat diferents diagrames de casos drsquouacutes on es poden veure molt visualment les interaccions que pot fer lrsquousuari amb el sistema

Fig 2 Diagrama de Navegar per la tenda

Com veiem a la Figura 2 drsquoexemple podem observar

totes les opcions drsquointeraccioacute que teacute lrsquousuari un cop estagrave dins la botiga Es poden trobar tots els casos drsquouacutes al do-cument adjunt ldquo Desenvolupament del Jocrdquo a lrsquoapartat 122 ldquoCasos drsquouacutesrdquo

Finalment a partir dels diagrames de casos drsquouacutes srsquoha elaborat una fitxa com la de la figura 3 de cada un on eacutes detalla les precondicions que srsquohan de complir pregravevia-ment per a que aquest es pugui dur a terme lrsquoiniciador que executa aquest cas drsquouacutes i el curs drsquoaccions que ocor-reran a partir drsquoaquest iniciador

Nom del Cas drsquoUacutes Comprar una textura per la pilota

Requeriment(s) Explorat(s) 681516

Precondicioacute(ns)

- Lrsquousuari ha seleccionat lrsquoopcioacute del menuacute ldquoTendardquo

Iniciador(s) Lrsquousuari ha polsat sobre el botoacute de tenda

Curs drsquoAccioacute Principal

1 Lrsquousuari selecciona la tenda de la pilota

2 Lrsquousuari fa scroll fins a seleccionar una textura que li agradi i

la polsa

3 Es comprova si ja teacute comprada aquesta textura (no la teacute)

4 Es comprova si teacute suficients monedes per adquirir la textura

(en teacute)

5 Lrsquousuari adquireix la textura srsquoelimina el seu preu per a in-

dicar-ho i es carrega la textura a la pilota de mostra de la ten-

da i a la que utilitzarem en qualsevol partida

Curs(os) Alternatiu drsquoAccioacute

3b Es comprova si ja teacute comprada aquesta textura (si la teacute)

4b Es carrega la textura a la pilota de mostra de la tenda i a la que

utilitzarem en qualsevol partida

4c Es comprova si teacute suficients monedes per adquirir la textura

(no en teacute)

5c Es mostra un aviacutes que lrsquousuari no teacute suficients monedes i no

es desbloqueja la textura

Fig 3 Descripcioacute Cas drsquouacutes ldquoComprar textura per la pilotardquo

6 EEUAB TFG INFORMAgraveTICA CREACIOacute DrsquoUN VIDEOJOC MOgraveBIL ADDICTIU

64 Disseny i Test

Un cop redactats els requisits vaig passar a redactar el ldquoCAPIacuteTOL 2 DISSENY I CONSTRUCCIOacute DEL VIDEO-JOCrdquo que conteacute les seguumlents seccions clau

- Disseny Artiacutestic Conteacute tota la informacioacute per a en-tendre el concepte artiacutestic del videojoc Tota la his-toria en la que es desenvolupa aixiacute com un guioacute complet de tots els diagravelegs del mode historia entre altres Una seccioacute interessant que apareix eacutes la explicacioacute dels controls que hauragrave drsquoutilitzar lrsquousuari i perquegrave srsquohan fet aixiacute on es concreta que el joc nomeacutes con-tindragrave dos tipus de moviments el toc amb el dit i lrsquoscroll lateral Al simplificar el joc a dos tipus de moviments srsquoaconsegueix molta senzillesa que a nivell pragravectic es tradueix a un facilitat molt gran en lrsquoaprenentatge drsquouacutes Finalment conteacute una descripcioacute completa de tots els boosts(objectes aleatoris) que intervenen a les partides i els efectes que tindran

- Disseny del Software En aquesta seccioacute srsquoha desenvolupat un diagrama de classes i escenes a partir de tots els casos drsquouacutes Srsquoha optat per incloure les escenes (progravepies del motor Unity) dins drsquoaquest diagrama ja que proporcionen molta meacutes facilitat a lrsquohora drsquoentendre la relacioacute de les classes ja que algunes no intervenen entre siacute directament sinoacute a partir drsquouna escena especiacutefica

Fig 4 Diagrama de classes i escenes

Amb el diagrama definit es descriuen la funcionalitats de cada classe junt amb els seus atributs propis i les funcions que la formen

Definides les funcions de les classes srsquohan descrit els diagrames de sequumlegravencia molt importants per a observar el flux de les diverses accions directes que pot realitzar lrsquousuari amb la interfaccedil I en consequumlegravencia com reacciona el motor a partir de cada accioacute amb les escenes arxius de

guardat i els serveis de google Ha sigut molt uacutetil per a realitzar un desenvolupament correcte

Fig 5 Diagrama de Sequumlegravencia de la primera execucioacute del Joc

La seccioacute inclou un esboacutes de tota la interfaccedil que interactua amb lrsquousuari Per aconseguir un bon resultat drsquoaquesta es van preparar unes imatges que reconstruiumlen la interfaccedil i es va fer un first-click test [7] amb lrsquoeina web lsquoopti-malworkshoprsquo A causa de la versioacute gratuiumlta srsquohan realitzat 3 estudis dife-rents ja que lrsquoeina limitava la quantitat de preguntes per estudi [8] [9] [10] Gragravecies a aquesta eina amb cada estudi realitzat hem obtingut uns resultats molt visuals que ens han servit per conegraveixer realment si els menuacutes estaven ben estructurats El resultat com podem veure a les imatges de la seccioacute A2 i A3 del apegravendix ha sigut molt satisfactori i no srsquoha necessitat de realitzar cap canvi a la interfaccedil de lrsquousuari Podem dir que el plantejament drsquouna interfaccedil molt senzi-lla i intuiumltiva ha sigut correcte

- Implementacioacute del software Per acabar questa

seccioacute conteacute tots els elements artiacutestics que interve-nen en el joc (models 3D sprites) totes les escenes i la icona que es mostraragrave a la play store

65 Desenvolupament de LrsquoAplicacioacute

651 Implementacioacute del Menuacute Principal

Respecte a la implementacioacute del videojoc es va comenccedilar per elaborar el menuacute principal Per fer-ho es va iniciar el desenvolupament del script ldquoGameManagerrdquo Srsquoha de dir que tots els components visuals del joc srsquohan creat dins drsquouna estructura canvas [13] de Unity per a crear una interfaccedil responsive [12]

Script GameManager Per a crear aquest script encarregat de guardar totes les dades srsquoha utilitzat els PlayerPrefs [14] de unity Soacuten funcions del tipus clau-valor on amb un id pots guardar un valor a un espai de memograveria del dispositiu Aquest GameManager com srsquoexplica a la documentacioacute

NIL PASCUAL FERNAacuteNDEZ CREACIOacute DrsquoUN VIDEOJOC MOgraveBIL ADDICTIU 7

del desenvolupament del joc srsquoencarrega tant de crear lrsquoarxiu de guardat quan srsquoinicialitza per primer com el joc com de carregar els valors drsquoaquests un cop ja srsquoha jugat meacutes drsquoun cop Amb el GameManager com a estructura principal srsquoha comenccedilat a desenvolupar lrsquoescena del Menuacute principal Escena lsquoMenuacutersquo ndash Menuacute principal Per aquest menuacute principal que veiem a la figura 6 es buscava una sensacioacute drsquoimmersioacute al joc que et fes sentir a lrsquoespai Per aixograve es va decidir dividir les 4 parts principals drsquoaquest menuacute Menuacute principal mode lliure mode histo-ria i botiga en diferents punts de lrsquoespai 3D formant una circumferegravencia Aixograve ha permegraves desenvolupar la seguumlent foacutermula per a la cagravemera de joc que ofereix una sensacioacute de flotar a lrsquoespai cameraTransformrotation = QuaternionSlerp (camera-TransformrotationcameraDesiredLookAtrotation CAMERA_TRANSITION_SPEED TimedeltaTime) Amb aquesta foacutermula estem assignant al valor de rotacioacute de la cagravemera del joc una nova rotacioacute entre la seva posi-cioacute actual (cameraTransformrotation) i la posicioacute destiacute (cameraDesiredLookAtrotation) Gragravecies a la funcioacute slerp() realitzaragrave un moviment molt lleuger seguint la velocitat que li indiquem Per a veure millor aquest efecte de cagravemera es pot consul-tar el viacutedeo adjunt ldquoDEMO_GRAVITY_PONGrdquo

Escena lsquoMenuacutersquo ndash Mode Lliure El seguumlent pas ja amb la cagravemera a punt ha sigut desenvo-lupar el llistat de nivells del mode lliure que trobem a la figura 7 Ha sigut una decisioacute difiacutecil i bastant creativa ja que es volia una llista de nivells molt visual i vaig decidir mostrar els nivells com a imatges Investigant vaig trobar que mitjanccedilant codi pots trobar i guardar a variables els sprites que estiguin dins de la carpeta que crea unity de ldquoResourcesrdquo Amb aquesta tegravecnica i un Scroll Rect [11] podem passar els nivells amb un scroll lateral Despreacutes srsquoha afegit la imatge i el text dels tiquets a la part inferior del nivell i el regravecord del nivell a sobre drsquoaquest Per finalitzar srsquoha creat el botoacute de tornar per a que la cagravemera torni a rotar fins la posicioacute del menuacute principal Escena lsquoMenuacutersquo ndash Botiga La botiga com observem ala figura 8 manteacute una estruc-tura semblant al llistat de nivells perograve amb diferegravencies notables En comptes de carregar varies imatges carrega una imat-ge sencera amb totes les textures i la divideix en textures de 256x256 per a una millor optimitzacioacute Teacute un indica-dor monedes del joc i teacute un botoacute extra per a canviar entre la tenda de textures de la pilota i de la lluna de joc

Fig 6 Menuacute Principal

Fig 7 Mode lliure

Escena lsquoMenuacutersquo ndash Mode Histograveria El llistat de nivells del mode histograveria no utilitza la tegravecnica de cagraverrega de imatges pels nivells sinoacute que srsquohan utilitzat uns models gratuiumlts de planetes 3D Cada planeta forma un nivell amb el seu nom i el seu regravecord de temps propi Un cop acabada tota la visual de lrsquoescena del menuacute srsquoha creat el script que el gestionaria anomenat ldquoMainMenurdquo

Fig 8 Botiga

Figura 9 Mode Histograveria

Script MainMenu Aquest script srsquoencarrega de carregar i gestionar els com-ponents de lrsquoescena del menuacute del llistat de nivells i la botiga Primer de tot carrega gragravecies als playerPrefs guardats tots els textos de regravecords de puntuacioacute de cada nivell els tiquets les monedes i les textures comprades de la pilota i lluna de joc que lrsquousuari havia obtingut Srsquoha creat un sistema tant per al llistat de nivells com a la botiga de bloqueig on al llistat de nivells es bloquegen tots els botons dels jocs menys del primer fins que en aquest no srsquohagi obtingut una puntuacioacute miacutenima de 5 i a la botiga es guarda una matriu de desbloquejos que indica quines textures srsquohan comprat i ja no apareixeragrave el seu preu i quines no Tambeacute srsquoencarrega de a la botiga mostrar com quedaria la textura comprada a la pilota o a la lluna de joc i apli-car-la per a quan juguem qualsevol partida Aquest script tambeacute carrega la muacutesica del menuacute

8 EEUAB TFG INFORMAgraveTICA CREACIOacute DrsquoUN VIDEOJOC MOgraveBIL ADDICTIU

Script History_Levels Aquest script srsquoencarrega de la gestioacute del menuacute ldquoHISTO-RIArdquo Srsquoha creat un sistema de visualitzacioacute on el jugador can-via de nivell mitjanccedilant dues fletxes i un jugador no po-dragrave accedir a un nivell fins que hagi completat lrsquoanterior Junt amb aquest sistema de bloqueig segons el nivell on es situiuml el jugador es mostraragrave el millor temps en que lrsquoha acabat (si es que hi ha) i el nom del nivell Amb aquests components descrits fins ara ja tindriacuteem tot el menuacute principal acabat Un cop acabat el menuacute srsquoha passat a crear els nivells del mode lliure

652 Implementacioacute del Mode Lliure

El mode lliure consta de 5 nivells amb mecagraveniques de joc variants perograve compartint lrsquoestructura principal del joc Per a explicar com srsquoha desenvolupat aquest mode srsquoutilitzaragrave de referegravencia el mode de joc ldquoCLASSICrdquo el mode de joc original on primer srsquoexplicaran els compo-nents de lrsquoescena i despreacutes els scripts que la componen Una part molt important drsquoaquestes escenes eacutes el disseny seguint el esquema senzill i visual del joc srsquoha passat per diversos plantejaments murs reals una barra plana Finalment despreacutes drsquoun extens plantejament es va deci-dir aplicar el disseny que veiem a la figura 10 En aquest disseny podem observar que els murs soacuten llums LED Aquesta decisioacute srsquoha considerat la millor ja que oferia tota la informacioacute que necessita el jugador dels murs sense ser un objecte molt gran i amb molt detall Finalment srsquohan utilitzat imatges de la temagravetica espacial per a completar el fons de lrsquoescena Escena CLASSIC Lrsquoescena drsquoaquest mode de joc la componen directament la pilota la lluna de joc els murs de joc la puntuacioacute el menuacute de pausa i els tiquets disponibles Perograve realment hi ha molts meacutes components secundaris que no srsquoentraragrave en detall a explicar-los perograve que valia la pena mencionar-los com uns murs secundaris invisibles que srsquoutilitzen per detectar si el jugador perd quan ha destruiumlt un mur ob-jectes que solament es mostren quan srsquoagafa un boost llums que segueixen els objectes per crear un efecte pri-mer pla la interfaccedil del menuacute de pausa Presentats aixiacute els components de lrsquoescena eacutes meacutes interes-sant veure els scripts que afecten a aquests components Script ClassicBall Aquest script que controla la pilota eacutes el meacutes important de lrsquoescena ja que gestiona tot el que pot tenir contacte amb ella La funcioacute meacutes important drsquoaquest script eacutes sens dubte OnCollisionEnter() Aquest funcioacute nativa de Unity ser-veix per a gestionar quan lrsquoobjecte topa amb un altre objecte Quan la pilota topa amb un mur detecta quin eacutes

i segons el seu color actual li canviaragrave el seu color al que toqui i suma un punt Si la pilota topa amb la lluna de joc simplement augmen-taragrave la seva velocitat Si topa amb el forat negre de la part inferior o traspassa un mur destruiumlt srsquoencarrega de parar la partida i la muacutesica mostrar el menuacute de derrota afegir a les monedes totals del jugador les guanyades aquella partida i canviar el regravecord de puntuacioacute del nivell si srsquoha superat

Fig 10 Escena CLASSIC

Fig 11 Efecte de Boost de Gel

Script ClassicPad Aquest script simplement srsquoencarrega de la gestioacute del moviment de la lluna de joc Detecta si el jugador estagrave polsant a sobre drsquoella i es mou en consequumlegravencia Per al mode histograveria srsquoencarrega de si un projectil topa amb ella parar la partida i mostrar el menuacute de derrota Script Pause Menu Aquest script com el seu nom indica gestiona tot el me-nuacute de pausa Que quan es polsi a sobre del botoacute de pausa es pari el joc i es mostri la interfaccedil que quan polsem sobre lsquoreprendrersquo la partida actual segueixi on estava que es torni al menuacute o que es surti de la partida Script Boosts Aquest script srsquoencarrega drsquoinvocar un objecte aleatori que apareix cada x segons aleatograveriament per pantalla un cert temps Segons el boost es produeix un efecte diferent Per fer aixograve se li ha assignat el script a una imatge i srsquoha jugat amb el seu render (el component que fa que es mos-tri la imatge) Gragravecies a la funcioacute TimeTimeSinceLevelLoad que ens proporciona el temps que ha passat des de que srsquoha carregat el nivell sabem quan fer invisible o no lrsquoobjecte Aixiacute creat lrsquoalgoritme que mostra una imatge aleatograveriament drsquouna llista drsquoimatges sempre que no hi hagi un boost funcionant Ara amb un switch case segons la imatge que srsquoestagrave mos-trant crida a la funcioacute del boost que toca per a que realitzi lrsquoefecte adequat Un bon exemple eacutes el boost de gel que al collir-lo com veiem a la figura 11 mostra a tots els murs que no hagin sigut destruiumlts una imatge de neu que impedeix destruir-los

NIL PASCUAL FERNAacuteNDEZ CREACIOacute DrsquoUN VIDEOJOC MOgraveBIL ADDICTIU 9

Es poden trobar tots els boosts i efectes a lrsquoapartat 215 del document adjunt ldquoDesenvolupament del Jocrdquo Amb tots aquests components ja es podria jugar una par-tida ldquoCLASSICrdquo del mode lliure Per a construir els altres nivells del mode lliure srsquoha jugat amb potenciar o extreure aquestes funcions descrites per proporcionar un altre tipus de joc

bull Escena Double Trouble Aquiacute srsquoha duplicat la pilota de joc i srsquoha adaptat lrsquoentorn per a que el nivell sigui jugable

bull Escena Faster Aquest mode es juga al doble de la velocitat normal de joc utilitzant la funcioacute Ti-meTimeScale = 2 que duplica el temps

bull Escena Insight Aquest mode es juga sense veure els components del joc el jugador nomeacutes veu una estela que indica el moviment de la pilota i la lluna de joc

bull Escena Relax En aquest mode on nomeacutes es perdragrave la partida si aquesta cau al forat negre inferior Els murs mai poden ser destruiumlts i no apareixen boosts

653 Implementacioacute del Mode Histograveria

Per a aquest mode srsquoha utilitzat com a base lrsquoestructura del nivell ldquoCLASSICrdquo del mode lliure Amb aquesta es-tructura srsquohan eliminat els boosts i el marcador de pun-tuacioacute Consta drsquoun objectiu totalment diferent al mode lliure no volem aconseguir la major puntuacioacute sinoacute que volem destruir la nau enemiga i si pot ser en el menor temps possible Script Dialog Primerament srsquoha creat un sistema de diagravelegs en el que seguint el guioacute descrit al document adjunt ldquoDesenvolu-pament del Jocrdquo apartat 212 dos personatges ens ense-nyen a jugar a lrsquohora que ens narren una divertida histograve-ria Dit aixograve srsquoha creat un sistema drsquoescriptura on segons unes frases donades srsquoescriu lletra per lletra aconseguint lrsquoefecte de narracioacute dels videojocs Quan comprovem que srsquoha mostrat tota la frase per pan-talla mostrem un botoacute per a continuar amb la conversa i un altre botoacute per a saltar el diagraveleg i comenccedilar a jugar Agafant la primera lletra de la frase amb la funcioacute subs-tring() sabrem si quin personatge parla i hem de mostrar Script History_Ball La pilota srsquoha hagut drsquoadaptar a tots els nous compo-nents A meacutes srsquoha creat un sistema per a mostrar en tot mo-ment el temps que ha passat des de lrsquoinici del nivell Per fer-ho srsquohan utilitzat 2 variables pels minuts i segons Aixograve ha permegraves visualitzar amb meacutes comoditat el format de temps ldquominuts segonsrdquo amb la funcioacute toString()

permetent realitzar les comparacions de temps correcta-ment Script Launcher Aquest script srsquoencarrega un model de miacutessil que li indi-quem i crear una instagravencia drsquoaquest davant la nau amb una certa velocitat dirigit cap a la part inferior de la pan-talla Per aconseguir-ho srsquoutilitza un objecte auxiliar a lrsquoescena lsquoFirePointrsquo que eacutes situat sempre davant la nau on srsquoinstanciaragrave el model del miacutessil amb un cert impuls Po-dem visualitzar aquest sistema a la figura 12 Script ProjectileCollision Aquest script srsquoencarrega solament de destruir el miacutessil quan topi amb un objecte que no sigui la lluna de joc Eacutes un script per a optimitzar el rendiment del joc Un cop descrits els scripts en comuacute per a tots els nivells passem als scripts que a cada nivell soacuten diferents perograve que srsquoutilitzen per a una mateixa causa la gestioacute de la nau enemiga

bull Capiacutetols 1 i 2 Els capiacutetols 1 i 2 comparteixen el ma-teix moviment de la nau Aquest script mou la nau seguint un moviment aleatori Lrsquoalgorisme consisteix en que srsquoescull un punt aleatori a arribar i quan srsquoarriba srsquoescull un altre

bull Capiacutetol 3 Al tercer capiacutetol eacutes on veiem per primer cop una intelmiddotligegravencia artificial en el moviment de la nau aquesta fugiragrave de la pilota Per fer-ho srsquoha divi-dit el nivell en dues zones dreta i esquerra quan la pilota estigui a la zona de la dreta la nau es mouragrave a lrsquoesquerra i a la inversa Per a que no sigui impossi-ble tocar-la srsquoha ajustat la velocitat del seu movi-ment adequadament

bull Capiacutetol 4 Al quart capiacutetol la nau ja consta drsquouna intelmiddotligegravencia artificial meacutes avanccedilada en la que es mou segons a on la pilota estigui situada Lrsquoalgorisme consisteix en tenir la posicioacute de la pilota en tot moment i srsquoha dividit lrsquoespai de la partida en 4 quadrats com podem veure a la figura 13 Si la pilota estagrave al quadrat 1 la nau es mouragrave al qua-drat contrari el 4 Si la pilota es situa al quadrat 2 la nau es mouragrave al quadrat 3 Per a que no fos impossi-ble topar amb la nau srsquoha drsquoajustat la velocitat del moviment

bull Capiacutetol 5 Al capiacutetol final lrsquoalgoritme consta del ma-teix moviment que al nivell anterior perograve afegint un extra que si la nau es troba en el mateix quadrat que la pilota en el mateix instant de temps la nau redui-ragrave el seu tamany complicant lrsquoobjectiu drsquoaconseguir destruir-la

10 EEUAB TFG INFORMAgraveTICA CREACIOacute DrsquoUN VIDEOJOC MOgraveBIL ADDICTIU

Fig 12 Nau amb lrsquoobjecte lsquoFire-

Pointrsquo

Fig 13 Divisioacute de quadres nivells 4 i 5

Per a veure visualment com funcionen les funcions expli-cades en aquest apartat es pot consultar el viacutedeo adjunt ldquoDEMO_GRAVITY_PONGrdquo

66 Proves

Gragravecies a la metodologia de desenvolupament de Rapid Prototyping srsquoha pogut anar testejant cada mogravedul desen-volupat al moment aixiacute extraient tots els resultats de tests ragravepidament Srsquohan realitzat 4 tipus de proves diferents

bull A les proves drsquounitat srsquoha testejat que els diferents mograveduls del sistema funcionin correctament Com que si un miacutessil drsquouna nau enemiga glopeja la lluna de joc es mostra el menuacute correcte o si tenim les su-ficients monedes per a comprar una textura la po-dem comprar satisfactograveriament entre altres

bull A les proves drsquointegracioacute srsquoha testejat que les in-teraccions entre els diferents escenaris del sistema sigui correcte Srsquoha provat que es pugi accedir a tots els nivells del videojoc i que des de aquests es pu-gui tornar correctament al menuacute principal a traveacutes del menuacute de pausa

bull Les proves de validacioacute han servit per comprovar que hem complit amb els requisits del projecte Hem testejat el correcte log in amb google la visualitzacioacute dels marcadors i la visualitzacioacute dels objectius entre altres

bull Per acabar les proves de sistema han servit gragravecies a la developer console [24] comprovar que el joc srsquoha executat correctament variant els dispositius i versions drsquoAndroid

A lrsquoapartat 31 del document adjunt ldquoDesenvolupament del Jocrdquo es poden trobar la totalitat de les proves realitza-des de cada tipus amb els seus resultats corresponents

7 CONCLUSIONS

I ja per finalitzar aquest document explicareacute quines soacuten les conclusions que he extret sobre el projecte Primer de tot crec que la planificacioacute que vaig realitzar a

lrsquoinici ha sigut lrsquoencertada Les petites alteracions que srsquohan acabat realitzant (com podem veure en el diagrama de Gantt real de lrsquoapegravendix 2) han estat meacutes enfocades a avanccedilar lrsquoinici de les tasques que no pas a endarrerir-les a causa de la situacioacute excepcional que hem viscut

Respecte a la fase drsquoimplementacioacute considero que

srsquohan completat tots els objectius que es presentaven a lrsquoinici del projecte Srsquohan desenvolupat totes les funcions que es van proposar al document de requisits amb lrsquoajuda de la psicograveloga que havia de tenir el joc per a que es considereacutes addictiu i aixiacute ha sigut Per lo que podem concloure que hem desenvolupat un joc addictiu per a Android satisfactograveriament A meacutes srsquoha de dir que lrsquoaplicacioacute eacutes responsive [12] i molt fagravecilment escalable

I com a uacuteltim punt voldria comentar que mrsquohagueacutes

agradat disposar de meacutes temps i recursos per a millorar tot lrsquoaspecte visual de lrsquoaplicacioacute encara meacutes fins a arribar a apropar-se al nivell de mitjanes produccions aquest aspecte milloraria lrsquointeregraves per al joc

71 Futures Accions

A continuacioacute detallarem aquelles accions futures que he considerat que pot ser interessant desenvolupar en prograveximes ampliacions del joc per tal que lrsquoexperiegravencia drsquouacutes dels usuaris sigui la millor possible

bull Un tutorial molt meacutes visual que es mostri el primer cop que srsquoiniciiuml lrsquoaplicacioacute on no solament srsquoexpliqui sobre la mecagravenica del joc sinoacute que tambeacute es guiiuml a lrsquousuari a traveacutes dels menuacutes la interfaccedil i els diferents modes i nivells de joc

bull Una integracioacute drsquoalgun mode de joc online on es po-gueacutes competir contra un altre jugador en temps real oferiria molt drsquoatractiu i enriquiria molt lrsquoaplicacioacute

bull Per acabar com ja hem comentat una millora visual en la que no mrsquohe pogut centrar en especial durant el projecte on amb lrsquoajuda drsquoalgun professional en la mategraveria es crearien unes visuals progravepies per al joc

8 AGRAIumlMENTS

En primer lloc mrsquoagradaria agrair a la meva famiacutelia el suport incondicional que mrsquohan donat en tot moment durant els quatre anys que porto de carrera Sense ells res de tot aixograve hauria estat possible

Tambeacute mrsquoagradaria agrair la Gemma Saacutenchez la meva tutora del TFG pels consells i lrsquoajuda que mrsquoha ofert du-rant aquests mesos tant durs i especials de projecte insis-tint en quegrave treballes ben dur des del primer dia ha per-megraves que aquest treball hagi pogut tirar endavant amb meacutes facilitat

Finalment voldria agrair a les altres persones que han fet aquest treball possible des de la psicograveloga experta que ens va ajudar a definir molt beacute els requisis fins a tots els companys i amics que han treballat com a testers del joc trobant lsquobugsrsquo i fent propostes sobre possibles millores drsquoaquest

NIL PASCUAL FERNAacuteNDEZ CREACIOacute DrsquoUN VIDEOJOC MOgraveBIL ADDICTIU 11

IacuteNDEX DE FIGURES

Fig 1 lsquoRapid Prototypingrsquo3

Fig 2 Diagrama de Classes lsquoNavegar per la Tendarsquo5

Fig 3 Descripcioacute Cas drsquouacutes ldquoComprar textura pilotardquo6

Fig 4 Diagrama de Classes i Escenes6

Fig 5 Diagrama de Sequumlegravencia 1a Execucioacute6

Fig 6 Escena Menuacute Principal7

Fig 7 Escena Mode Lliure7

Fig 8 Escena Botiga8

Fig 9 Escena Mode Histograveria8

Fig 10 Escena lsquoCLASSICrsquo8

Fig 11 Efecte Boost de Gel8

Fig 12 Nau amb objecte lsquofirepointrsquo10

Fig 13 Divisioacute de quadres nivells 4 i 510

REFEREgraveNCIES

[1] Desenvolupament lsquoRapid prototypingrsquo httpseswikipediaorgwikiModelo_de_prototipos

[2] Article de lrsquoaddiccioacute als videojocs httpspsicologiaymentecomclinicaadiccion-a-videojuegos

[3] Per quegrave enganxen els videojocs httpswwwlavanguardiacomestilos-de-vida2012062954317381414por-que-enganchan-los-videojuegoshtml

[4] Historia dels Videojocs httpswwwfibupceduretroinformaticahistoriavideojocshtml

[5] Requisits miacutenims Candy Crush Saga httpswwwmicrosoftcomes-espcandy-crush-sa-ga9nblggh18846activetab=pivotregionofsystemrequirementstab

[6] Document SRS drsquoexemple httpswwwdocsitycomesejemplo-de-documento-srs4930539

[7] El lsquoFirst clickrsquo test httpsusabilityhubcomguidesfirst-click-testing

[8] Quumlestionari lsquoFirst clickrsquo test I httpsowsiocm7v7lx3h4

[9] Quumlestionari lsquoFirst clickrsquo test II httpsowsiocmj6574121

[10] Quumlestionari lsquoFirst clickrsquo test III httpsowsiocm7df25ouc

[11] Scroll Rect de Unity httpsdocsunity3dcomes20184Manualscript-ScrollRecthtml

[12] Disseny Responsive httpswww40defiebrecomque-esdiseno-responsi-ve~text=El20disentildeo20web20responsive20o3B20ordenador2C20tablet2C20smartphonehellip

[13] Canvas de Unity httpsdocsunity3dcomescurrentManualUICanvashtml

[14] Playerprefs de Unity httpsdocsunity3dcomescurrentScriptReferencePlayerPrefshtml

[15] ldquoDisseny de Softwarerdquo Assignatura del grau que ha ser-

vit de font bagravesica dels coneixements aplicats tant a An-droid com als tests amb usuaris La seva guia docent la trobem disponible a httpsdocsunity3dcomManualUnityManualhtml

[16] ldquoTest i Qualitat del Softwarerdquo Assignatura del grau que ha servit de font bagravesica dels coneixements aplicats per als tests del codi La seva guia docent la trobem disponible a httpsguiesuabcatguies_docentspublicportalhtml2019assignatura102758ca

[17] ldquoDocumentacioacuten de Unityrdquo Documentacioacute completa del motor gragravefic lsquoUnityrsquo que srsquoha anat consultant en tot mo-ment del desenvolupament httpsdocsunity3dcomManualUnityManualhtml httpswwww3schoolscomcs

[18] ldquoStack Overflowrdquo Fograverum de preguntes i respostes rela-cionades amb el moacuten de la programacioacute i la informagravetica Srsquoha anat consultant durant la fase drsquoimplementacioacute Al-gunes de les pagravegines que voldria destacar

o Text borroacutes a Unity httpsstackoverflowcomquestions16506737unity3d-3d-text-always-displayed-blur16507861

o Sing-In Google httpsstackoverflowcomquestions59599895problems-with-google-sign-in-in-unity

[19] ldquoComo firmar tu apprdquo Documentacioacute per a desenvolupa-dors Android sobre com signar una aplicacioacute per a que totes les funcions de google funcionin correctament httpsdeveloperandroidcomstudiopublishapp-signinggoogle-play-app-signing

[20] ldquoUnity Ads Documentationrdquo Documentacioacute sobre el sis-tema de publicitat de unity utilitzat a lrsquoapp httpsdocsunity3dcomPackagescomunityads34manualindexhtml

[21] ldquoGoogle play games plugin for unityrdquo Plugin per a unity per a poder utilitzar totes les funcions de google play games httpsgithubcomplaygameservicesplay-games-plugin-for-unity

[22] ldquoFlaticonrdquo Web de recursos gratuiumlts drsquoon srsquohan descarre-gat els sprites que srsquoutilitzen al joc httpswwwflaticones

[23] ldquoUnity Asset Storerdquo Web de recursos gratuiumlts de unity drsquoon srsquohan descarregat els models dels planetes que srsquoutilitzen al joc entre altres httpsassetstoreunitycomgclid=CjwKCAjwlZf3BRABEiwA8Q0qq9NcH2nCMrUHDdQUrV0K7dNiZD6JMAy7G8x93NPLzD3wZKmhiK1MQBoCvR0QAvD_BwE

[24] ldquoAyuda de Play Consolerdquo Documentacioacute sobre al play console plataform on es puja lrsquoaplicacioacute per a que es vi-sualitzi a la play store que srsquoha consultat quan han sorgit problemes httpssupportgooglecomgoogleplayandroid-developerhl=estopic=3450769

[25] ldquoPongrdquo Primer videojoc de la histograveria httpseswikipediaorgwikiPong~text=Pong20(o20Tele-Pong)mesa20(o20ping20pong)

[26] ldquoFlappy Birdsrdquo httpseswikipediaorgwikiFlappy_Bird

[27] ldquoCandy Crushrdquo httpswwwxatakamovilcommovil-y-sociedadcandy-crush-saga-la-ciencia-detras-de-la-adiccion

12 EEUAB TFG INFORMAgraveTICA CREACIOacute DrsquoUN VIDEOJOC MOgraveBIL ADDICTIU

APEgraveNDIX

A1 DIAGRAMA DE GANTT DE LA PLANIFICACIOacute INICIAL

A1 Diagrama de Gantt corresponent a la planificacioacute inicial del projecte En aquest diagrama podem veure les diferents tasquesetapes de desenvolupament amb les setmanes que es va planificar destinar a cada una

A2 SECCIOacute DrsquoAPEgraveNDIX

A2 Diagrama de Gantt corresponent a la planificacioacute final del projecte Tal i com podem veure tenim alguns canvis en els temps respecte a la planificacioacute inicial es va acurtar la fase de desenvolupament ja que amb la situacioacute excepcional del paiacutes srsquoha disposat de molt meacutes

temps per al desenvolupament lo qual ha permegraves avanccedilar el pas a produccioacute i la documentacioacute del projecte

NIL PASCUAL FERNAacuteNDEZ CREACIOacute DrsquoUN VIDEOJOC MOgraveBIL ADDICTIU 13

A3 RESULTAT DEL ESTUDI DE DISSENY ndash TASCA 1

A3 Resultat Estudi 1 - Tasca 1 Com observem el 90 dels testers han completat lrsquoobjectiu de la tasca

A4 RESULTAT DEL ESTUDI DE DISSENY ndash TASCA 1 (MAPA DE CALOR)

A4 Resultat estudi 1 ndash Tasca 1 (Mapa de Calor) Com podem observar la zona de tocs de dit del 70 dels tocs se centra en el botoacute correcte

14 EEUAB TFG INFORMAgraveTICA CREACIOacute DrsquoUN VIDEOJOC MOgraveBIL ADDICTIU

Page 4: Nil Pascual Fernández - UAB Barcelona · 2020. 9. 2. · llançar la seva primera consola: la Playstation, que tenia un reproductor de CDs, lo qual comportava que els vi-deojocs

4 EEUAB TFG INFORMAgraveTICA CREACIOacute DrsquoUN VIDEOJOC MOgraveBIL ADDICTIU

TAULA 2

COST MONETARI

Rol treballador Cost (euroh) Temps (h) Cost total

(euro)

Project

Manager

50 50 2500

Dissenyador 25 90 2250

Programador 20 150 3000

Tester 20 30 600

TOTAL 300 8350

Per tant el cost final del projecte despreacutes drsquoaplicar un

20 de benefici seria

TAULA 5

COST TOTAL

Tipus de cost Cost (euro)

Cost Directe 8350

Benefici +20

TOTAL 10020

Hem de tenir en compte que el cost final obtingut se-

gurament no seria tant elevat La planificacioacute de les hores srsquoha realitzat tenint en compte que no tinc gaire experiegraven-cia a lrsquohora de treballar en projectes de programacioacute drsquoaquest abast El meacutes probable es que a una empresa especialitzada en el desenvolupament software no li cal-guin tantes hores per a poder assolir els objectius esta-blerts

Al apegravendixs A1 i A2 trobem tota la informacioacute sobre la planificacioacute de les tasques En el primer trobem la planifi-cacioacute inicial que es va realitzar i en el A2 la planificacioacute final que ha sorgit amb les condicions en les que srsquoha treballat

52 Avaluacioacute de Riscos

Un altre aspecte fonamental de la planificacioacute drsquoun projecte eacutes lrsquoavaluacioacute dels possibles riscos que poden comprometre el correcte desenvolupament del projecte Estudiant amb anterioritat quines poden ser les principals amenaces es poden trobar possibles solucions o fins i tot arribar a evitar-los

bull Un dels possibles riscos principals que vagraverem tenir en compte era la falta drsquoexperiegravencia amb el motor gragravefic ja que no srsquohavia treballat dins del grau Per aixograve es va treballar des de un principi en estudiar-lo a partir de la documentacioacute [17] [20] [21] [24]

bull Un segon risc podia ser la lsquono addiccioacute de lrsquoaplicacioacutersquo que aquesta no arribeacutes a ser un entorn que cridi lrsquoatencioacute i caigueacutes en la monotonia i sim-plicitat Per aixograve es va treballar en la presa de re-quisits amb psicograveleg per a que el joc tingueacutes totes les eines drsquoun videojoc drsquoaquesta classe

bull Per acabar un aspecte de risc per a la finalitzacioacute del projecte i molt important que es va tenir en

compte era no aconseguir pujar lrsquoaplicacioacute a la Play Store Degut a la situacioacute actual amb el CO-VID-19 informen a la pagravegina que cada revisioacute pot portar un temps de 7 o meacutes dies degut a questa si-tuacioacute Aquest aspecte incontrolable podia deri-var a la no pujada de lrsquoapp o a no aconseguir pujar una versioacute sense errors importants Per aixograve com veiem a la planificacioacute final al annex A2 srsquoha avan-ccedilat el proceacutes de desenvolupament per a tenir meacutes temps en aquest aspecte

6 DESENVOLUPAMENT

Per a explicar el desenvolupament de lrsquoaplicacioacute amb la magravexima exactitud possible srsquoaniragrave referenciant al docu-ment adjunt ldquoDesenvolupament del Jocrdquo un document de meacutes de 70 pagravegines que conteacute tot tota la informacioacute relacionada amb el projecte de inici a final el qual srsquoha anat redactant paralmiddotlelament amb el transcurs drsquoaquest

61 Estudi sobre lrsquoaddiccioacute

El primer pas per a comenccedilar el projecte ha sigut assegu-rar-se que aquest conteacute els aspectes clau per a que com-pleixi els objectius plantejats Per aconseguir-ho es va formalitzar una reunioacute amb una psicograveloga experta en la mategraveria

La entrevista cal destacar-la com a molt satisfactograveria gragravecies a una bona recerca del tema [2][3] es van quumlestio-nar aspectes generals al psicograveleg com Que eacutes lrsquoaddiccioacute per a tu Consideres que hi ha diferents tipus drsquoaddiccioacute De les que es va extreure una gran perspectiva sobre el punt de vista de lrsquoentrevistat i per exemple es va aconse-guir que definiacutes la nostra aplicacioacute com a tipus drsquoaddiccioacute no destructiva un gran pas ja que era un dels objectius del treball que es classifiqueacutes com a addictiva

Amb altres quumlestions com Quins soacuten els elements clau per considerar un joc addictiu O Quines caracteriacutestiques ha drsquooferir a primera vista per a seguir explorant-lo Srsquoha aconseguit extreure una part emocional molt important de lrsquoaddiccioacute que inclou els sentiments Srsquoha vist que aquests soacuten molt important que es produeixin durant el joc tant si soacuten bons com dolents Gragravecies a aquesta part es van prendre conclusions com que el sistema de ragraven-quing de puntuacions del joc deixaria de ser local per a ser global i es va concloure desenvolupar un guioacute per al mode historia el qual inclou diagravelegs amb humor entre altres

Es poden trobar la totalitat de lrsquoentrevista al document adjunt ldquoEntrevista amb un Psicogravelegrdquo i el guioacute final al document adjunt Desenvolupament del Jocrdquo a lrsquoapartat 212 ldquoLlibret i guioacuterdquo

62 Resum del Joc

El funcionament principal del videojoc eacutes semblant al joc de Pong [25] perograve respectant certes distagravencies Tot i que el joc compta amb 10 escenaris amb les seves progravepies caracteriacutestiques si meacutes no la mecagravenica principal del joc

NIL PASCUAL FERNAacuteNDEZ CREACIOacute DrsquoUN VIDEOJOC MOgraveBIL ADDICTIU 5

consta drsquouna pala de joc que lrsquousuari mouragrave horitzontal-ment per a evitar que una pilota caigui al terra Tambeacute compta amb tres murs als marges de la pantalla que a part de sumar punts quan siguin tocats amb la pilota canviaran de color segons els cops consecutius que han sigut golejats Si superen els 3 cops consecutius el mur en quumlestioacute desapareixeragrave fent impossible el seu contacte amb la pilota A meacutes diferents objectes apareixeran alea-tograveriament durant la partida per a oferir-nos efectes espe-cials que ens ajudaran o ens faran la partida meacutes compli-cada durant un cert temps

Al acabar cada partida obtindrem una puntuacioacute que es mostraragrave en un marcador de puntuacions per a compa-rar-la amb la dels nostres amics A part tota la informacioacute del joc es guardaragrave al dispositiu guardant el progreacutes en tot moment

Tot i que hem dit abans que el joc compta amb 10 es-cenaris diferents aquests es divideixen en dos modes de joc Historia i Lliure

El mode historia compta amb una petita trama que in-volucraragrave al jugador per a salvar el planeta on lrsquoobjectiu seragrave acabar amb els diferents enemics dels 5 nivells que amenaccedilaran al jugador

Lrsquoobjectiu del mode lliure seragrave en canvi aconseguir la magravexima puntuacioacute possible drsquoentre 5 modes de joc de mecagraveniques i dificultats diferents

Tot el progreacutes que aconseguim al joc es plasmaragrave en forma de monedes que podrem invertir per a personalit-zar amb diferents aspectes els objectes del joc

63 Presa de Requisits

Un cop fet lrsquoestudi per a elaborar el document de re-quisits srsquohan consultat moltes fonts drsquoinformacioacute [15] [16] historia dels videojocs [4] jocs semblants arquitectures de hardware que podria suportar el joc [5] estagravendards de desenvolupament documents de requisits[6] i documen-tacioacute[17] [18] [20] Vull tornar a destacar la importagravencia de lrsquoentrevista per a poder realitzar correctament aquest document oferint uns objectius clars Amb aquest treball fet vaig comenccedilar a redactar els requisits que es troben al ldquoCAPIacuteTOL 1rdquo del document adjunt ldquoDesenvolupament del jocrdquo Aquest conteacute molts apartats entre ells dos de clau

- Els requeriments del sistema On es parla sobre el propogravesit del sistema a desenvolupar el seu objec-tiu principal i les seves funcions Aquest apartat conteacute aspectes molt concrets del desenvolupa-ment com que el joc seragrave desenvolupat en castellagrave la connectivitat o requeriments de hardware miacute-nims per al funcionament del joc i conteacute un petit estudi sobre la restriccioacute drsquoedat del joc PEGI 3 Finalment conteacute una llista completa tant dels re-queriments funcionals del sistema com dels no funcionals on srsquoexplica detalladament cada funcioacute que podragrave oferir el joc com per exemple el mode historia

o Suportaragrave 5 escenaris diferents o Inclouragrave un tutorial interactiu amb

lrsquousuari o A cada escenari apareixeragrave un enemic di-

ferent amb habilitats moviments i IA propis

- Lrsquoanagravelisi del sistema En aquesta segona seccioacute clau del document a partir de la llista de requeri-ments esmentada en lrsquoapartat anterior es fa una anagravelisi preliminar del producte resumint totes les funcionalitats que contindragrave i els efectes que pro-duiragrave cada una en el transcurs de lrsquoaplicacioacute A partir drsquoaquesta primera anagravelisi srsquohan elaborat diferents diagrames de casos drsquouacutes on es poden veure molt visualment les interaccions que pot fer lrsquousuari amb el sistema

Fig 2 Diagrama de Navegar per la tenda

Com veiem a la Figura 2 drsquoexemple podem observar

totes les opcions drsquointeraccioacute que teacute lrsquousuari un cop estagrave dins la botiga Es poden trobar tots els casos drsquouacutes al do-cument adjunt ldquo Desenvolupament del Jocrdquo a lrsquoapartat 122 ldquoCasos drsquouacutesrdquo

Finalment a partir dels diagrames de casos drsquouacutes srsquoha elaborat una fitxa com la de la figura 3 de cada un on eacutes detalla les precondicions que srsquohan de complir pregravevia-ment per a que aquest es pugui dur a terme lrsquoiniciador que executa aquest cas drsquouacutes i el curs drsquoaccions que ocor-reran a partir drsquoaquest iniciador

Nom del Cas drsquoUacutes Comprar una textura per la pilota

Requeriment(s) Explorat(s) 681516

Precondicioacute(ns)

- Lrsquousuari ha seleccionat lrsquoopcioacute del menuacute ldquoTendardquo

Iniciador(s) Lrsquousuari ha polsat sobre el botoacute de tenda

Curs drsquoAccioacute Principal

1 Lrsquousuari selecciona la tenda de la pilota

2 Lrsquousuari fa scroll fins a seleccionar una textura que li agradi i

la polsa

3 Es comprova si ja teacute comprada aquesta textura (no la teacute)

4 Es comprova si teacute suficients monedes per adquirir la textura

(en teacute)

5 Lrsquousuari adquireix la textura srsquoelimina el seu preu per a in-

dicar-ho i es carrega la textura a la pilota de mostra de la ten-

da i a la que utilitzarem en qualsevol partida

Curs(os) Alternatiu drsquoAccioacute

3b Es comprova si ja teacute comprada aquesta textura (si la teacute)

4b Es carrega la textura a la pilota de mostra de la tenda i a la que

utilitzarem en qualsevol partida

4c Es comprova si teacute suficients monedes per adquirir la textura

(no en teacute)

5c Es mostra un aviacutes que lrsquousuari no teacute suficients monedes i no

es desbloqueja la textura

Fig 3 Descripcioacute Cas drsquouacutes ldquoComprar textura per la pilotardquo

6 EEUAB TFG INFORMAgraveTICA CREACIOacute DrsquoUN VIDEOJOC MOgraveBIL ADDICTIU

64 Disseny i Test

Un cop redactats els requisits vaig passar a redactar el ldquoCAPIacuteTOL 2 DISSENY I CONSTRUCCIOacute DEL VIDEO-JOCrdquo que conteacute les seguumlents seccions clau

- Disseny Artiacutestic Conteacute tota la informacioacute per a en-tendre el concepte artiacutestic del videojoc Tota la his-toria en la que es desenvolupa aixiacute com un guioacute complet de tots els diagravelegs del mode historia entre altres Una seccioacute interessant que apareix eacutes la explicacioacute dels controls que hauragrave drsquoutilitzar lrsquousuari i perquegrave srsquohan fet aixiacute on es concreta que el joc nomeacutes con-tindragrave dos tipus de moviments el toc amb el dit i lrsquoscroll lateral Al simplificar el joc a dos tipus de moviments srsquoaconsegueix molta senzillesa que a nivell pragravectic es tradueix a un facilitat molt gran en lrsquoaprenentatge drsquouacutes Finalment conteacute una descripcioacute completa de tots els boosts(objectes aleatoris) que intervenen a les partides i els efectes que tindran

- Disseny del Software En aquesta seccioacute srsquoha desenvolupat un diagrama de classes i escenes a partir de tots els casos drsquouacutes Srsquoha optat per incloure les escenes (progravepies del motor Unity) dins drsquoaquest diagrama ja que proporcionen molta meacutes facilitat a lrsquohora drsquoentendre la relacioacute de les classes ja que algunes no intervenen entre siacute directament sinoacute a partir drsquouna escena especiacutefica

Fig 4 Diagrama de classes i escenes

Amb el diagrama definit es descriuen la funcionalitats de cada classe junt amb els seus atributs propis i les funcions que la formen

Definides les funcions de les classes srsquohan descrit els diagrames de sequumlegravencia molt importants per a observar el flux de les diverses accions directes que pot realitzar lrsquousuari amb la interfaccedil I en consequumlegravencia com reacciona el motor a partir de cada accioacute amb les escenes arxius de

guardat i els serveis de google Ha sigut molt uacutetil per a realitzar un desenvolupament correcte

Fig 5 Diagrama de Sequumlegravencia de la primera execucioacute del Joc

La seccioacute inclou un esboacutes de tota la interfaccedil que interactua amb lrsquousuari Per aconseguir un bon resultat drsquoaquesta es van preparar unes imatges que reconstruiumlen la interfaccedil i es va fer un first-click test [7] amb lrsquoeina web lsquoopti-malworkshoprsquo A causa de la versioacute gratuiumlta srsquohan realitzat 3 estudis dife-rents ja que lrsquoeina limitava la quantitat de preguntes per estudi [8] [9] [10] Gragravecies a aquesta eina amb cada estudi realitzat hem obtingut uns resultats molt visuals que ens han servit per conegraveixer realment si els menuacutes estaven ben estructurats El resultat com podem veure a les imatges de la seccioacute A2 i A3 del apegravendix ha sigut molt satisfactori i no srsquoha necessitat de realitzar cap canvi a la interfaccedil de lrsquousuari Podem dir que el plantejament drsquouna interfaccedil molt senzi-lla i intuiumltiva ha sigut correcte

- Implementacioacute del software Per acabar questa

seccioacute conteacute tots els elements artiacutestics que interve-nen en el joc (models 3D sprites) totes les escenes i la icona que es mostraragrave a la play store

65 Desenvolupament de LrsquoAplicacioacute

651 Implementacioacute del Menuacute Principal

Respecte a la implementacioacute del videojoc es va comenccedilar per elaborar el menuacute principal Per fer-ho es va iniciar el desenvolupament del script ldquoGameManagerrdquo Srsquoha de dir que tots els components visuals del joc srsquohan creat dins drsquouna estructura canvas [13] de Unity per a crear una interfaccedil responsive [12]

Script GameManager Per a crear aquest script encarregat de guardar totes les dades srsquoha utilitzat els PlayerPrefs [14] de unity Soacuten funcions del tipus clau-valor on amb un id pots guardar un valor a un espai de memograveria del dispositiu Aquest GameManager com srsquoexplica a la documentacioacute

NIL PASCUAL FERNAacuteNDEZ CREACIOacute DrsquoUN VIDEOJOC MOgraveBIL ADDICTIU 7

del desenvolupament del joc srsquoencarrega tant de crear lrsquoarxiu de guardat quan srsquoinicialitza per primer com el joc com de carregar els valors drsquoaquests un cop ja srsquoha jugat meacutes drsquoun cop Amb el GameManager com a estructura principal srsquoha comenccedilat a desenvolupar lrsquoescena del Menuacute principal Escena lsquoMenuacutersquo ndash Menuacute principal Per aquest menuacute principal que veiem a la figura 6 es buscava una sensacioacute drsquoimmersioacute al joc que et fes sentir a lrsquoespai Per aixograve es va decidir dividir les 4 parts principals drsquoaquest menuacute Menuacute principal mode lliure mode histo-ria i botiga en diferents punts de lrsquoespai 3D formant una circumferegravencia Aixograve ha permegraves desenvolupar la seguumlent foacutermula per a la cagravemera de joc que ofereix una sensacioacute de flotar a lrsquoespai cameraTransformrotation = QuaternionSlerp (camera-TransformrotationcameraDesiredLookAtrotation CAMERA_TRANSITION_SPEED TimedeltaTime) Amb aquesta foacutermula estem assignant al valor de rotacioacute de la cagravemera del joc una nova rotacioacute entre la seva posi-cioacute actual (cameraTransformrotation) i la posicioacute destiacute (cameraDesiredLookAtrotation) Gragravecies a la funcioacute slerp() realitzaragrave un moviment molt lleuger seguint la velocitat que li indiquem Per a veure millor aquest efecte de cagravemera es pot consul-tar el viacutedeo adjunt ldquoDEMO_GRAVITY_PONGrdquo

Escena lsquoMenuacutersquo ndash Mode Lliure El seguumlent pas ja amb la cagravemera a punt ha sigut desenvo-lupar el llistat de nivells del mode lliure que trobem a la figura 7 Ha sigut una decisioacute difiacutecil i bastant creativa ja que es volia una llista de nivells molt visual i vaig decidir mostrar els nivells com a imatges Investigant vaig trobar que mitjanccedilant codi pots trobar i guardar a variables els sprites que estiguin dins de la carpeta que crea unity de ldquoResourcesrdquo Amb aquesta tegravecnica i un Scroll Rect [11] podem passar els nivells amb un scroll lateral Despreacutes srsquoha afegit la imatge i el text dels tiquets a la part inferior del nivell i el regravecord del nivell a sobre drsquoaquest Per finalitzar srsquoha creat el botoacute de tornar per a que la cagravemera torni a rotar fins la posicioacute del menuacute principal Escena lsquoMenuacutersquo ndash Botiga La botiga com observem ala figura 8 manteacute una estruc-tura semblant al llistat de nivells perograve amb diferegravencies notables En comptes de carregar varies imatges carrega una imat-ge sencera amb totes les textures i la divideix en textures de 256x256 per a una millor optimitzacioacute Teacute un indica-dor monedes del joc i teacute un botoacute extra per a canviar entre la tenda de textures de la pilota i de la lluna de joc

Fig 6 Menuacute Principal

Fig 7 Mode lliure

Escena lsquoMenuacutersquo ndash Mode Histograveria El llistat de nivells del mode histograveria no utilitza la tegravecnica de cagraverrega de imatges pels nivells sinoacute que srsquohan utilitzat uns models gratuiumlts de planetes 3D Cada planeta forma un nivell amb el seu nom i el seu regravecord de temps propi Un cop acabada tota la visual de lrsquoescena del menuacute srsquoha creat el script que el gestionaria anomenat ldquoMainMenurdquo

Fig 8 Botiga

Figura 9 Mode Histograveria

Script MainMenu Aquest script srsquoencarrega de carregar i gestionar els com-ponents de lrsquoescena del menuacute del llistat de nivells i la botiga Primer de tot carrega gragravecies als playerPrefs guardats tots els textos de regravecords de puntuacioacute de cada nivell els tiquets les monedes i les textures comprades de la pilota i lluna de joc que lrsquousuari havia obtingut Srsquoha creat un sistema tant per al llistat de nivells com a la botiga de bloqueig on al llistat de nivells es bloquegen tots els botons dels jocs menys del primer fins que en aquest no srsquohagi obtingut una puntuacioacute miacutenima de 5 i a la botiga es guarda una matriu de desbloquejos que indica quines textures srsquohan comprat i ja no apareixeragrave el seu preu i quines no Tambeacute srsquoencarrega de a la botiga mostrar com quedaria la textura comprada a la pilota o a la lluna de joc i apli-car-la per a quan juguem qualsevol partida Aquest script tambeacute carrega la muacutesica del menuacute

8 EEUAB TFG INFORMAgraveTICA CREACIOacute DrsquoUN VIDEOJOC MOgraveBIL ADDICTIU

Script History_Levels Aquest script srsquoencarrega de la gestioacute del menuacute ldquoHISTO-RIArdquo Srsquoha creat un sistema de visualitzacioacute on el jugador can-via de nivell mitjanccedilant dues fletxes i un jugador no po-dragrave accedir a un nivell fins que hagi completat lrsquoanterior Junt amb aquest sistema de bloqueig segons el nivell on es situiuml el jugador es mostraragrave el millor temps en que lrsquoha acabat (si es que hi ha) i el nom del nivell Amb aquests components descrits fins ara ja tindriacuteem tot el menuacute principal acabat Un cop acabat el menuacute srsquoha passat a crear els nivells del mode lliure

652 Implementacioacute del Mode Lliure

El mode lliure consta de 5 nivells amb mecagraveniques de joc variants perograve compartint lrsquoestructura principal del joc Per a explicar com srsquoha desenvolupat aquest mode srsquoutilitzaragrave de referegravencia el mode de joc ldquoCLASSICrdquo el mode de joc original on primer srsquoexplicaran els compo-nents de lrsquoescena i despreacutes els scripts que la componen Una part molt important drsquoaquestes escenes eacutes el disseny seguint el esquema senzill i visual del joc srsquoha passat per diversos plantejaments murs reals una barra plana Finalment despreacutes drsquoun extens plantejament es va deci-dir aplicar el disseny que veiem a la figura 10 En aquest disseny podem observar que els murs soacuten llums LED Aquesta decisioacute srsquoha considerat la millor ja que oferia tota la informacioacute que necessita el jugador dels murs sense ser un objecte molt gran i amb molt detall Finalment srsquohan utilitzat imatges de la temagravetica espacial per a completar el fons de lrsquoescena Escena CLASSIC Lrsquoescena drsquoaquest mode de joc la componen directament la pilota la lluna de joc els murs de joc la puntuacioacute el menuacute de pausa i els tiquets disponibles Perograve realment hi ha molts meacutes components secundaris que no srsquoentraragrave en detall a explicar-los perograve que valia la pena mencionar-los com uns murs secundaris invisibles que srsquoutilitzen per detectar si el jugador perd quan ha destruiumlt un mur ob-jectes que solament es mostren quan srsquoagafa un boost llums que segueixen els objectes per crear un efecte pri-mer pla la interfaccedil del menuacute de pausa Presentats aixiacute els components de lrsquoescena eacutes meacutes interes-sant veure els scripts que afecten a aquests components Script ClassicBall Aquest script que controla la pilota eacutes el meacutes important de lrsquoescena ja que gestiona tot el que pot tenir contacte amb ella La funcioacute meacutes important drsquoaquest script eacutes sens dubte OnCollisionEnter() Aquest funcioacute nativa de Unity ser-veix per a gestionar quan lrsquoobjecte topa amb un altre objecte Quan la pilota topa amb un mur detecta quin eacutes

i segons el seu color actual li canviaragrave el seu color al que toqui i suma un punt Si la pilota topa amb la lluna de joc simplement augmen-taragrave la seva velocitat Si topa amb el forat negre de la part inferior o traspassa un mur destruiumlt srsquoencarrega de parar la partida i la muacutesica mostrar el menuacute de derrota afegir a les monedes totals del jugador les guanyades aquella partida i canviar el regravecord de puntuacioacute del nivell si srsquoha superat

Fig 10 Escena CLASSIC

Fig 11 Efecte de Boost de Gel

Script ClassicPad Aquest script simplement srsquoencarrega de la gestioacute del moviment de la lluna de joc Detecta si el jugador estagrave polsant a sobre drsquoella i es mou en consequumlegravencia Per al mode histograveria srsquoencarrega de si un projectil topa amb ella parar la partida i mostrar el menuacute de derrota Script Pause Menu Aquest script com el seu nom indica gestiona tot el me-nuacute de pausa Que quan es polsi a sobre del botoacute de pausa es pari el joc i es mostri la interfaccedil que quan polsem sobre lsquoreprendrersquo la partida actual segueixi on estava que es torni al menuacute o que es surti de la partida Script Boosts Aquest script srsquoencarrega drsquoinvocar un objecte aleatori que apareix cada x segons aleatograveriament per pantalla un cert temps Segons el boost es produeix un efecte diferent Per fer aixograve se li ha assignat el script a una imatge i srsquoha jugat amb el seu render (el component que fa que es mos-tri la imatge) Gragravecies a la funcioacute TimeTimeSinceLevelLoad que ens proporciona el temps que ha passat des de que srsquoha carregat el nivell sabem quan fer invisible o no lrsquoobjecte Aixiacute creat lrsquoalgoritme que mostra una imatge aleatograveriament drsquouna llista drsquoimatges sempre que no hi hagi un boost funcionant Ara amb un switch case segons la imatge que srsquoestagrave mos-trant crida a la funcioacute del boost que toca per a que realitzi lrsquoefecte adequat Un bon exemple eacutes el boost de gel que al collir-lo com veiem a la figura 11 mostra a tots els murs que no hagin sigut destruiumlts una imatge de neu que impedeix destruir-los

NIL PASCUAL FERNAacuteNDEZ CREACIOacute DrsquoUN VIDEOJOC MOgraveBIL ADDICTIU 9

Es poden trobar tots els boosts i efectes a lrsquoapartat 215 del document adjunt ldquoDesenvolupament del Jocrdquo Amb tots aquests components ja es podria jugar una par-tida ldquoCLASSICrdquo del mode lliure Per a construir els altres nivells del mode lliure srsquoha jugat amb potenciar o extreure aquestes funcions descrites per proporcionar un altre tipus de joc

bull Escena Double Trouble Aquiacute srsquoha duplicat la pilota de joc i srsquoha adaptat lrsquoentorn per a que el nivell sigui jugable

bull Escena Faster Aquest mode es juga al doble de la velocitat normal de joc utilitzant la funcioacute Ti-meTimeScale = 2 que duplica el temps

bull Escena Insight Aquest mode es juga sense veure els components del joc el jugador nomeacutes veu una estela que indica el moviment de la pilota i la lluna de joc

bull Escena Relax En aquest mode on nomeacutes es perdragrave la partida si aquesta cau al forat negre inferior Els murs mai poden ser destruiumlts i no apareixen boosts

653 Implementacioacute del Mode Histograveria

Per a aquest mode srsquoha utilitzat com a base lrsquoestructura del nivell ldquoCLASSICrdquo del mode lliure Amb aquesta es-tructura srsquohan eliminat els boosts i el marcador de pun-tuacioacute Consta drsquoun objectiu totalment diferent al mode lliure no volem aconseguir la major puntuacioacute sinoacute que volem destruir la nau enemiga i si pot ser en el menor temps possible Script Dialog Primerament srsquoha creat un sistema de diagravelegs en el que seguint el guioacute descrit al document adjunt ldquoDesenvolu-pament del Jocrdquo apartat 212 dos personatges ens ense-nyen a jugar a lrsquohora que ens narren una divertida histograve-ria Dit aixograve srsquoha creat un sistema drsquoescriptura on segons unes frases donades srsquoescriu lletra per lletra aconseguint lrsquoefecte de narracioacute dels videojocs Quan comprovem que srsquoha mostrat tota la frase per pan-talla mostrem un botoacute per a continuar amb la conversa i un altre botoacute per a saltar el diagraveleg i comenccedilar a jugar Agafant la primera lletra de la frase amb la funcioacute subs-tring() sabrem si quin personatge parla i hem de mostrar Script History_Ball La pilota srsquoha hagut drsquoadaptar a tots els nous compo-nents A meacutes srsquoha creat un sistema per a mostrar en tot mo-ment el temps que ha passat des de lrsquoinici del nivell Per fer-ho srsquohan utilitzat 2 variables pels minuts i segons Aixograve ha permegraves visualitzar amb meacutes comoditat el format de temps ldquominuts segonsrdquo amb la funcioacute toString()

permetent realitzar les comparacions de temps correcta-ment Script Launcher Aquest script srsquoencarrega un model de miacutessil que li indi-quem i crear una instagravencia drsquoaquest davant la nau amb una certa velocitat dirigit cap a la part inferior de la pan-talla Per aconseguir-ho srsquoutilitza un objecte auxiliar a lrsquoescena lsquoFirePointrsquo que eacutes situat sempre davant la nau on srsquoinstanciaragrave el model del miacutessil amb un cert impuls Po-dem visualitzar aquest sistema a la figura 12 Script ProjectileCollision Aquest script srsquoencarrega solament de destruir el miacutessil quan topi amb un objecte que no sigui la lluna de joc Eacutes un script per a optimitzar el rendiment del joc Un cop descrits els scripts en comuacute per a tots els nivells passem als scripts que a cada nivell soacuten diferents perograve que srsquoutilitzen per a una mateixa causa la gestioacute de la nau enemiga

bull Capiacutetols 1 i 2 Els capiacutetols 1 i 2 comparteixen el ma-teix moviment de la nau Aquest script mou la nau seguint un moviment aleatori Lrsquoalgorisme consisteix en que srsquoescull un punt aleatori a arribar i quan srsquoarriba srsquoescull un altre

bull Capiacutetol 3 Al tercer capiacutetol eacutes on veiem per primer cop una intelmiddotligegravencia artificial en el moviment de la nau aquesta fugiragrave de la pilota Per fer-ho srsquoha divi-dit el nivell en dues zones dreta i esquerra quan la pilota estigui a la zona de la dreta la nau es mouragrave a lrsquoesquerra i a la inversa Per a que no sigui impossi-ble tocar-la srsquoha ajustat la velocitat del seu movi-ment adequadament

bull Capiacutetol 4 Al quart capiacutetol la nau ja consta drsquouna intelmiddotligegravencia artificial meacutes avanccedilada en la que es mou segons a on la pilota estigui situada Lrsquoalgorisme consisteix en tenir la posicioacute de la pilota en tot moment i srsquoha dividit lrsquoespai de la partida en 4 quadrats com podem veure a la figura 13 Si la pilota estagrave al quadrat 1 la nau es mouragrave al qua-drat contrari el 4 Si la pilota es situa al quadrat 2 la nau es mouragrave al quadrat 3 Per a que no fos impossi-ble topar amb la nau srsquoha drsquoajustat la velocitat del moviment

bull Capiacutetol 5 Al capiacutetol final lrsquoalgoritme consta del ma-teix moviment que al nivell anterior perograve afegint un extra que si la nau es troba en el mateix quadrat que la pilota en el mateix instant de temps la nau redui-ragrave el seu tamany complicant lrsquoobjectiu drsquoaconseguir destruir-la

10 EEUAB TFG INFORMAgraveTICA CREACIOacute DrsquoUN VIDEOJOC MOgraveBIL ADDICTIU

Fig 12 Nau amb lrsquoobjecte lsquoFire-

Pointrsquo

Fig 13 Divisioacute de quadres nivells 4 i 5

Per a veure visualment com funcionen les funcions expli-cades en aquest apartat es pot consultar el viacutedeo adjunt ldquoDEMO_GRAVITY_PONGrdquo

66 Proves

Gragravecies a la metodologia de desenvolupament de Rapid Prototyping srsquoha pogut anar testejant cada mogravedul desen-volupat al moment aixiacute extraient tots els resultats de tests ragravepidament Srsquohan realitzat 4 tipus de proves diferents

bull A les proves drsquounitat srsquoha testejat que els diferents mograveduls del sistema funcionin correctament Com que si un miacutessil drsquouna nau enemiga glopeja la lluna de joc es mostra el menuacute correcte o si tenim les su-ficients monedes per a comprar una textura la po-dem comprar satisfactograveriament entre altres

bull A les proves drsquointegracioacute srsquoha testejat que les in-teraccions entre els diferents escenaris del sistema sigui correcte Srsquoha provat que es pugi accedir a tots els nivells del videojoc i que des de aquests es pu-gui tornar correctament al menuacute principal a traveacutes del menuacute de pausa

bull Les proves de validacioacute han servit per comprovar que hem complit amb els requisits del projecte Hem testejat el correcte log in amb google la visualitzacioacute dels marcadors i la visualitzacioacute dels objectius entre altres

bull Per acabar les proves de sistema han servit gragravecies a la developer console [24] comprovar que el joc srsquoha executat correctament variant els dispositius i versions drsquoAndroid

A lrsquoapartat 31 del document adjunt ldquoDesenvolupament del Jocrdquo es poden trobar la totalitat de les proves realitza-des de cada tipus amb els seus resultats corresponents

7 CONCLUSIONS

I ja per finalitzar aquest document explicareacute quines soacuten les conclusions que he extret sobre el projecte Primer de tot crec que la planificacioacute que vaig realitzar a

lrsquoinici ha sigut lrsquoencertada Les petites alteracions que srsquohan acabat realitzant (com podem veure en el diagrama de Gantt real de lrsquoapegravendix 2) han estat meacutes enfocades a avanccedilar lrsquoinici de les tasques que no pas a endarrerir-les a causa de la situacioacute excepcional que hem viscut

Respecte a la fase drsquoimplementacioacute considero que

srsquohan completat tots els objectius que es presentaven a lrsquoinici del projecte Srsquohan desenvolupat totes les funcions que es van proposar al document de requisits amb lrsquoajuda de la psicograveloga que havia de tenir el joc per a que es considereacutes addictiu i aixiacute ha sigut Per lo que podem concloure que hem desenvolupat un joc addictiu per a Android satisfactograveriament A meacutes srsquoha de dir que lrsquoaplicacioacute eacutes responsive [12] i molt fagravecilment escalable

I com a uacuteltim punt voldria comentar que mrsquohagueacutes

agradat disposar de meacutes temps i recursos per a millorar tot lrsquoaspecte visual de lrsquoaplicacioacute encara meacutes fins a arribar a apropar-se al nivell de mitjanes produccions aquest aspecte milloraria lrsquointeregraves per al joc

71 Futures Accions

A continuacioacute detallarem aquelles accions futures que he considerat que pot ser interessant desenvolupar en prograveximes ampliacions del joc per tal que lrsquoexperiegravencia drsquouacutes dels usuaris sigui la millor possible

bull Un tutorial molt meacutes visual que es mostri el primer cop que srsquoiniciiuml lrsquoaplicacioacute on no solament srsquoexpliqui sobre la mecagravenica del joc sinoacute que tambeacute es guiiuml a lrsquousuari a traveacutes dels menuacutes la interfaccedil i els diferents modes i nivells de joc

bull Una integracioacute drsquoalgun mode de joc online on es po-gueacutes competir contra un altre jugador en temps real oferiria molt drsquoatractiu i enriquiria molt lrsquoaplicacioacute

bull Per acabar com ja hem comentat una millora visual en la que no mrsquohe pogut centrar en especial durant el projecte on amb lrsquoajuda drsquoalgun professional en la mategraveria es crearien unes visuals progravepies per al joc

8 AGRAIumlMENTS

En primer lloc mrsquoagradaria agrair a la meva famiacutelia el suport incondicional que mrsquohan donat en tot moment durant els quatre anys que porto de carrera Sense ells res de tot aixograve hauria estat possible

Tambeacute mrsquoagradaria agrair la Gemma Saacutenchez la meva tutora del TFG pels consells i lrsquoajuda que mrsquoha ofert du-rant aquests mesos tant durs i especials de projecte insis-tint en quegrave treballes ben dur des del primer dia ha per-megraves que aquest treball hagi pogut tirar endavant amb meacutes facilitat

Finalment voldria agrair a les altres persones que han fet aquest treball possible des de la psicograveloga experta que ens va ajudar a definir molt beacute els requisis fins a tots els companys i amics que han treballat com a testers del joc trobant lsquobugsrsquo i fent propostes sobre possibles millores drsquoaquest

NIL PASCUAL FERNAacuteNDEZ CREACIOacute DrsquoUN VIDEOJOC MOgraveBIL ADDICTIU 11

IacuteNDEX DE FIGURES

Fig 1 lsquoRapid Prototypingrsquo3

Fig 2 Diagrama de Classes lsquoNavegar per la Tendarsquo5

Fig 3 Descripcioacute Cas drsquouacutes ldquoComprar textura pilotardquo6

Fig 4 Diagrama de Classes i Escenes6

Fig 5 Diagrama de Sequumlegravencia 1a Execucioacute6

Fig 6 Escena Menuacute Principal7

Fig 7 Escena Mode Lliure7

Fig 8 Escena Botiga8

Fig 9 Escena Mode Histograveria8

Fig 10 Escena lsquoCLASSICrsquo8

Fig 11 Efecte Boost de Gel8

Fig 12 Nau amb objecte lsquofirepointrsquo10

Fig 13 Divisioacute de quadres nivells 4 i 510

REFEREgraveNCIES

[1] Desenvolupament lsquoRapid prototypingrsquo httpseswikipediaorgwikiModelo_de_prototipos

[2] Article de lrsquoaddiccioacute als videojocs httpspsicologiaymentecomclinicaadiccion-a-videojuegos

[3] Per quegrave enganxen els videojocs httpswwwlavanguardiacomestilos-de-vida2012062954317381414por-que-enganchan-los-videojuegoshtml

[4] Historia dels Videojocs httpswwwfibupceduretroinformaticahistoriavideojocshtml

[5] Requisits miacutenims Candy Crush Saga httpswwwmicrosoftcomes-espcandy-crush-sa-ga9nblggh18846activetab=pivotregionofsystemrequirementstab

[6] Document SRS drsquoexemple httpswwwdocsitycomesejemplo-de-documento-srs4930539

[7] El lsquoFirst clickrsquo test httpsusabilityhubcomguidesfirst-click-testing

[8] Quumlestionari lsquoFirst clickrsquo test I httpsowsiocm7v7lx3h4

[9] Quumlestionari lsquoFirst clickrsquo test II httpsowsiocmj6574121

[10] Quumlestionari lsquoFirst clickrsquo test III httpsowsiocm7df25ouc

[11] Scroll Rect de Unity httpsdocsunity3dcomes20184Manualscript-ScrollRecthtml

[12] Disseny Responsive httpswww40defiebrecomque-esdiseno-responsi-ve~text=El20disentildeo20web20responsive20o3B20ordenador2C20tablet2C20smartphonehellip

[13] Canvas de Unity httpsdocsunity3dcomescurrentManualUICanvashtml

[14] Playerprefs de Unity httpsdocsunity3dcomescurrentScriptReferencePlayerPrefshtml

[15] ldquoDisseny de Softwarerdquo Assignatura del grau que ha ser-

vit de font bagravesica dels coneixements aplicats tant a An-droid com als tests amb usuaris La seva guia docent la trobem disponible a httpsdocsunity3dcomManualUnityManualhtml

[16] ldquoTest i Qualitat del Softwarerdquo Assignatura del grau que ha servit de font bagravesica dels coneixements aplicats per als tests del codi La seva guia docent la trobem disponible a httpsguiesuabcatguies_docentspublicportalhtml2019assignatura102758ca

[17] ldquoDocumentacioacuten de Unityrdquo Documentacioacute completa del motor gragravefic lsquoUnityrsquo que srsquoha anat consultant en tot mo-ment del desenvolupament httpsdocsunity3dcomManualUnityManualhtml httpswwww3schoolscomcs

[18] ldquoStack Overflowrdquo Fograverum de preguntes i respostes rela-cionades amb el moacuten de la programacioacute i la informagravetica Srsquoha anat consultant durant la fase drsquoimplementacioacute Al-gunes de les pagravegines que voldria destacar

o Text borroacutes a Unity httpsstackoverflowcomquestions16506737unity3d-3d-text-always-displayed-blur16507861

o Sing-In Google httpsstackoverflowcomquestions59599895problems-with-google-sign-in-in-unity

[19] ldquoComo firmar tu apprdquo Documentacioacute per a desenvolupa-dors Android sobre com signar una aplicacioacute per a que totes les funcions de google funcionin correctament httpsdeveloperandroidcomstudiopublishapp-signinggoogle-play-app-signing

[20] ldquoUnity Ads Documentationrdquo Documentacioacute sobre el sis-tema de publicitat de unity utilitzat a lrsquoapp httpsdocsunity3dcomPackagescomunityads34manualindexhtml

[21] ldquoGoogle play games plugin for unityrdquo Plugin per a unity per a poder utilitzar totes les funcions de google play games httpsgithubcomplaygameservicesplay-games-plugin-for-unity

[22] ldquoFlaticonrdquo Web de recursos gratuiumlts drsquoon srsquohan descarre-gat els sprites que srsquoutilitzen al joc httpswwwflaticones

[23] ldquoUnity Asset Storerdquo Web de recursos gratuiumlts de unity drsquoon srsquohan descarregat els models dels planetes que srsquoutilitzen al joc entre altres httpsassetstoreunitycomgclid=CjwKCAjwlZf3BRABEiwA8Q0qq9NcH2nCMrUHDdQUrV0K7dNiZD6JMAy7G8x93NPLzD3wZKmhiK1MQBoCvR0QAvD_BwE

[24] ldquoAyuda de Play Consolerdquo Documentacioacute sobre al play console plataform on es puja lrsquoaplicacioacute per a que es vi-sualitzi a la play store que srsquoha consultat quan han sorgit problemes httpssupportgooglecomgoogleplayandroid-developerhl=estopic=3450769

[25] ldquoPongrdquo Primer videojoc de la histograveria httpseswikipediaorgwikiPong~text=Pong20(o20Tele-Pong)mesa20(o20ping20pong)

[26] ldquoFlappy Birdsrdquo httpseswikipediaorgwikiFlappy_Bird

[27] ldquoCandy Crushrdquo httpswwwxatakamovilcommovil-y-sociedadcandy-crush-saga-la-ciencia-detras-de-la-adiccion

12 EEUAB TFG INFORMAgraveTICA CREACIOacute DrsquoUN VIDEOJOC MOgraveBIL ADDICTIU

APEgraveNDIX

A1 DIAGRAMA DE GANTT DE LA PLANIFICACIOacute INICIAL

A1 Diagrama de Gantt corresponent a la planificacioacute inicial del projecte En aquest diagrama podem veure les diferents tasquesetapes de desenvolupament amb les setmanes que es va planificar destinar a cada una

A2 SECCIOacute DrsquoAPEgraveNDIX

A2 Diagrama de Gantt corresponent a la planificacioacute final del projecte Tal i com podem veure tenim alguns canvis en els temps respecte a la planificacioacute inicial es va acurtar la fase de desenvolupament ja que amb la situacioacute excepcional del paiacutes srsquoha disposat de molt meacutes

temps per al desenvolupament lo qual ha permegraves avanccedilar el pas a produccioacute i la documentacioacute del projecte

NIL PASCUAL FERNAacuteNDEZ CREACIOacute DrsquoUN VIDEOJOC MOgraveBIL ADDICTIU 13

A3 RESULTAT DEL ESTUDI DE DISSENY ndash TASCA 1

A3 Resultat Estudi 1 - Tasca 1 Com observem el 90 dels testers han completat lrsquoobjectiu de la tasca

A4 RESULTAT DEL ESTUDI DE DISSENY ndash TASCA 1 (MAPA DE CALOR)

A4 Resultat estudi 1 ndash Tasca 1 (Mapa de Calor) Com podem observar la zona de tocs de dit del 70 dels tocs se centra en el botoacute correcte

14 EEUAB TFG INFORMAgraveTICA CREACIOacute DrsquoUN VIDEOJOC MOgraveBIL ADDICTIU

Page 5: Nil Pascual Fernández - UAB Barcelona · 2020. 9. 2. · llançar la seva primera consola: la Playstation, que tenia un reproductor de CDs, lo qual comportava que els vi-deojocs

NIL PASCUAL FERNAacuteNDEZ CREACIOacute DrsquoUN VIDEOJOC MOgraveBIL ADDICTIU 5

consta drsquouna pala de joc que lrsquousuari mouragrave horitzontal-ment per a evitar que una pilota caigui al terra Tambeacute compta amb tres murs als marges de la pantalla que a part de sumar punts quan siguin tocats amb la pilota canviaran de color segons els cops consecutius que han sigut golejats Si superen els 3 cops consecutius el mur en quumlestioacute desapareixeragrave fent impossible el seu contacte amb la pilota A meacutes diferents objectes apareixeran alea-tograveriament durant la partida per a oferir-nos efectes espe-cials que ens ajudaran o ens faran la partida meacutes compli-cada durant un cert temps

Al acabar cada partida obtindrem una puntuacioacute que es mostraragrave en un marcador de puntuacions per a compa-rar-la amb la dels nostres amics A part tota la informacioacute del joc es guardaragrave al dispositiu guardant el progreacutes en tot moment

Tot i que hem dit abans que el joc compta amb 10 es-cenaris diferents aquests es divideixen en dos modes de joc Historia i Lliure

El mode historia compta amb una petita trama que in-volucraragrave al jugador per a salvar el planeta on lrsquoobjectiu seragrave acabar amb els diferents enemics dels 5 nivells que amenaccedilaran al jugador

Lrsquoobjectiu del mode lliure seragrave en canvi aconseguir la magravexima puntuacioacute possible drsquoentre 5 modes de joc de mecagraveniques i dificultats diferents

Tot el progreacutes que aconseguim al joc es plasmaragrave en forma de monedes que podrem invertir per a personalit-zar amb diferents aspectes els objectes del joc

63 Presa de Requisits

Un cop fet lrsquoestudi per a elaborar el document de re-quisits srsquohan consultat moltes fonts drsquoinformacioacute [15] [16] historia dels videojocs [4] jocs semblants arquitectures de hardware que podria suportar el joc [5] estagravendards de desenvolupament documents de requisits[6] i documen-tacioacute[17] [18] [20] Vull tornar a destacar la importagravencia de lrsquoentrevista per a poder realitzar correctament aquest document oferint uns objectius clars Amb aquest treball fet vaig comenccedilar a redactar els requisits que es troben al ldquoCAPIacuteTOL 1rdquo del document adjunt ldquoDesenvolupament del jocrdquo Aquest conteacute molts apartats entre ells dos de clau

- Els requeriments del sistema On es parla sobre el propogravesit del sistema a desenvolupar el seu objec-tiu principal i les seves funcions Aquest apartat conteacute aspectes molt concrets del desenvolupa-ment com que el joc seragrave desenvolupat en castellagrave la connectivitat o requeriments de hardware miacute-nims per al funcionament del joc i conteacute un petit estudi sobre la restriccioacute drsquoedat del joc PEGI 3 Finalment conteacute una llista completa tant dels re-queriments funcionals del sistema com dels no funcionals on srsquoexplica detalladament cada funcioacute que podragrave oferir el joc com per exemple el mode historia

o Suportaragrave 5 escenaris diferents o Inclouragrave un tutorial interactiu amb

lrsquousuari o A cada escenari apareixeragrave un enemic di-

ferent amb habilitats moviments i IA propis

- Lrsquoanagravelisi del sistema En aquesta segona seccioacute clau del document a partir de la llista de requeri-ments esmentada en lrsquoapartat anterior es fa una anagravelisi preliminar del producte resumint totes les funcionalitats que contindragrave i els efectes que pro-duiragrave cada una en el transcurs de lrsquoaplicacioacute A partir drsquoaquesta primera anagravelisi srsquohan elaborat diferents diagrames de casos drsquouacutes on es poden veure molt visualment les interaccions que pot fer lrsquousuari amb el sistema

Fig 2 Diagrama de Navegar per la tenda

Com veiem a la Figura 2 drsquoexemple podem observar

totes les opcions drsquointeraccioacute que teacute lrsquousuari un cop estagrave dins la botiga Es poden trobar tots els casos drsquouacutes al do-cument adjunt ldquo Desenvolupament del Jocrdquo a lrsquoapartat 122 ldquoCasos drsquouacutesrdquo

Finalment a partir dels diagrames de casos drsquouacutes srsquoha elaborat una fitxa com la de la figura 3 de cada un on eacutes detalla les precondicions que srsquohan de complir pregravevia-ment per a que aquest es pugui dur a terme lrsquoiniciador que executa aquest cas drsquouacutes i el curs drsquoaccions que ocor-reran a partir drsquoaquest iniciador

Nom del Cas drsquoUacutes Comprar una textura per la pilota

Requeriment(s) Explorat(s) 681516

Precondicioacute(ns)

- Lrsquousuari ha seleccionat lrsquoopcioacute del menuacute ldquoTendardquo

Iniciador(s) Lrsquousuari ha polsat sobre el botoacute de tenda

Curs drsquoAccioacute Principal

1 Lrsquousuari selecciona la tenda de la pilota

2 Lrsquousuari fa scroll fins a seleccionar una textura que li agradi i

la polsa

3 Es comprova si ja teacute comprada aquesta textura (no la teacute)

4 Es comprova si teacute suficients monedes per adquirir la textura

(en teacute)

5 Lrsquousuari adquireix la textura srsquoelimina el seu preu per a in-

dicar-ho i es carrega la textura a la pilota de mostra de la ten-

da i a la que utilitzarem en qualsevol partida

Curs(os) Alternatiu drsquoAccioacute

3b Es comprova si ja teacute comprada aquesta textura (si la teacute)

4b Es carrega la textura a la pilota de mostra de la tenda i a la que

utilitzarem en qualsevol partida

4c Es comprova si teacute suficients monedes per adquirir la textura

(no en teacute)

5c Es mostra un aviacutes que lrsquousuari no teacute suficients monedes i no

es desbloqueja la textura

Fig 3 Descripcioacute Cas drsquouacutes ldquoComprar textura per la pilotardquo

6 EEUAB TFG INFORMAgraveTICA CREACIOacute DrsquoUN VIDEOJOC MOgraveBIL ADDICTIU

64 Disseny i Test

Un cop redactats els requisits vaig passar a redactar el ldquoCAPIacuteTOL 2 DISSENY I CONSTRUCCIOacute DEL VIDEO-JOCrdquo que conteacute les seguumlents seccions clau

- Disseny Artiacutestic Conteacute tota la informacioacute per a en-tendre el concepte artiacutestic del videojoc Tota la his-toria en la que es desenvolupa aixiacute com un guioacute complet de tots els diagravelegs del mode historia entre altres Una seccioacute interessant que apareix eacutes la explicacioacute dels controls que hauragrave drsquoutilitzar lrsquousuari i perquegrave srsquohan fet aixiacute on es concreta que el joc nomeacutes con-tindragrave dos tipus de moviments el toc amb el dit i lrsquoscroll lateral Al simplificar el joc a dos tipus de moviments srsquoaconsegueix molta senzillesa que a nivell pragravectic es tradueix a un facilitat molt gran en lrsquoaprenentatge drsquouacutes Finalment conteacute una descripcioacute completa de tots els boosts(objectes aleatoris) que intervenen a les partides i els efectes que tindran

- Disseny del Software En aquesta seccioacute srsquoha desenvolupat un diagrama de classes i escenes a partir de tots els casos drsquouacutes Srsquoha optat per incloure les escenes (progravepies del motor Unity) dins drsquoaquest diagrama ja que proporcionen molta meacutes facilitat a lrsquohora drsquoentendre la relacioacute de les classes ja que algunes no intervenen entre siacute directament sinoacute a partir drsquouna escena especiacutefica

Fig 4 Diagrama de classes i escenes

Amb el diagrama definit es descriuen la funcionalitats de cada classe junt amb els seus atributs propis i les funcions que la formen

Definides les funcions de les classes srsquohan descrit els diagrames de sequumlegravencia molt importants per a observar el flux de les diverses accions directes que pot realitzar lrsquousuari amb la interfaccedil I en consequumlegravencia com reacciona el motor a partir de cada accioacute amb les escenes arxius de

guardat i els serveis de google Ha sigut molt uacutetil per a realitzar un desenvolupament correcte

Fig 5 Diagrama de Sequumlegravencia de la primera execucioacute del Joc

La seccioacute inclou un esboacutes de tota la interfaccedil que interactua amb lrsquousuari Per aconseguir un bon resultat drsquoaquesta es van preparar unes imatges que reconstruiumlen la interfaccedil i es va fer un first-click test [7] amb lrsquoeina web lsquoopti-malworkshoprsquo A causa de la versioacute gratuiumlta srsquohan realitzat 3 estudis dife-rents ja que lrsquoeina limitava la quantitat de preguntes per estudi [8] [9] [10] Gragravecies a aquesta eina amb cada estudi realitzat hem obtingut uns resultats molt visuals que ens han servit per conegraveixer realment si els menuacutes estaven ben estructurats El resultat com podem veure a les imatges de la seccioacute A2 i A3 del apegravendix ha sigut molt satisfactori i no srsquoha necessitat de realitzar cap canvi a la interfaccedil de lrsquousuari Podem dir que el plantejament drsquouna interfaccedil molt senzi-lla i intuiumltiva ha sigut correcte

- Implementacioacute del software Per acabar questa

seccioacute conteacute tots els elements artiacutestics que interve-nen en el joc (models 3D sprites) totes les escenes i la icona que es mostraragrave a la play store

65 Desenvolupament de LrsquoAplicacioacute

651 Implementacioacute del Menuacute Principal

Respecte a la implementacioacute del videojoc es va comenccedilar per elaborar el menuacute principal Per fer-ho es va iniciar el desenvolupament del script ldquoGameManagerrdquo Srsquoha de dir que tots els components visuals del joc srsquohan creat dins drsquouna estructura canvas [13] de Unity per a crear una interfaccedil responsive [12]

Script GameManager Per a crear aquest script encarregat de guardar totes les dades srsquoha utilitzat els PlayerPrefs [14] de unity Soacuten funcions del tipus clau-valor on amb un id pots guardar un valor a un espai de memograveria del dispositiu Aquest GameManager com srsquoexplica a la documentacioacute

NIL PASCUAL FERNAacuteNDEZ CREACIOacute DrsquoUN VIDEOJOC MOgraveBIL ADDICTIU 7

del desenvolupament del joc srsquoencarrega tant de crear lrsquoarxiu de guardat quan srsquoinicialitza per primer com el joc com de carregar els valors drsquoaquests un cop ja srsquoha jugat meacutes drsquoun cop Amb el GameManager com a estructura principal srsquoha comenccedilat a desenvolupar lrsquoescena del Menuacute principal Escena lsquoMenuacutersquo ndash Menuacute principal Per aquest menuacute principal que veiem a la figura 6 es buscava una sensacioacute drsquoimmersioacute al joc que et fes sentir a lrsquoespai Per aixograve es va decidir dividir les 4 parts principals drsquoaquest menuacute Menuacute principal mode lliure mode histo-ria i botiga en diferents punts de lrsquoespai 3D formant una circumferegravencia Aixograve ha permegraves desenvolupar la seguumlent foacutermula per a la cagravemera de joc que ofereix una sensacioacute de flotar a lrsquoespai cameraTransformrotation = QuaternionSlerp (camera-TransformrotationcameraDesiredLookAtrotation CAMERA_TRANSITION_SPEED TimedeltaTime) Amb aquesta foacutermula estem assignant al valor de rotacioacute de la cagravemera del joc una nova rotacioacute entre la seva posi-cioacute actual (cameraTransformrotation) i la posicioacute destiacute (cameraDesiredLookAtrotation) Gragravecies a la funcioacute slerp() realitzaragrave un moviment molt lleuger seguint la velocitat que li indiquem Per a veure millor aquest efecte de cagravemera es pot consul-tar el viacutedeo adjunt ldquoDEMO_GRAVITY_PONGrdquo

Escena lsquoMenuacutersquo ndash Mode Lliure El seguumlent pas ja amb la cagravemera a punt ha sigut desenvo-lupar el llistat de nivells del mode lliure que trobem a la figura 7 Ha sigut una decisioacute difiacutecil i bastant creativa ja que es volia una llista de nivells molt visual i vaig decidir mostrar els nivells com a imatges Investigant vaig trobar que mitjanccedilant codi pots trobar i guardar a variables els sprites que estiguin dins de la carpeta que crea unity de ldquoResourcesrdquo Amb aquesta tegravecnica i un Scroll Rect [11] podem passar els nivells amb un scroll lateral Despreacutes srsquoha afegit la imatge i el text dels tiquets a la part inferior del nivell i el regravecord del nivell a sobre drsquoaquest Per finalitzar srsquoha creat el botoacute de tornar per a que la cagravemera torni a rotar fins la posicioacute del menuacute principal Escena lsquoMenuacutersquo ndash Botiga La botiga com observem ala figura 8 manteacute una estruc-tura semblant al llistat de nivells perograve amb diferegravencies notables En comptes de carregar varies imatges carrega una imat-ge sencera amb totes les textures i la divideix en textures de 256x256 per a una millor optimitzacioacute Teacute un indica-dor monedes del joc i teacute un botoacute extra per a canviar entre la tenda de textures de la pilota i de la lluna de joc

Fig 6 Menuacute Principal

Fig 7 Mode lliure

Escena lsquoMenuacutersquo ndash Mode Histograveria El llistat de nivells del mode histograveria no utilitza la tegravecnica de cagraverrega de imatges pels nivells sinoacute que srsquohan utilitzat uns models gratuiumlts de planetes 3D Cada planeta forma un nivell amb el seu nom i el seu regravecord de temps propi Un cop acabada tota la visual de lrsquoescena del menuacute srsquoha creat el script que el gestionaria anomenat ldquoMainMenurdquo

Fig 8 Botiga

Figura 9 Mode Histograveria

Script MainMenu Aquest script srsquoencarrega de carregar i gestionar els com-ponents de lrsquoescena del menuacute del llistat de nivells i la botiga Primer de tot carrega gragravecies als playerPrefs guardats tots els textos de regravecords de puntuacioacute de cada nivell els tiquets les monedes i les textures comprades de la pilota i lluna de joc que lrsquousuari havia obtingut Srsquoha creat un sistema tant per al llistat de nivells com a la botiga de bloqueig on al llistat de nivells es bloquegen tots els botons dels jocs menys del primer fins que en aquest no srsquohagi obtingut una puntuacioacute miacutenima de 5 i a la botiga es guarda una matriu de desbloquejos que indica quines textures srsquohan comprat i ja no apareixeragrave el seu preu i quines no Tambeacute srsquoencarrega de a la botiga mostrar com quedaria la textura comprada a la pilota o a la lluna de joc i apli-car-la per a quan juguem qualsevol partida Aquest script tambeacute carrega la muacutesica del menuacute

8 EEUAB TFG INFORMAgraveTICA CREACIOacute DrsquoUN VIDEOJOC MOgraveBIL ADDICTIU

Script History_Levels Aquest script srsquoencarrega de la gestioacute del menuacute ldquoHISTO-RIArdquo Srsquoha creat un sistema de visualitzacioacute on el jugador can-via de nivell mitjanccedilant dues fletxes i un jugador no po-dragrave accedir a un nivell fins que hagi completat lrsquoanterior Junt amb aquest sistema de bloqueig segons el nivell on es situiuml el jugador es mostraragrave el millor temps en que lrsquoha acabat (si es que hi ha) i el nom del nivell Amb aquests components descrits fins ara ja tindriacuteem tot el menuacute principal acabat Un cop acabat el menuacute srsquoha passat a crear els nivells del mode lliure

652 Implementacioacute del Mode Lliure

El mode lliure consta de 5 nivells amb mecagraveniques de joc variants perograve compartint lrsquoestructura principal del joc Per a explicar com srsquoha desenvolupat aquest mode srsquoutilitzaragrave de referegravencia el mode de joc ldquoCLASSICrdquo el mode de joc original on primer srsquoexplicaran els compo-nents de lrsquoescena i despreacutes els scripts que la componen Una part molt important drsquoaquestes escenes eacutes el disseny seguint el esquema senzill i visual del joc srsquoha passat per diversos plantejaments murs reals una barra plana Finalment despreacutes drsquoun extens plantejament es va deci-dir aplicar el disseny que veiem a la figura 10 En aquest disseny podem observar que els murs soacuten llums LED Aquesta decisioacute srsquoha considerat la millor ja que oferia tota la informacioacute que necessita el jugador dels murs sense ser un objecte molt gran i amb molt detall Finalment srsquohan utilitzat imatges de la temagravetica espacial per a completar el fons de lrsquoescena Escena CLASSIC Lrsquoescena drsquoaquest mode de joc la componen directament la pilota la lluna de joc els murs de joc la puntuacioacute el menuacute de pausa i els tiquets disponibles Perograve realment hi ha molts meacutes components secundaris que no srsquoentraragrave en detall a explicar-los perograve que valia la pena mencionar-los com uns murs secundaris invisibles que srsquoutilitzen per detectar si el jugador perd quan ha destruiumlt un mur ob-jectes que solament es mostren quan srsquoagafa un boost llums que segueixen els objectes per crear un efecte pri-mer pla la interfaccedil del menuacute de pausa Presentats aixiacute els components de lrsquoescena eacutes meacutes interes-sant veure els scripts que afecten a aquests components Script ClassicBall Aquest script que controla la pilota eacutes el meacutes important de lrsquoescena ja que gestiona tot el que pot tenir contacte amb ella La funcioacute meacutes important drsquoaquest script eacutes sens dubte OnCollisionEnter() Aquest funcioacute nativa de Unity ser-veix per a gestionar quan lrsquoobjecte topa amb un altre objecte Quan la pilota topa amb un mur detecta quin eacutes

i segons el seu color actual li canviaragrave el seu color al que toqui i suma un punt Si la pilota topa amb la lluna de joc simplement augmen-taragrave la seva velocitat Si topa amb el forat negre de la part inferior o traspassa un mur destruiumlt srsquoencarrega de parar la partida i la muacutesica mostrar el menuacute de derrota afegir a les monedes totals del jugador les guanyades aquella partida i canviar el regravecord de puntuacioacute del nivell si srsquoha superat

Fig 10 Escena CLASSIC

Fig 11 Efecte de Boost de Gel

Script ClassicPad Aquest script simplement srsquoencarrega de la gestioacute del moviment de la lluna de joc Detecta si el jugador estagrave polsant a sobre drsquoella i es mou en consequumlegravencia Per al mode histograveria srsquoencarrega de si un projectil topa amb ella parar la partida i mostrar el menuacute de derrota Script Pause Menu Aquest script com el seu nom indica gestiona tot el me-nuacute de pausa Que quan es polsi a sobre del botoacute de pausa es pari el joc i es mostri la interfaccedil que quan polsem sobre lsquoreprendrersquo la partida actual segueixi on estava que es torni al menuacute o que es surti de la partida Script Boosts Aquest script srsquoencarrega drsquoinvocar un objecte aleatori que apareix cada x segons aleatograveriament per pantalla un cert temps Segons el boost es produeix un efecte diferent Per fer aixograve se li ha assignat el script a una imatge i srsquoha jugat amb el seu render (el component que fa que es mos-tri la imatge) Gragravecies a la funcioacute TimeTimeSinceLevelLoad que ens proporciona el temps que ha passat des de que srsquoha carregat el nivell sabem quan fer invisible o no lrsquoobjecte Aixiacute creat lrsquoalgoritme que mostra una imatge aleatograveriament drsquouna llista drsquoimatges sempre que no hi hagi un boost funcionant Ara amb un switch case segons la imatge que srsquoestagrave mos-trant crida a la funcioacute del boost que toca per a que realitzi lrsquoefecte adequat Un bon exemple eacutes el boost de gel que al collir-lo com veiem a la figura 11 mostra a tots els murs que no hagin sigut destruiumlts una imatge de neu que impedeix destruir-los

NIL PASCUAL FERNAacuteNDEZ CREACIOacute DrsquoUN VIDEOJOC MOgraveBIL ADDICTIU 9

Es poden trobar tots els boosts i efectes a lrsquoapartat 215 del document adjunt ldquoDesenvolupament del Jocrdquo Amb tots aquests components ja es podria jugar una par-tida ldquoCLASSICrdquo del mode lliure Per a construir els altres nivells del mode lliure srsquoha jugat amb potenciar o extreure aquestes funcions descrites per proporcionar un altre tipus de joc

bull Escena Double Trouble Aquiacute srsquoha duplicat la pilota de joc i srsquoha adaptat lrsquoentorn per a que el nivell sigui jugable

bull Escena Faster Aquest mode es juga al doble de la velocitat normal de joc utilitzant la funcioacute Ti-meTimeScale = 2 que duplica el temps

bull Escena Insight Aquest mode es juga sense veure els components del joc el jugador nomeacutes veu una estela que indica el moviment de la pilota i la lluna de joc

bull Escena Relax En aquest mode on nomeacutes es perdragrave la partida si aquesta cau al forat negre inferior Els murs mai poden ser destruiumlts i no apareixen boosts

653 Implementacioacute del Mode Histograveria

Per a aquest mode srsquoha utilitzat com a base lrsquoestructura del nivell ldquoCLASSICrdquo del mode lliure Amb aquesta es-tructura srsquohan eliminat els boosts i el marcador de pun-tuacioacute Consta drsquoun objectiu totalment diferent al mode lliure no volem aconseguir la major puntuacioacute sinoacute que volem destruir la nau enemiga i si pot ser en el menor temps possible Script Dialog Primerament srsquoha creat un sistema de diagravelegs en el que seguint el guioacute descrit al document adjunt ldquoDesenvolu-pament del Jocrdquo apartat 212 dos personatges ens ense-nyen a jugar a lrsquohora que ens narren una divertida histograve-ria Dit aixograve srsquoha creat un sistema drsquoescriptura on segons unes frases donades srsquoescriu lletra per lletra aconseguint lrsquoefecte de narracioacute dels videojocs Quan comprovem que srsquoha mostrat tota la frase per pan-talla mostrem un botoacute per a continuar amb la conversa i un altre botoacute per a saltar el diagraveleg i comenccedilar a jugar Agafant la primera lletra de la frase amb la funcioacute subs-tring() sabrem si quin personatge parla i hem de mostrar Script History_Ball La pilota srsquoha hagut drsquoadaptar a tots els nous compo-nents A meacutes srsquoha creat un sistema per a mostrar en tot mo-ment el temps que ha passat des de lrsquoinici del nivell Per fer-ho srsquohan utilitzat 2 variables pels minuts i segons Aixograve ha permegraves visualitzar amb meacutes comoditat el format de temps ldquominuts segonsrdquo amb la funcioacute toString()

permetent realitzar les comparacions de temps correcta-ment Script Launcher Aquest script srsquoencarrega un model de miacutessil que li indi-quem i crear una instagravencia drsquoaquest davant la nau amb una certa velocitat dirigit cap a la part inferior de la pan-talla Per aconseguir-ho srsquoutilitza un objecte auxiliar a lrsquoescena lsquoFirePointrsquo que eacutes situat sempre davant la nau on srsquoinstanciaragrave el model del miacutessil amb un cert impuls Po-dem visualitzar aquest sistema a la figura 12 Script ProjectileCollision Aquest script srsquoencarrega solament de destruir el miacutessil quan topi amb un objecte que no sigui la lluna de joc Eacutes un script per a optimitzar el rendiment del joc Un cop descrits els scripts en comuacute per a tots els nivells passem als scripts que a cada nivell soacuten diferents perograve que srsquoutilitzen per a una mateixa causa la gestioacute de la nau enemiga

bull Capiacutetols 1 i 2 Els capiacutetols 1 i 2 comparteixen el ma-teix moviment de la nau Aquest script mou la nau seguint un moviment aleatori Lrsquoalgorisme consisteix en que srsquoescull un punt aleatori a arribar i quan srsquoarriba srsquoescull un altre

bull Capiacutetol 3 Al tercer capiacutetol eacutes on veiem per primer cop una intelmiddotligegravencia artificial en el moviment de la nau aquesta fugiragrave de la pilota Per fer-ho srsquoha divi-dit el nivell en dues zones dreta i esquerra quan la pilota estigui a la zona de la dreta la nau es mouragrave a lrsquoesquerra i a la inversa Per a que no sigui impossi-ble tocar-la srsquoha ajustat la velocitat del seu movi-ment adequadament

bull Capiacutetol 4 Al quart capiacutetol la nau ja consta drsquouna intelmiddotligegravencia artificial meacutes avanccedilada en la que es mou segons a on la pilota estigui situada Lrsquoalgorisme consisteix en tenir la posicioacute de la pilota en tot moment i srsquoha dividit lrsquoespai de la partida en 4 quadrats com podem veure a la figura 13 Si la pilota estagrave al quadrat 1 la nau es mouragrave al qua-drat contrari el 4 Si la pilota es situa al quadrat 2 la nau es mouragrave al quadrat 3 Per a que no fos impossi-ble topar amb la nau srsquoha drsquoajustat la velocitat del moviment

bull Capiacutetol 5 Al capiacutetol final lrsquoalgoritme consta del ma-teix moviment que al nivell anterior perograve afegint un extra que si la nau es troba en el mateix quadrat que la pilota en el mateix instant de temps la nau redui-ragrave el seu tamany complicant lrsquoobjectiu drsquoaconseguir destruir-la

10 EEUAB TFG INFORMAgraveTICA CREACIOacute DrsquoUN VIDEOJOC MOgraveBIL ADDICTIU

Fig 12 Nau amb lrsquoobjecte lsquoFire-

Pointrsquo

Fig 13 Divisioacute de quadres nivells 4 i 5

Per a veure visualment com funcionen les funcions expli-cades en aquest apartat es pot consultar el viacutedeo adjunt ldquoDEMO_GRAVITY_PONGrdquo

66 Proves

Gragravecies a la metodologia de desenvolupament de Rapid Prototyping srsquoha pogut anar testejant cada mogravedul desen-volupat al moment aixiacute extraient tots els resultats de tests ragravepidament Srsquohan realitzat 4 tipus de proves diferents

bull A les proves drsquounitat srsquoha testejat que els diferents mograveduls del sistema funcionin correctament Com que si un miacutessil drsquouna nau enemiga glopeja la lluna de joc es mostra el menuacute correcte o si tenim les su-ficients monedes per a comprar una textura la po-dem comprar satisfactograveriament entre altres

bull A les proves drsquointegracioacute srsquoha testejat que les in-teraccions entre els diferents escenaris del sistema sigui correcte Srsquoha provat que es pugi accedir a tots els nivells del videojoc i que des de aquests es pu-gui tornar correctament al menuacute principal a traveacutes del menuacute de pausa

bull Les proves de validacioacute han servit per comprovar que hem complit amb els requisits del projecte Hem testejat el correcte log in amb google la visualitzacioacute dels marcadors i la visualitzacioacute dels objectius entre altres

bull Per acabar les proves de sistema han servit gragravecies a la developer console [24] comprovar que el joc srsquoha executat correctament variant els dispositius i versions drsquoAndroid

A lrsquoapartat 31 del document adjunt ldquoDesenvolupament del Jocrdquo es poden trobar la totalitat de les proves realitza-des de cada tipus amb els seus resultats corresponents

7 CONCLUSIONS

I ja per finalitzar aquest document explicareacute quines soacuten les conclusions que he extret sobre el projecte Primer de tot crec que la planificacioacute que vaig realitzar a

lrsquoinici ha sigut lrsquoencertada Les petites alteracions que srsquohan acabat realitzant (com podem veure en el diagrama de Gantt real de lrsquoapegravendix 2) han estat meacutes enfocades a avanccedilar lrsquoinici de les tasques que no pas a endarrerir-les a causa de la situacioacute excepcional que hem viscut

Respecte a la fase drsquoimplementacioacute considero que

srsquohan completat tots els objectius que es presentaven a lrsquoinici del projecte Srsquohan desenvolupat totes les funcions que es van proposar al document de requisits amb lrsquoajuda de la psicograveloga que havia de tenir el joc per a que es considereacutes addictiu i aixiacute ha sigut Per lo que podem concloure que hem desenvolupat un joc addictiu per a Android satisfactograveriament A meacutes srsquoha de dir que lrsquoaplicacioacute eacutes responsive [12] i molt fagravecilment escalable

I com a uacuteltim punt voldria comentar que mrsquohagueacutes

agradat disposar de meacutes temps i recursos per a millorar tot lrsquoaspecte visual de lrsquoaplicacioacute encara meacutes fins a arribar a apropar-se al nivell de mitjanes produccions aquest aspecte milloraria lrsquointeregraves per al joc

71 Futures Accions

A continuacioacute detallarem aquelles accions futures que he considerat que pot ser interessant desenvolupar en prograveximes ampliacions del joc per tal que lrsquoexperiegravencia drsquouacutes dels usuaris sigui la millor possible

bull Un tutorial molt meacutes visual que es mostri el primer cop que srsquoiniciiuml lrsquoaplicacioacute on no solament srsquoexpliqui sobre la mecagravenica del joc sinoacute que tambeacute es guiiuml a lrsquousuari a traveacutes dels menuacutes la interfaccedil i els diferents modes i nivells de joc

bull Una integracioacute drsquoalgun mode de joc online on es po-gueacutes competir contra un altre jugador en temps real oferiria molt drsquoatractiu i enriquiria molt lrsquoaplicacioacute

bull Per acabar com ja hem comentat una millora visual en la que no mrsquohe pogut centrar en especial durant el projecte on amb lrsquoajuda drsquoalgun professional en la mategraveria es crearien unes visuals progravepies per al joc

8 AGRAIumlMENTS

En primer lloc mrsquoagradaria agrair a la meva famiacutelia el suport incondicional que mrsquohan donat en tot moment durant els quatre anys que porto de carrera Sense ells res de tot aixograve hauria estat possible

Tambeacute mrsquoagradaria agrair la Gemma Saacutenchez la meva tutora del TFG pels consells i lrsquoajuda que mrsquoha ofert du-rant aquests mesos tant durs i especials de projecte insis-tint en quegrave treballes ben dur des del primer dia ha per-megraves que aquest treball hagi pogut tirar endavant amb meacutes facilitat

Finalment voldria agrair a les altres persones que han fet aquest treball possible des de la psicograveloga experta que ens va ajudar a definir molt beacute els requisis fins a tots els companys i amics que han treballat com a testers del joc trobant lsquobugsrsquo i fent propostes sobre possibles millores drsquoaquest

NIL PASCUAL FERNAacuteNDEZ CREACIOacute DrsquoUN VIDEOJOC MOgraveBIL ADDICTIU 11

IacuteNDEX DE FIGURES

Fig 1 lsquoRapid Prototypingrsquo3

Fig 2 Diagrama de Classes lsquoNavegar per la Tendarsquo5

Fig 3 Descripcioacute Cas drsquouacutes ldquoComprar textura pilotardquo6

Fig 4 Diagrama de Classes i Escenes6

Fig 5 Diagrama de Sequumlegravencia 1a Execucioacute6

Fig 6 Escena Menuacute Principal7

Fig 7 Escena Mode Lliure7

Fig 8 Escena Botiga8

Fig 9 Escena Mode Histograveria8

Fig 10 Escena lsquoCLASSICrsquo8

Fig 11 Efecte Boost de Gel8

Fig 12 Nau amb objecte lsquofirepointrsquo10

Fig 13 Divisioacute de quadres nivells 4 i 510

REFEREgraveNCIES

[1] Desenvolupament lsquoRapid prototypingrsquo httpseswikipediaorgwikiModelo_de_prototipos

[2] Article de lrsquoaddiccioacute als videojocs httpspsicologiaymentecomclinicaadiccion-a-videojuegos

[3] Per quegrave enganxen els videojocs httpswwwlavanguardiacomestilos-de-vida2012062954317381414por-que-enganchan-los-videojuegoshtml

[4] Historia dels Videojocs httpswwwfibupceduretroinformaticahistoriavideojocshtml

[5] Requisits miacutenims Candy Crush Saga httpswwwmicrosoftcomes-espcandy-crush-sa-ga9nblggh18846activetab=pivotregionofsystemrequirementstab

[6] Document SRS drsquoexemple httpswwwdocsitycomesejemplo-de-documento-srs4930539

[7] El lsquoFirst clickrsquo test httpsusabilityhubcomguidesfirst-click-testing

[8] Quumlestionari lsquoFirst clickrsquo test I httpsowsiocm7v7lx3h4

[9] Quumlestionari lsquoFirst clickrsquo test II httpsowsiocmj6574121

[10] Quumlestionari lsquoFirst clickrsquo test III httpsowsiocm7df25ouc

[11] Scroll Rect de Unity httpsdocsunity3dcomes20184Manualscript-ScrollRecthtml

[12] Disseny Responsive httpswww40defiebrecomque-esdiseno-responsi-ve~text=El20disentildeo20web20responsive20o3B20ordenador2C20tablet2C20smartphonehellip

[13] Canvas de Unity httpsdocsunity3dcomescurrentManualUICanvashtml

[14] Playerprefs de Unity httpsdocsunity3dcomescurrentScriptReferencePlayerPrefshtml

[15] ldquoDisseny de Softwarerdquo Assignatura del grau que ha ser-

vit de font bagravesica dels coneixements aplicats tant a An-droid com als tests amb usuaris La seva guia docent la trobem disponible a httpsdocsunity3dcomManualUnityManualhtml

[16] ldquoTest i Qualitat del Softwarerdquo Assignatura del grau que ha servit de font bagravesica dels coneixements aplicats per als tests del codi La seva guia docent la trobem disponible a httpsguiesuabcatguies_docentspublicportalhtml2019assignatura102758ca

[17] ldquoDocumentacioacuten de Unityrdquo Documentacioacute completa del motor gragravefic lsquoUnityrsquo que srsquoha anat consultant en tot mo-ment del desenvolupament httpsdocsunity3dcomManualUnityManualhtml httpswwww3schoolscomcs

[18] ldquoStack Overflowrdquo Fograverum de preguntes i respostes rela-cionades amb el moacuten de la programacioacute i la informagravetica Srsquoha anat consultant durant la fase drsquoimplementacioacute Al-gunes de les pagravegines que voldria destacar

o Text borroacutes a Unity httpsstackoverflowcomquestions16506737unity3d-3d-text-always-displayed-blur16507861

o Sing-In Google httpsstackoverflowcomquestions59599895problems-with-google-sign-in-in-unity

[19] ldquoComo firmar tu apprdquo Documentacioacute per a desenvolupa-dors Android sobre com signar una aplicacioacute per a que totes les funcions de google funcionin correctament httpsdeveloperandroidcomstudiopublishapp-signinggoogle-play-app-signing

[20] ldquoUnity Ads Documentationrdquo Documentacioacute sobre el sis-tema de publicitat de unity utilitzat a lrsquoapp httpsdocsunity3dcomPackagescomunityads34manualindexhtml

[21] ldquoGoogle play games plugin for unityrdquo Plugin per a unity per a poder utilitzar totes les funcions de google play games httpsgithubcomplaygameservicesplay-games-plugin-for-unity

[22] ldquoFlaticonrdquo Web de recursos gratuiumlts drsquoon srsquohan descarre-gat els sprites que srsquoutilitzen al joc httpswwwflaticones

[23] ldquoUnity Asset Storerdquo Web de recursos gratuiumlts de unity drsquoon srsquohan descarregat els models dels planetes que srsquoutilitzen al joc entre altres httpsassetstoreunitycomgclid=CjwKCAjwlZf3BRABEiwA8Q0qq9NcH2nCMrUHDdQUrV0K7dNiZD6JMAy7G8x93NPLzD3wZKmhiK1MQBoCvR0QAvD_BwE

[24] ldquoAyuda de Play Consolerdquo Documentacioacute sobre al play console plataform on es puja lrsquoaplicacioacute per a que es vi-sualitzi a la play store que srsquoha consultat quan han sorgit problemes httpssupportgooglecomgoogleplayandroid-developerhl=estopic=3450769

[25] ldquoPongrdquo Primer videojoc de la histograveria httpseswikipediaorgwikiPong~text=Pong20(o20Tele-Pong)mesa20(o20ping20pong)

[26] ldquoFlappy Birdsrdquo httpseswikipediaorgwikiFlappy_Bird

[27] ldquoCandy Crushrdquo httpswwwxatakamovilcommovil-y-sociedadcandy-crush-saga-la-ciencia-detras-de-la-adiccion

12 EEUAB TFG INFORMAgraveTICA CREACIOacute DrsquoUN VIDEOJOC MOgraveBIL ADDICTIU

APEgraveNDIX

A1 DIAGRAMA DE GANTT DE LA PLANIFICACIOacute INICIAL

A1 Diagrama de Gantt corresponent a la planificacioacute inicial del projecte En aquest diagrama podem veure les diferents tasquesetapes de desenvolupament amb les setmanes que es va planificar destinar a cada una

A2 SECCIOacute DrsquoAPEgraveNDIX

A2 Diagrama de Gantt corresponent a la planificacioacute final del projecte Tal i com podem veure tenim alguns canvis en els temps respecte a la planificacioacute inicial es va acurtar la fase de desenvolupament ja que amb la situacioacute excepcional del paiacutes srsquoha disposat de molt meacutes

temps per al desenvolupament lo qual ha permegraves avanccedilar el pas a produccioacute i la documentacioacute del projecte

NIL PASCUAL FERNAacuteNDEZ CREACIOacute DrsquoUN VIDEOJOC MOgraveBIL ADDICTIU 13

A3 RESULTAT DEL ESTUDI DE DISSENY ndash TASCA 1

A3 Resultat Estudi 1 - Tasca 1 Com observem el 90 dels testers han completat lrsquoobjectiu de la tasca

A4 RESULTAT DEL ESTUDI DE DISSENY ndash TASCA 1 (MAPA DE CALOR)

A4 Resultat estudi 1 ndash Tasca 1 (Mapa de Calor) Com podem observar la zona de tocs de dit del 70 dels tocs se centra en el botoacute correcte

14 EEUAB TFG INFORMAgraveTICA CREACIOacute DrsquoUN VIDEOJOC MOgraveBIL ADDICTIU

Page 6: Nil Pascual Fernández - UAB Barcelona · 2020. 9. 2. · llançar la seva primera consola: la Playstation, que tenia un reproductor de CDs, lo qual comportava que els vi-deojocs

6 EEUAB TFG INFORMAgraveTICA CREACIOacute DrsquoUN VIDEOJOC MOgraveBIL ADDICTIU

64 Disseny i Test

Un cop redactats els requisits vaig passar a redactar el ldquoCAPIacuteTOL 2 DISSENY I CONSTRUCCIOacute DEL VIDEO-JOCrdquo que conteacute les seguumlents seccions clau

- Disseny Artiacutestic Conteacute tota la informacioacute per a en-tendre el concepte artiacutestic del videojoc Tota la his-toria en la que es desenvolupa aixiacute com un guioacute complet de tots els diagravelegs del mode historia entre altres Una seccioacute interessant que apareix eacutes la explicacioacute dels controls que hauragrave drsquoutilitzar lrsquousuari i perquegrave srsquohan fet aixiacute on es concreta que el joc nomeacutes con-tindragrave dos tipus de moviments el toc amb el dit i lrsquoscroll lateral Al simplificar el joc a dos tipus de moviments srsquoaconsegueix molta senzillesa que a nivell pragravectic es tradueix a un facilitat molt gran en lrsquoaprenentatge drsquouacutes Finalment conteacute una descripcioacute completa de tots els boosts(objectes aleatoris) que intervenen a les partides i els efectes que tindran

- Disseny del Software En aquesta seccioacute srsquoha desenvolupat un diagrama de classes i escenes a partir de tots els casos drsquouacutes Srsquoha optat per incloure les escenes (progravepies del motor Unity) dins drsquoaquest diagrama ja que proporcionen molta meacutes facilitat a lrsquohora drsquoentendre la relacioacute de les classes ja que algunes no intervenen entre siacute directament sinoacute a partir drsquouna escena especiacutefica

Fig 4 Diagrama de classes i escenes

Amb el diagrama definit es descriuen la funcionalitats de cada classe junt amb els seus atributs propis i les funcions que la formen

Definides les funcions de les classes srsquohan descrit els diagrames de sequumlegravencia molt importants per a observar el flux de les diverses accions directes que pot realitzar lrsquousuari amb la interfaccedil I en consequumlegravencia com reacciona el motor a partir de cada accioacute amb les escenes arxius de

guardat i els serveis de google Ha sigut molt uacutetil per a realitzar un desenvolupament correcte

Fig 5 Diagrama de Sequumlegravencia de la primera execucioacute del Joc

La seccioacute inclou un esboacutes de tota la interfaccedil que interactua amb lrsquousuari Per aconseguir un bon resultat drsquoaquesta es van preparar unes imatges que reconstruiumlen la interfaccedil i es va fer un first-click test [7] amb lrsquoeina web lsquoopti-malworkshoprsquo A causa de la versioacute gratuiumlta srsquohan realitzat 3 estudis dife-rents ja que lrsquoeina limitava la quantitat de preguntes per estudi [8] [9] [10] Gragravecies a aquesta eina amb cada estudi realitzat hem obtingut uns resultats molt visuals que ens han servit per conegraveixer realment si els menuacutes estaven ben estructurats El resultat com podem veure a les imatges de la seccioacute A2 i A3 del apegravendix ha sigut molt satisfactori i no srsquoha necessitat de realitzar cap canvi a la interfaccedil de lrsquousuari Podem dir que el plantejament drsquouna interfaccedil molt senzi-lla i intuiumltiva ha sigut correcte

- Implementacioacute del software Per acabar questa

seccioacute conteacute tots els elements artiacutestics que interve-nen en el joc (models 3D sprites) totes les escenes i la icona que es mostraragrave a la play store

65 Desenvolupament de LrsquoAplicacioacute

651 Implementacioacute del Menuacute Principal

Respecte a la implementacioacute del videojoc es va comenccedilar per elaborar el menuacute principal Per fer-ho es va iniciar el desenvolupament del script ldquoGameManagerrdquo Srsquoha de dir que tots els components visuals del joc srsquohan creat dins drsquouna estructura canvas [13] de Unity per a crear una interfaccedil responsive [12]

Script GameManager Per a crear aquest script encarregat de guardar totes les dades srsquoha utilitzat els PlayerPrefs [14] de unity Soacuten funcions del tipus clau-valor on amb un id pots guardar un valor a un espai de memograveria del dispositiu Aquest GameManager com srsquoexplica a la documentacioacute

NIL PASCUAL FERNAacuteNDEZ CREACIOacute DrsquoUN VIDEOJOC MOgraveBIL ADDICTIU 7

del desenvolupament del joc srsquoencarrega tant de crear lrsquoarxiu de guardat quan srsquoinicialitza per primer com el joc com de carregar els valors drsquoaquests un cop ja srsquoha jugat meacutes drsquoun cop Amb el GameManager com a estructura principal srsquoha comenccedilat a desenvolupar lrsquoescena del Menuacute principal Escena lsquoMenuacutersquo ndash Menuacute principal Per aquest menuacute principal que veiem a la figura 6 es buscava una sensacioacute drsquoimmersioacute al joc que et fes sentir a lrsquoespai Per aixograve es va decidir dividir les 4 parts principals drsquoaquest menuacute Menuacute principal mode lliure mode histo-ria i botiga en diferents punts de lrsquoespai 3D formant una circumferegravencia Aixograve ha permegraves desenvolupar la seguumlent foacutermula per a la cagravemera de joc que ofereix una sensacioacute de flotar a lrsquoespai cameraTransformrotation = QuaternionSlerp (camera-TransformrotationcameraDesiredLookAtrotation CAMERA_TRANSITION_SPEED TimedeltaTime) Amb aquesta foacutermula estem assignant al valor de rotacioacute de la cagravemera del joc una nova rotacioacute entre la seva posi-cioacute actual (cameraTransformrotation) i la posicioacute destiacute (cameraDesiredLookAtrotation) Gragravecies a la funcioacute slerp() realitzaragrave un moviment molt lleuger seguint la velocitat que li indiquem Per a veure millor aquest efecte de cagravemera es pot consul-tar el viacutedeo adjunt ldquoDEMO_GRAVITY_PONGrdquo

Escena lsquoMenuacutersquo ndash Mode Lliure El seguumlent pas ja amb la cagravemera a punt ha sigut desenvo-lupar el llistat de nivells del mode lliure que trobem a la figura 7 Ha sigut una decisioacute difiacutecil i bastant creativa ja que es volia una llista de nivells molt visual i vaig decidir mostrar els nivells com a imatges Investigant vaig trobar que mitjanccedilant codi pots trobar i guardar a variables els sprites que estiguin dins de la carpeta que crea unity de ldquoResourcesrdquo Amb aquesta tegravecnica i un Scroll Rect [11] podem passar els nivells amb un scroll lateral Despreacutes srsquoha afegit la imatge i el text dels tiquets a la part inferior del nivell i el regravecord del nivell a sobre drsquoaquest Per finalitzar srsquoha creat el botoacute de tornar per a que la cagravemera torni a rotar fins la posicioacute del menuacute principal Escena lsquoMenuacutersquo ndash Botiga La botiga com observem ala figura 8 manteacute una estruc-tura semblant al llistat de nivells perograve amb diferegravencies notables En comptes de carregar varies imatges carrega una imat-ge sencera amb totes les textures i la divideix en textures de 256x256 per a una millor optimitzacioacute Teacute un indica-dor monedes del joc i teacute un botoacute extra per a canviar entre la tenda de textures de la pilota i de la lluna de joc

Fig 6 Menuacute Principal

Fig 7 Mode lliure

Escena lsquoMenuacutersquo ndash Mode Histograveria El llistat de nivells del mode histograveria no utilitza la tegravecnica de cagraverrega de imatges pels nivells sinoacute que srsquohan utilitzat uns models gratuiumlts de planetes 3D Cada planeta forma un nivell amb el seu nom i el seu regravecord de temps propi Un cop acabada tota la visual de lrsquoescena del menuacute srsquoha creat el script que el gestionaria anomenat ldquoMainMenurdquo

Fig 8 Botiga

Figura 9 Mode Histograveria

Script MainMenu Aquest script srsquoencarrega de carregar i gestionar els com-ponents de lrsquoescena del menuacute del llistat de nivells i la botiga Primer de tot carrega gragravecies als playerPrefs guardats tots els textos de regravecords de puntuacioacute de cada nivell els tiquets les monedes i les textures comprades de la pilota i lluna de joc que lrsquousuari havia obtingut Srsquoha creat un sistema tant per al llistat de nivells com a la botiga de bloqueig on al llistat de nivells es bloquegen tots els botons dels jocs menys del primer fins que en aquest no srsquohagi obtingut una puntuacioacute miacutenima de 5 i a la botiga es guarda una matriu de desbloquejos que indica quines textures srsquohan comprat i ja no apareixeragrave el seu preu i quines no Tambeacute srsquoencarrega de a la botiga mostrar com quedaria la textura comprada a la pilota o a la lluna de joc i apli-car-la per a quan juguem qualsevol partida Aquest script tambeacute carrega la muacutesica del menuacute

8 EEUAB TFG INFORMAgraveTICA CREACIOacute DrsquoUN VIDEOJOC MOgraveBIL ADDICTIU

Script History_Levels Aquest script srsquoencarrega de la gestioacute del menuacute ldquoHISTO-RIArdquo Srsquoha creat un sistema de visualitzacioacute on el jugador can-via de nivell mitjanccedilant dues fletxes i un jugador no po-dragrave accedir a un nivell fins que hagi completat lrsquoanterior Junt amb aquest sistema de bloqueig segons el nivell on es situiuml el jugador es mostraragrave el millor temps en que lrsquoha acabat (si es que hi ha) i el nom del nivell Amb aquests components descrits fins ara ja tindriacuteem tot el menuacute principal acabat Un cop acabat el menuacute srsquoha passat a crear els nivells del mode lliure

652 Implementacioacute del Mode Lliure

El mode lliure consta de 5 nivells amb mecagraveniques de joc variants perograve compartint lrsquoestructura principal del joc Per a explicar com srsquoha desenvolupat aquest mode srsquoutilitzaragrave de referegravencia el mode de joc ldquoCLASSICrdquo el mode de joc original on primer srsquoexplicaran els compo-nents de lrsquoescena i despreacutes els scripts que la componen Una part molt important drsquoaquestes escenes eacutes el disseny seguint el esquema senzill i visual del joc srsquoha passat per diversos plantejaments murs reals una barra plana Finalment despreacutes drsquoun extens plantejament es va deci-dir aplicar el disseny que veiem a la figura 10 En aquest disseny podem observar que els murs soacuten llums LED Aquesta decisioacute srsquoha considerat la millor ja que oferia tota la informacioacute que necessita el jugador dels murs sense ser un objecte molt gran i amb molt detall Finalment srsquohan utilitzat imatges de la temagravetica espacial per a completar el fons de lrsquoescena Escena CLASSIC Lrsquoescena drsquoaquest mode de joc la componen directament la pilota la lluna de joc els murs de joc la puntuacioacute el menuacute de pausa i els tiquets disponibles Perograve realment hi ha molts meacutes components secundaris que no srsquoentraragrave en detall a explicar-los perograve que valia la pena mencionar-los com uns murs secundaris invisibles que srsquoutilitzen per detectar si el jugador perd quan ha destruiumlt un mur ob-jectes que solament es mostren quan srsquoagafa un boost llums que segueixen els objectes per crear un efecte pri-mer pla la interfaccedil del menuacute de pausa Presentats aixiacute els components de lrsquoescena eacutes meacutes interes-sant veure els scripts que afecten a aquests components Script ClassicBall Aquest script que controla la pilota eacutes el meacutes important de lrsquoescena ja que gestiona tot el que pot tenir contacte amb ella La funcioacute meacutes important drsquoaquest script eacutes sens dubte OnCollisionEnter() Aquest funcioacute nativa de Unity ser-veix per a gestionar quan lrsquoobjecte topa amb un altre objecte Quan la pilota topa amb un mur detecta quin eacutes

i segons el seu color actual li canviaragrave el seu color al que toqui i suma un punt Si la pilota topa amb la lluna de joc simplement augmen-taragrave la seva velocitat Si topa amb el forat negre de la part inferior o traspassa un mur destruiumlt srsquoencarrega de parar la partida i la muacutesica mostrar el menuacute de derrota afegir a les monedes totals del jugador les guanyades aquella partida i canviar el regravecord de puntuacioacute del nivell si srsquoha superat

Fig 10 Escena CLASSIC

Fig 11 Efecte de Boost de Gel

Script ClassicPad Aquest script simplement srsquoencarrega de la gestioacute del moviment de la lluna de joc Detecta si el jugador estagrave polsant a sobre drsquoella i es mou en consequumlegravencia Per al mode histograveria srsquoencarrega de si un projectil topa amb ella parar la partida i mostrar el menuacute de derrota Script Pause Menu Aquest script com el seu nom indica gestiona tot el me-nuacute de pausa Que quan es polsi a sobre del botoacute de pausa es pari el joc i es mostri la interfaccedil que quan polsem sobre lsquoreprendrersquo la partida actual segueixi on estava que es torni al menuacute o que es surti de la partida Script Boosts Aquest script srsquoencarrega drsquoinvocar un objecte aleatori que apareix cada x segons aleatograveriament per pantalla un cert temps Segons el boost es produeix un efecte diferent Per fer aixograve se li ha assignat el script a una imatge i srsquoha jugat amb el seu render (el component que fa que es mos-tri la imatge) Gragravecies a la funcioacute TimeTimeSinceLevelLoad que ens proporciona el temps que ha passat des de que srsquoha carregat el nivell sabem quan fer invisible o no lrsquoobjecte Aixiacute creat lrsquoalgoritme que mostra una imatge aleatograveriament drsquouna llista drsquoimatges sempre que no hi hagi un boost funcionant Ara amb un switch case segons la imatge que srsquoestagrave mos-trant crida a la funcioacute del boost que toca per a que realitzi lrsquoefecte adequat Un bon exemple eacutes el boost de gel que al collir-lo com veiem a la figura 11 mostra a tots els murs que no hagin sigut destruiumlts una imatge de neu que impedeix destruir-los

NIL PASCUAL FERNAacuteNDEZ CREACIOacute DrsquoUN VIDEOJOC MOgraveBIL ADDICTIU 9

Es poden trobar tots els boosts i efectes a lrsquoapartat 215 del document adjunt ldquoDesenvolupament del Jocrdquo Amb tots aquests components ja es podria jugar una par-tida ldquoCLASSICrdquo del mode lliure Per a construir els altres nivells del mode lliure srsquoha jugat amb potenciar o extreure aquestes funcions descrites per proporcionar un altre tipus de joc

bull Escena Double Trouble Aquiacute srsquoha duplicat la pilota de joc i srsquoha adaptat lrsquoentorn per a que el nivell sigui jugable

bull Escena Faster Aquest mode es juga al doble de la velocitat normal de joc utilitzant la funcioacute Ti-meTimeScale = 2 que duplica el temps

bull Escena Insight Aquest mode es juga sense veure els components del joc el jugador nomeacutes veu una estela que indica el moviment de la pilota i la lluna de joc

bull Escena Relax En aquest mode on nomeacutes es perdragrave la partida si aquesta cau al forat negre inferior Els murs mai poden ser destruiumlts i no apareixen boosts

653 Implementacioacute del Mode Histograveria

Per a aquest mode srsquoha utilitzat com a base lrsquoestructura del nivell ldquoCLASSICrdquo del mode lliure Amb aquesta es-tructura srsquohan eliminat els boosts i el marcador de pun-tuacioacute Consta drsquoun objectiu totalment diferent al mode lliure no volem aconseguir la major puntuacioacute sinoacute que volem destruir la nau enemiga i si pot ser en el menor temps possible Script Dialog Primerament srsquoha creat un sistema de diagravelegs en el que seguint el guioacute descrit al document adjunt ldquoDesenvolu-pament del Jocrdquo apartat 212 dos personatges ens ense-nyen a jugar a lrsquohora que ens narren una divertida histograve-ria Dit aixograve srsquoha creat un sistema drsquoescriptura on segons unes frases donades srsquoescriu lletra per lletra aconseguint lrsquoefecte de narracioacute dels videojocs Quan comprovem que srsquoha mostrat tota la frase per pan-talla mostrem un botoacute per a continuar amb la conversa i un altre botoacute per a saltar el diagraveleg i comenccedilar a jugar Agafant la primera lletra de la frase amb la funcioacute subs-tring() sabrem si quin personatge parla i hem de mostrar Script History_Ball La pilota srsquoha hagut drsquoadaptar a tots els nous compo-nents A meacutes srsquoha creat un sistema per a mostrar en tot mo-ment el temps que ha passat des de lrsquoinici del nivell Per fer-ho srsquohan utilitzat 2 variables pels minuts i segons Aixograve ha permegraves visualitzar amb meacutes comoditat el format de temps ldquominuts segonsrdquo amb la funcioacute toString()

permetent realitzar les comparacions de temps correcta-ment Script Launcher Aquest script srsquoencarrega un model de miacutessil que li indi-quem i crear una instagravencia drsquoaquest davant la nau amb una certa velocitat dirigit cap a la part inferior de la pan-talla Per aconseguir-ho srsquoutilitza un objecte auxiliar a lrsquoescena lsquoFirePointrsquo que eacutes situat sempre davant la nau on srsquoinstanciaragrave el model del miacutessil amb un cert impuls Po-dem visualitzar aquest sistema a la figura 12 Script ProjectileCollision Aquest script srsquoencarrega solament de destruir el miacutessil quan topi amb un objecte que no sigui la lluna de joc Eacutes un script per a optimitzar el rendiment del joc Un cop descrits els scripts en comuacute per a tots els nivells passem als scripts que a cada nivell soacuten diferents perograve que srsquoutilitzen per a una mateixa causa la gestioacute de la nau enemiga

bull Capiacutetols 1 i 2 Els capiacutetols 1 i 2 comparteixen el ma-teix moviment de la nau Aquest script mou la nau seguint un moviment aleatori Lrsquoalgorisme consisteix en que srsquoescull un punt aleatori a arribar i quan srsquoarriba srsquoescull un altre

bull Capiacutetol 3 Al tercer capiacutetol eacutes on veiem per primer cop una intelmiddotligegravencia artificial en el moviment de la nau aquesta fugiragrave de la pilota Per fer-ho srsquoha divi-dit el nivell en dues zones dreta i esquerra quan la pilota estigui a la zona de la dreta la nau es mouragrave a lrsquoesquerra i a la inversa Per a que no sigui impossi-ble tocar-la srsquoha ajustat la velocitat del seu movi-ment adequadament

bull Capiacutetol 4 Al quart capiacutetol la nau ja consta drsquouna intelmiddotligegravencia artificial meacutes avanccedilada en la que es mou segons a on la pilota estigui situada Lrsquoalgorisme consisteix en tenir la posicioacute de la pilota en tot moment i srsquoha dividit lrsquoespai de la partida en 4 quadrats com podem veure a la figura 13 Si la pilota estagrave al quadrat 1 la nau es mouragrave al qua-drat contrari el 4 Si la pilota es situa al quadrat 2 la nau es mouragrave al quadrat 3 Per a que no fos impossi-ble topar amb la nau srsquoha drsquoajustat la velocitat del moviment

bull Capiacutetol 5 Al capiacutetol final lrsquoalgoritme consta del ma-teix moviment que al nivell anterior perograve afegint un extra que si la nau es troba en el mateix quadrat que la pilota en el mateix instant de temps la nau redui-ragrave el seu tamany complicant lrsquoobjectiu drsquoaconseguir destruir-la

10 EEUAB TFG INFORMAgraveTICA CREACIOacute DrsquoUN VIDEOJOC MOgraveBIL ADDICTIU

Fig 12 Nau amb lrsquoobjecte lsquoFire-

Pointrsquo

Fig 13 Divisioacute de quadres nivells 4 i 5

Per a veure visualment com funcionen les funcions expli-cades en aquest apartat es pot consultar el viacutedeo adjunt ldquoDEMO_GRAVITY_PONGrdquo

66 Proves

Gragravecies a la metodologia de desenvolupament de Rapid Prototyping srsquoha pogut anar testejant cada mogravedul desen-volupat al moment aixiacute extraient tots els resultats de tests ragravepidament Srsquohan realitzat 4 tipus de proves diferents

bull A les proves drsquounitat srsquoha testejat que els diferents mograveduls del sistema funcionin correctament Com que si un miacutessil drsquouna nau enemiga glopeja la lluna de joc es mostra el menuacute correcte o si tenim les su-ficients monedes per a comprar una textura la po-dem comprar satisfactograveriament entre altres

bull A les proves drsquointegracioacute srsquoha testejat que les in-teraccions entre els diferents escenaris del sistema sigui correcte Srsquoha provat que es pugi accedir a tots els nivells del videojoc i que des de aquests es pu-gui tornar correctament al menuacute principal a traveacutes del menuacute de pausa

bull Les proves de validacioacute han servit per comprovar que hem complit amb els requisits del projecte Hem testejat el correcte log in amb google la visualitzacioacute dels marcadors i la visualitzacioacute dels objectius entre altres

bull Per acabar les proves de sistema han servit gragravecies a la developer console [24] comprovar que el joc srsquoha executat correctament variant els dispositius i versions drsquoAndroid

A lrsquoapartat 31 del document adjunt ldquoDesenvolupament del Jocrdquo es poden trobar la totalitat de les proves realitza-des de cada tipus amb els seus resultats corresponents

7 CONCLUSIONS

I ja per finalitzar aquest document explicareacute quines soacuten les conclusions que he extret sobre el projecte Primer de tot crec que la planificacioacute que vaig realitzar a

lrsquoinici ha sigut lrsquoencertada Les petites alteracions que srsquohan acabat realitzant (com podem veure en el diagrama de Gantt real de lrsquoapegravendix 2) han estat meacutes enfocades a avanccedilar lrsquoinici de les tasques que no pas a endarrerir-les a causa de la situacioacute excepcional que hem viscut

Respecte a la fase drsquoimplementacioacute considero que

srsquohan completat tots els objectius que es presentaven a lrsquoinici del projecte Srsquohan desenvolupat totes les funcions que es van proposar al document de requisits amb lrsquoajuda de la psicograveloga que havia de tenir el joc per a que es considereacutes addictiu i aixiacute ha sigut Per lo que podem concloure que hem desenvolupat un joc addictiu per a Android satisfactograveriament A meacutes srsquoha de dir que lrsquoaplicacioacute eacutes responsive [12] i molt fagravecilment escalable

I com a uacuteltim punt voldria comentar que mrsquohagueacutes

agradat disposar de meacutes temps i recursos per a millorar tot lrsquoaspecte visual de lrsquoaplicacioacute encara meacutes fins a arribar a apropar-se al nivell de mitjanes produccions aquest aspecte milloraria lrsquointeregraves per al joc

71 Futures Accions

A continuacioacute detallarem aquelles accions futures que he considerat que pot ser interessant desenvolupar en prograveximes ampliacions del joc per tal que lrsquoexperiegravencia drsquouacutes dels usuaris sigui la millor possible

bull Un tutorial molt meacutes visual que es mostri el primer cop que srsquoiniciiuml lrsquoaplicacioacute on no solament srsquoexpliqui sobre la mecagravenica del joc sinoacute que tambeacute es guiiuml a lrsquousuari a traveacutes dels menuacutes la interfaccedil i els diferents modes i nivells de joc

bull Una integracioacute drsquoalgun mode de joc online on es po-gueacutes competir contra un altre jugador en temps real oferiria molt drsquoatractiu i enriquiria molt lrsquoaplicacioacute

bull Per acabar com ja hem comentat una millora visual en la que no mrsquohe pogut centrar en especial durant el projecte on amb lrsquoajuda drsquoalgun professional en la mategraveria es crearien unes visuals progravepies per al joc

8 AGRAIumlMENTS

En primer lloc mrsquoagradaria agrair a la meva famiacutelia el suport incondicional que mrsquohan donat en tot moment durant els quatre anys que porto de carrera Sense ells res de tot aixograve hauria estat possible

Tambeacute mrsquoagradaria agrair la Gemma Saacutenchez la meva tutora del TFG pels consells i lrsquoajuda que mrsquoha ofert du-rant aquests mesos tant durs i especials de projecte insis-tint en quegrave treballes ben dur des del primer dia ha per-megraves que aquest treball hagi pogut tirar endavant amb meacutes facilitat

Finalment voldria agrair a les altres persones que han fet aquest treball possible des de la psicograveloga experta que ens va ajudar a definir molt beacute els requisis fins a tots els companys i amics que han treballat com a testers del joc trobant lsquobugsrsquo i fent propostes sobre possibles millores drsquoaquest

NIL PASCUAL FERNAacuteNDEZ CREACIOacute DrsquoUN VIDEOJOC MOgraveBIL ADDICTIU 11

IacuteNDEX DE FIGURES

Fig 1 lsquoRapid Prototypingrsquo3

Fig 2 Diagrama de Classes lsquoNavegar per la Tendarsquo5

Fig 3 Descripcioacute Cas drsquouacutes ldquoComprar textura pilotardquo6

Fig 4 Diagrama de Classes i Escenes6

Fig 5 Diagrama de Sequumlegravencia 1a Execucioacute6

Fig 6 Escena Menuacute Principal7

Fig 7 Escena Mode Lliure7

Fig 8 Escena Botiga8

Fig 9 Escena Mode Histograveria8

Fig 10 Escena lsquoCLASSICrsquo8

Fig 11 Efecte Boost de Gel8

Fig 12 Nau amb objecte lsquofirepointrsquo10

Fig 13 Divisioacute de quadres nivells 4 i 510

REFEREgraveNCIES

[1] Desenvolupament lsquoRapid prototypingrsquo httpseswikipediaorgwikiModelo_de_prototipos

[2] Article de lrsquoaddiccioacute als videojocs httpspsicologiaymentecomclinicaadiccion-a-videojuegos

[3] Per quegrave enganxen els videojocs httpswwwlavanguardiacomestilos-de-vida2012062954317381414por-que-enganchan-los-videojuegoshtml

[4] Historia dels Videojocs httpswwwfibupceduretroinformaticahistoriavideojocshtml

[5] Requisits miacutenims Candy Crush Saga httpswwwmicrosoftcomes-espcandy-crush-sa-ga9nblggh18846activetab=pivotregionofsystemrequirementstab

[6] Document SRS drsquoexemple httpswwwdocsitycomesejemplo-de-documento-srs4930539

[7] El lsquoFirst clickrsquo test httpsusabilityhubcomguidesfirst-click-testing

[8] Quumlestionari lsquoFirst clickrsquo test I httpsowsiocm7v7lx3h4

[9] Quumlestionari lsquoFirst clickrsquo test II httpsowsiocmj6574121

[10] Quumlestionari lsquoFirst clickrsquo test III httpsowsiocm7df25ouc

[11] Scroll Rect de Unity httpsdocsunity3dcomes20184Manualscript-ScrollRecthtml

[12] Disseny Responsive httpswww40defiebrecomque-esdiseno-responsi-ve~text=El20disentildeo20web20responsive20o3B20ordenador2C20tablet2C20smartphonehellip

[13] Canvas de Unity httpsdocsunity3dcomescurrentManualUICanvashtml

[14] Playerprefs de Unity httpsdocsunity3dcomescurrentScriptReferencePlayerPrefshtml

[15] ldquoDisseny de Softwarerdquo Assignatura del grau que ha ser-

vit de font bagravesica dels coneixements aplicats tant a An-droid com als tests amb usuaris La seva guia docent la trobem disponible a httpsdocsunity3dcomManualUnityManualhtml

[16] ldquoTest i Qualitat del Softwarerdquo Assignatura del grau que ha servit de font bagravesica dels coneixements aplicats per als tests del codi La seva guia docent la trobem disponible a httpsguiesuabcatguies_docentspublicportalhtml2019assignatura102758ca

[17] ldquoDocumentacioacuten de Unityrdquo Documentacioacute completa del motor gragravefic lsquoUnityrsquo que srsquoha anat consultant en tot mo-ment del desenvolupament httpsdocsunity3dcomManualUnityManualhtml httpswwww3schoolscomcs

[18] ldquoStack Overflowrdquo Fograverum de preguntes i respostes rela-cionades amb el moacuten de la programacioacute i la informagravetica Srsquoha anat consultant durant la fase drsquoimplementacioacute Al-gunes de les pagravegines que voldria destacar

o Text borroacutes a Unity httpsstackoverflowcomquestions16506737unity3d-3d-text-always-displayed-blur16507861

o Sing-In Google httpsstackoverflowcomquestions59599895problems-with-google-sign-in-in-unity

[19] ldquoComo firmar tu apprdquo Documentacioacute per a desenvolupa-dors Android sobre com signar una aplicacioacute per a que totes les funcions de google funcionin correctament httpsdeveloperandroidcomstudiopublishapp-signinggoogle-play-app-signing

[20] ldquoUnity Ads Documentationrdquo Documentacioacute sobre el sis-tema de publicitat de unity utilitzat a lrsquoapp httpsdocsunity3dcomPackagescomunityads34manualindexhtml

[21] ldquoGoogle play games plugin for unityrdquo Plugin per a unity per a poder utilitzar totes les funcions de google play games httpsgithubcomplaygameservicesplay-games-plugin-for-unity

[22] ldquoFlaticonrdquo Web de recursos gratuiumlts drsquoon srsquohan descarre-gat els sprites que srsquoutilitzen al joc httpswwwflaticones

[23] ldquoUnity Asset Storerdquo Web de recursos gratuiumlts de unity drsquoon srsquohan descarregat els models dels planetes que srsquoutilitzen al joc entre altres httpsassetstoreunitycomgclid=CjwKCAjwlZf3BRABEiwA8Q0qq9NcH2nCMrUHDdQUrV0K7dNiZD6JMAy7G8x93NPLzD3wZKmhiK1MQBoCvR0QAvD_BwE

[24] ldquoAyuda de Play Consolerdquo Documentacioacute sobre al play console plataform on es puja lrsquoaplicacioacute per a que es vi-sualitzi a la play store que srsquoha consultat quan han sorgit problemes httpssupportgooglecomgoogleplayandroid-developerhl=estopic=3450769

[25] ldquoPongrdquo Primer videojoc de la histograveria httpseswikipediaorgwikiPong~text=Pong20(o20Tele-Pong)mesa20(o20ping20pong)

[26] ldquoFlappy Birdsrdquo httpseswikipediaorgwikiFlappy_Bird

[27] ldquoCandy Crushrdquo httpswwwxatakamovilcommovil-y-sociedadcandy-crush-saga-la-ciencia-detras-de-la-adiccion

12 EEUAB TFG INFORMAgraveTICA CREACIOacute DrsquoUN VIDEOJOC MOgraveBIL ADDICTIU

APEgraveNDIX

A1 DIAGRAMA DE GANTT DE LA PLANIFICACIOacute INICIAL

A1 Diagrama de Gantt corresponent a la planificacioacute inicial del projecte En aquest diagrama podem veure les diferents tasquesetapes de desenvolupament amb les setmanes que es va planificar destinar a cada una

A2 SECCIOacute DrsquoAPEgraveNDIX

A2 Diagrama de Gantt corresponent a la planificacioacute final del projecte Tal i com podem veure tenim alguns canvis en els temps respecte a la planificacioacute inicial es va acurtar la fase de desenvolupament ja que amb la situacioacute excepcional del paiacutes srsquoha disposat de molt meacutes

temps per al desenvolupament lo qual ha permegraves avanccedilar el pas a produccioacute i la documentacioacute del projecte

NIL PASCUAL FERNAacuteNDEZ CREACIOacute DrsquoUN VIDEOJOC MOgraveBIL ADDICTIU 13

A3 RESULTAT DEL ESTUDI DE DISSENY ndash TASCA 1

A3 Resultat Estudi 1 - Tasca 1 Com observem el 90 dels testers han completat lrsquoobjectiu de la tasca

A4 RESULTAT DEL ESTUDI DE DISSENY ndash TASCA 1 (MAPA DE CALOR)

A4 Resultat estudi 1 ndash Tasca 1 (Mapa de Calor) Com podem observar la zona de tocs de dit del 70 dels tocs se centra en el botoacute correcte

14 EEUAB TFG INFORMAgraveTICA CREACIOacute DrsquoUN VIDEOJOC MOgraveBIL ADDICTIU

Page 7: Nil Pascual Fernández - UAB Barcelona · 2020. 9. 2. · llançar la seva primera consola: la Playstation, que tenia un reproductor de CDs, lo qual comportava que els vi-deojocs

NIL PASCUAL FERNAacuteNDEZ CREACIOacute DrsquoUN VIDEOJOC MOgraveBIL ADDICTIU 7

del desenvolupament del joc srsquoencarrega tant de crear lrsquoarxiu de guardat quan srsquoinicialitza per primer com el joc com de carregar els valors drsquoaquests un cop ja srsquoha jugat meacutes drsquoun cop Amb el GameManager com a estructura principal srsquoha comenccedilat a desenvolupar lrsquoescena del Menuacute principal Escena lsquoMenuacutersquo ndash Menuacute principal Per aquest menuacute principal que veiem a la figura 6 es buscava una sensacioacute drsquoimmersioacute al joc que et fes sentir a lrsquoespai Per aixograve es va decidir dividir les 4 parts principals drsquoaquest menuacute Menuacute principal mode lliure mode histo-ria i botiga en diferents punts de lrsquoespai 3D formant una circumferegravencia Aixograve ha permegraves desenvolupar la seguumlent foacutermula per a la cagravemera de joc que ofereix una sensacioacute de flotar a lrsquoespai cameraTransformrotation = QuaternionSlerp (camera-TransformrotationcameraDesiredLookAtrotation CAMERA_TRANSITION_SPEED TimedeltaTime) Amb aquesta foacutermula estem assignant al valor de rotacioacute de la cagravemera del joc una nova rotacioacute entre la seva posi-cioacute actual (cameraTransformrotation) i la posicioacute destiacute (cameraDesiredLookAtrotation) Gragravecies a la funcioacute slerp() realitzaragrave un moviment molt lleuger seguint la velocitat que li indiquem Per a veure millor aquest efecte de cagravemera es pot consul-tar el viacutedeo adjunt ldquoDEMO_GRAVITY_PONGrdquo

Escena lsquoMenuacutersquo ndash Mode Lliure El seguumlent pas ja amb la cagravemera a punt ha sigut desenvo-lupar el llistat de nivells del mode lliure que trobem a la figura 7 Ha sigut una decisioacute difiacutecil i bastant creativa ja que es volia una llista de nivells molt visual i vaig decidir mostrar els nivells com a imatges Investigant vaig trobar que mitjanccedilant codi pots trobar i guardar a variables els sprites que estiguin dins de la carpeta que crea unity de ldquoResourcesrdquo Amb aquesta tegravecnica i un Scroll Rect [11] podem passar els nivells amb un scroll lateral Despreacutes srsquoha afegit la imatge i el text dels tiquets a la part inferior del nivell i el regravecord del nivell a sobre drsquoaquest Per finalitzar srsquoha creat el botoacute de tornar per a que la cagravemera torni a rotar fins la posicioacute del menuacute principal Escena lsquoMenuacutersquo ndash Botiga La botiga com observem ala figura 8 manteacute una estruc-tura semblant al llistat de nivells perograve amb diferegravencies notables En comptes de carregar varies imatges carrega una imat-ge sencera amb totes les textures i la divideix en textures de 256x256 per a una millor optimitzacioacute Teacute un indica-dor monedes del joc i teacute un botoacute extra per a canviar entre la tenda de textures de la pilota i de la lluna de joc

Fig 6 Menuacute Principal

Fig 7 Mode lliure

Escena lsquoMenuacutersquo ndash Mode Histograveria El llistat de nivells del mode histograveria no utilitza la tegravecnica de cagraverrega de imatges pels nivells sinoacute que srsquohan utilitzat uns models gratuiumlts de planetes 3D Cada planeta forma un nivell amb el seu nom i el seu regravecord de temps propi Un cop acabada tota la visual de lrsquoescena del menuacute srsquoha creat el script que el gestionaria anomenat ldquoMainMenurdquo

Fig 8 Botiga

Figura 9 Mode Histograveria

Script MainMenu Aquest script srsquoencarrega de carregar i gestionar els com-ponents de lrsquoescena del menuacute del llistat de nivells i la botiga Primer de tot carrega gragravecies als playerPrefs guardats tots els textos de regravecords de puntuacioacute de cada nivell els tiquets les monedes i les textures comprades de la pilota i lluna de joc que lrsquousuari havia obtingut Srsquoha creat un sistema tant per al llistat de nivells com a la botiga de bloqueig on al llistat de nivells es bloquegen tots els botons dels jocs menys del primer fins que en aquest no srsquohagi obtingut una puntuacioacute miacutenima de 5 i a la botiga es guarda una matriu de desbloquejos que indica quines textures srsquohan comprat i ja no apareixeragrave el seu preu i quines no Tambeacute srsquoencarrega de a la botiga mostrar com quedaria la textura comprada a la pilota o a la lluna de joc i apli-car-la per a quan juguem qualsevol partida Aquest script tambeacute carrega la muacutesica del menuacute

8 EEUAB TFG INFORMAgraveTICA CREACIOacute DrsquoUN VIDEOJOC MOgraveBIL ADDICTIU

Script History_Levels Aquest script srsquoencarrega de la gestioacute del menuacute ldquoHISTO-RIArdquo Srsquoha creat un sistema de visualitzacioacute on el jugador can-via de nivell mitjanccedilant dues fletxes i un jugador no po-dragrave accedir a un nivell fins que hagi completat lrsquoanterior Junt amb aquest sistema de bloqueig segons el nivell on es situiuml el jugador es mostraragrave el millor temps en que lrsquoha acabat (si es que hi ha) i el nom del nivell Amb aquests components descrits fins ara ja tindriacuteem tot el menuacute principal acabat Un cop acabat el menuacute srsquoha passat a crear els nivells del mode lliure

652 Implementacioacute del Mode Lliure

El mode lliure consta de 5 nivells amb mecagraveniques de joc variants perograve compartint lrsquoestructura principal del joc Per a explicar com srsquoha desenvolupat aquest mode srsquoutilitzaragrave de referegravencia el mode de joc ldquoCLASSICrdquo el mode de joc original on primer srsquoexplicaran els compo-nents de lrsquoescena i despreacutes els scripts que la componen Una part molt important drsquoaquestes escenes eacutes el disseny seguint el esquema senzill i visual del joc srsquoha passat per diversos plantejaments murs reals una barra plana Finalment despreacutes drsquoun extens plantejament es va deci-dir aplicar el disseny que veiem a la figura 10 En aquest disseny podem observar que els murs soacuten llums LED Aquesta decisioacute srsquoha considerat la millor ja que oferia tota la informacioacute que necessita el jugador dels murs sense ser un objecte molt gran i amb molt detall Finalment srsquohan utilitzat imatges de la temagravetica espacial per a completar el fons de lrsquoescena Escena CLASSIC Lrsquoescena drsquoaquest mode de joc la componen directament la pilota la lluna de joc els murs de joc la puntuacioacute el menuacute de pausa i els tiquets disponibles Perograve realment hi ha molts meacutes components secundaris que no srsquoentraragrave en detall a explicar-los perograve que valia la pena mencionar-los com uns murs secundaris invisibles que srsquoutilitzen per detectar si el jugador perd quan ha destruiumlt un mur ob-jectes que solament es mostren quan srsquoagafa un boost llums que segueixen els objectes per crear un efecte pri-mer pla la interfaccedil del menuacute de pausa Presentats aixiacute els components de lrsquoescena eacutes meacutes interes-sant veure els scripts que afecten a aquests components Script ClassicBall Aquest script que controla la pilota eacutes el meacutes important de lrsquoescena ja que gestiona tot el que pot tenir contacte amb ella La funcioacute meacutes important drsquoaquest script eacutes sens dubte OnCollisionEnter() Aquest funcioacute nativa de Unity ser-veix per a gestionar quan lrsquoobjecte topa amb un altre objecte Quan la pilota topa amb un mur detecta quin eacutes

i segons el seu color actual li canviaragrave el seu color al que toqui i suma un punt Si la pilota topa amb la lluna de joc simplement augmen-taragrave la seva velocitat Si topa amb el forat negre de la part inferior o traspassa un mur destruiumlt srsquoencarrega de parar la partida i la muacutesica mostrar el menuacute de derrota afegir a les monedes totals del jugador les guanyades aquella partida i canviar el regravecord de puntuacioacute del nivell si srsquoha superat

Fig 10 Escena CLASSIC

Fig 11 Efecte de Boost de Gel

Script ClassicPad Aquest script simplement srsquoencarrega de la gestioacute del moviment de la lluna de joc Detecta si el jugador estagrave polsant a sobre drsquoella i es mou en consequumlegravencia Per al mode histograveria srsquoencarrega de si un projectil topa amb ella parar la partida i mostrar el menuacute de derrota Script Pause Menu Aquest script com el seu nom indica gestiona tot el me-nuacute de pausa Que quan es polsi a sobre del botoacute de pausa es pari el joc i es mostri la interfaccedil que quan polsem sobre lsquoreprendrersquo la partida actual segueixi on estava que es torni al menuacute o que es surti de la partida Script Boosts Aquest script srsquoencarrega drsquoinvocar un objecte aleatori que apareix cada x segons aleatograveriament per pantalla un cert temps Segons el boost es produeix un efecte diferent Per fer aixograve se li ha assignat el script a una imatge i srsquoha jugat amb el seu render (el component que fa que es mos-tri la imatge) Gragravecies a la funcioacute TimeTimeSinceLevelLoad que ens proporciona el temps que ha passat des de que srsquoha carregat el nivell sabem quan fer invisible o no lrsquoobjecte Aixiacute creat lrsquoalgoritme que mostra una imatge aleatograveriament drsquouna llista drsquoimatges sempre que no hi hagi un boost funcionant Ara amb un switch case segons la imatge que srsquoestagrave mos-trant crida a la funcioacute del boost que toca per a que realitzi lrsquoefecte adequat Un bon exemple eacutes el boost de gel que al collir-lo com veiem a la figura 11 mostra a tots els murs que no hagin sigut destruiumlts una imatge de neu que impedeix destruir-los

NIL PASCUAL FERNAacuteNDEZ CREACIOacute DrsquoUN VIDEOJOC MOgraveBIL ADDICTIU 9

Es poden trobar tots els boosts i efectes a lrsquoapartat 215 del document adjunt ldquoDesenvolupament del Jocrdquo Amb tots aquests components ja es podria jugar una par-tida ldquoCLASSICrdquo del mode lliure Per a construir els altres nivells del mode lliure srsquoha jugat amb potenciar o extreure aquestes funcions descrites per proporcionar un altre tipus de joc

bull Escena Double Trouble Aquiacute srsquoha duplicat la pilota de joc i srsquoha adaptat lrsquoentorn per a que el nivell sigui jugable

bull Escena Faster Aquest mode es juga al doble de la velocitat normal de joc utilitzant la funcioacute Ti-meTimeScale = 2 que duplica el temps

bull Escena Insight Aquest mode es juga sense veure els components del joc el jugador nomeacutes veu una estela que indica el moviment de la pilota i la lluna de joc

bull Escena Relax En aquest mode on nomeacutes es perdragrave la partida si aquesta cau al forat negre inferior Els murs mai poden ser destruiumlts i no apareixen boosts

653 Implementacioacute del Mode Histograveria

Per a aquest mode srsquoha utilitzat com a base lrsquoestructura del nivell ldquoCLASSICrdquo del mode lliure Amb aquesta es-tructura srsquohan eliminat els boosts i el marcador de pun-tuacioacute Consta drsquoun objectiu totalment diferent al mode lliure no volem aconseguir la major puntuacioacute sinoacute que volem destruir la nau enemiga i si pot ser en el menor temps possible Script Dialog Primerament srsquoha creat un sistema de diagravelegs en el que seguint el guioacute descrit al document adjunt ldquoDesenvolu-pament del Jocrdquo apartat 212 dos personatges ens ense-nyen a jugar a lrsquohora que ens narren una divertida histograve-ria Dit aixograve srsquoha creat un sistema drsquoescriptura on segons unes frases donades srsquoescriu lletra per lletra aconseguint lrsquoefecte de narracioacute dels videojocs Quan comprovem que srsquoha mostrat tota la frase per pan-talla mostrem un botoacute per a continuar amb la conversa i un altre botoacute per a saltar el diagraveleg i comenccedilar a jugar Agafant la primera lletra de la frase amb la funcioacute subs-tring() sabrem si quin personatge parla i hem de mostrar Script History_Ball La pilota srsquoha hagut drsquoadaptar a tots els nous compo-nents A meacutes srsquoha creat un sistema per a mostrar en tot mo-ment el temps que ha passat des de lrsquoinici del nivell Per fer-ho srsquohan utilitzat 2 variables pels minuts i segons Aixograve ha permegraves visualitzar amb meacutes comoditat el format de temps ldquominuts segonsrdquo amb la funcioacute toString()

permetent realitzar les comparacions de temps correcta-ment Script Launcher Aquest script srsquoencarrega un model de miacutessil que li indi-quem i crear una instagravencia drsquoaquest davant la nau amb una certa velocitat dirigit cap a la part inferior de la pan-talla Per aconseguir-ho srsquoutilitza un objecte auxiliar a lrsquoescena lsquoFirePointrsquo que eacutes situat sempre davant la nau on srsquoinstanciaragrave el model del miacutessil amb un cert impuls Po-dem visualitzar aquest sistema a la figura 12 Script ProjectileCollision Aquest script srsquoencarrega solament de destruir el miacutessil quan topi amb un objecte que no sigui la lluna de joc Eacutes un script per a optimitzar el rendiment del joc Un cop descrits els scripts en comuacute per a tots els nivells passem als scripts que a cada nivell soacuten diferents perograve que srsquoutilitzen per a una mateixa causa la gestioacute de la nau enemiga

bull Capiacutetols 1 i 2 Els capiacutetols 1 i 2 comparteixen el ma-teix moviment de la nau Aquest script mou la nau seguint un moviment aleatori Lrsquoalgorisme consisteix en que srsquoescull un punt aleatori a arribar i quan srsquoarriba srsquoescull un altre

bull Capiacutetol 3 Al tercer capiacutetol eacutes on veiem per primer cop una intelmiddotligegravencia artificial en el moviment de la nau aquesta fugiragrave de la pilota Per fer-ho srsquoha divi-dit el nivell en dues zones dreta i esquerra quan la pilota estigui a la zona de la dreta la nau es mouragrave a lrsquoesquerra i a la inversa Per a que no sigui impossi-ble tocar-la srsquoha ajustat la velocitat del seu movi-ment adequadament

bull Capiacutetol 4 Al quart capiacutetol la nau ja consta drsquouna intelmiddotligegravencia artificial meacutes avanccedilada en la que es mou segons a on la pilota estigui situada Lrsquoalgorisme consisteix en tenir la posicioacute de la pilota en tot moment i srsquoha dividit lrsquoespai de la partida en 4 quadrats com podem veure a la figura 13 Si la pilota estagrave al quadrat 1 la nau es mouragrave al qua-drat contrari el 4 Si la pilota es situa al quadrat 2 la nau es mouragrave al quadrat 3 Per a que no fos impossi-ble topar amb la nau srsquoha drsquoajustat la velocitat del moviment

bull Capiacutetol 5 Al capiacutetol final lrsquoalgoritme consta del ma-teix moviment que al nivell anterior perograve afegint un extra que si la nau es troba en el mateix quadrat que la pilota en el mateix instant de temps la nau redui-ragrave el seu tamany complicant lrsquoobjectiu drsquoaconseguir destruir-la

10 EEUAB TFG INFORMAgraveTICA CREACIOacute DrsquoUN VIDEOJOC MOgraveBIL ADDICTIU

Fig 12 Nau amb lrsquoobjecte lsquoFire-

Pointrsquo

Fig 13 Divisioacute de quadres nivells 4 i 5

Per a veure visualment com funcionen les funcions expli-cades en aquest apartat es pot consultar el viacutedeo adjunt ldquoDEMO_GRAVITY_PONGrdquo

66 Proves

Gragravecies a la metodologia de desenvolupament de Rapid Prototyping srsquoha pogut anar testejant cada mogravedul desen-volupat al moment aixiacute extraient tots els resultats de tests ragravepidament Srsquohan realitzat 4 tipus de proves diferents

bull A les proves drsquounitat srsquoha testejat que els diferents mograveduls del sistema funcionin correctament Com que si un miacutessil drsquouna nau enemiga glopeja la lluna de joc es mostra el menuacute correcte o si tenim les su-ficients monedes per a comprar una textura la po-dem comprar satisfactograveriament entre altres

bull A les proves drsquointegracioacute srsquoha testejat que les in-teraccions entre els diferents escenaris del sistema sigui correcte Srsquoha provat que es pugi accedir a tots els nivells del videojoc i que des de aquests es pu-gui tornar correctament al menuacute principal a traveacutes del menuacute de pausa

bull Les proves de validacioacute han servit per comprovar que hem complit amb els requisits del projecte Hem testejat el correcte log in amb google la visualitzacioacute dels marcadors i la visualitzacioacute dels objectius entre altres

bull Per acabar les proves de sistema han servit gragravecies a la developer console [24] comprovar que el joc srsquoha executat correctament variant els dispositius i versions drsquoAndroid

A lrsquoapartat 31 del document adjunt ldquoDesenvolupament del Jocrdquo es poden trobar la totalitat de les proves realitza-des de cada tipus amb els seus resultats corresponents

7 CONCLUSIONS

I ja per finalitzar aquest document explicareacute quines soacuten les conclusions que he extret sobre el projecte Primer de tot crec que la planificacioacute que vaig realitzar a

lrsquoinici ha sigut lrsquoencertada Les petites alteracions que srsquohan acabat realitzant (com podem veure en el diagrama de Gantt real de lrsquoapegravendix 2) han estat meacutes enfocades a avanccedilar lrsquoinici de les tasques que no pas a endarrerir-les a causa de la situacioacute excepcional que hem viscut

Respecte a la fase drsquoimplementacioacute considero que

srsquohan completat tots els objectius que es presentaven a lrsquoinici del projecte Srsquohan desenvolupat totes les funcions que es van proposar al document de requisits amb lrsquoajuda de la psicograveloga que havia de tenir el joc per a que es considereacutes addictiu i aixiacute ha sigut Per lo que podem concloure que hem desenvolupat un joc addictiu per a Android satisfactograveriament A meacutes srsquoha de dir que lrsquoaplicacioacute eacutes responsive [12] i molt fagravecilment escalable

I com a uacuteltim punt voldria comentar que mrsquohagueacutes

agradat disposar de meacutes temps i recursos per a millorar tot lrsquoaspecte visual de lrsquoaplicacioacute encara meacutes fins a arribar a apropar-se al nivell de mitjanes produccions aquest aspecte milloraria lrsquointeregraves per al joc

71 Futures Accions

A continuacioacute detallarem aquelles accions futures que he considerat que pot ser interessant desenvolupar en prograveximes ampliacions del joc per tal que lrsquoexperiegravencia drsquouacutes dels usuaris sigui la millor possible

bull Un tutorial molt meacutes visual que es mostri el primer cop que srsquoiniciiuml lrsquoaplicacioacute on no solament srsquoexpliqui sobre la mecagravenica del joc sinoacute que tambeacute es guiiuml a lrsquousuari a traveacutes dels menuacutes la interfaccedil i els diferents modes i nivells de joc

bull Una integracioacute drsquoalgun mode de joc online on es po-gueacutes competir contra un altre jugador en temps real oferiria molt drsquoatractiu i enriquiria molt lrsquoaplicacioacute

bull Per acabar com ja hem comentat una millora visual en la que no mrsquohe pogut centrar en especial durant el projecte on amb lrsquoajuda drsquoalgun professional en la mategraveria es crearien unes visuals progravepies per al joc

8 AGRAIumlMENTS

En primer lloc mrsquoagradaria agrair a la meva famiacutelia el suport incondicional que mrsquohan donat en tot moment durant els quatre anys que porto de carrera Sense ells res de tot aixograve hauria estat possible

Tambeacute mrsquoagradaria agrair la Gemma Saacutenchez la meva tutora del TFG pels consells i lrsquoajuda que mrsquoha ofert du-rant aquests mesos tant durs i especials de projecte insis-tint en quegrave treballes ben dur des del primer dia ha per-megraves que aquest treball hagi pogut tirar endavant amb meacutes facilitat

Finalment voldria agrair a les altres persones que han fet aquest treball possible des de la psicograveloga experta que ens va ajudar a definir molt beacute els requisis fins a tots els companys i amics que han treballat com a testers del joc trobant lsquobugsrsquo i fent propostes sobre possibles millores drsquoaquest

NIL PASCUAL FERNAacuteNDEZ CREACIOacute DrsquoUN VIDEOJOC MOgraveBIL ADDICTIU 11

IacuteNDEX DE FIGURES

Fig 1 lsquoRapid Prototypingrsquo3

Fig 2 Diagrama de Classes lsquoNavegar per la Tendarsquo5

Fig 3 Descripcioacute Cas drsquouacutes ldquoComprar textura pilotardquo6

Fig 4 Diagrama de Classes i Escenes6

Fig 5 Diagrama de Sequumlegravencia 1a Execucioacute6

Fig 6 Escena Menuacute Principal7

Fig 7 Escena Mode Lliure7

Fig 8 Escena Botiga8

Fig 9 Escena Mode Histograveria8

Fig 10 Escena lsquoCLASSICrsquo8

Fig 11 Efecte Boost de Gel8

Fig 12 Nau amb objecte lsquofirepointrsquo10

Fig 13 Divisioacute de quadres nivells 4 i 510

REFEREgraveNCIES

[1] Desenvolupament lsquoRapid prototypingrsquo httpseswikipediaorgwikiModelo_de_prototipos

[2] Article de lrsquoaddiccioacute als videojocs httpspsicologiaymentecomclinicaadiccion-a-videojuegos

[3] Per quegrave enganxen els videojocs httpswwwlavanguardiacomestilos-de-vida2012062954317381414por-que-enganchan-los-videojuegoshtml

[4] Historia dels Videojocs httpswwwfibupceduretroinformaticahistoriavideojocshtml

[5] Requisits miacutenims Candy Crush Saga httpswwwmicrosoftcomes-espcandy-crush-sa-ga9nblggh18846activetab=pivotregionofsystemrequirementstab

[6] Document SRS drsquoexemple httpswwwdocsitycomesejemplo-de-documento-srs4930539

[7] El lsquoFirst clickrsquo test httpsusabilityhubcomguidesfirst-click-testing

[8] Quumlestionari lsquoFirst clickrsquo test I httpsowsiocm7v7lx3h4

[9] Quumlestionari lsquoFirst clickrsquo test II httpsowsiocmj6574121

[10] Quumlestionari lsquoFirst clickrsquo test III httpsowsiocm7df25ouc

[11] Scroll Rect de Unity httpsdocsunity3dcomes20184Manualscript-ScrollRecthtml

[12] Disseny Responsive httpswww40defiebrecomque-esdiseno-responsi-ve~text=El20disentildeo20web20responsive20o3B20ordenador2C20tablet2C20smartphonehellip

[13] Canvas de Unity httpsdocsunity3dcomescurrentManualUICanvashtml

[14] Playerprefs de Unity httpsdocsunity3dcomescurrentScriptReferencePlayerPrefshtml

[15] ldquoDisseny de Softwarerdquo Assignatura del grau que ha ser-

vit de font bagravesica dels coneixements aplicats tant a An-droid com als tests amb usuaris La seva guia docent la trobem disponible a httpsdocsunity3dcomManualUnityManualhtml

[16] ldquoTest i Qualitat del Softwarerdquo Assignatura del grau que ha servit de font bagravesica dels coneixements aplicats per als tests del codi La seva guia docent la trobem disponible a httpsguiesuabcatguies_docentspublicportalhtml2019assignatura102758ca

[17] ldquoDocumentacioacuten de Unityrdquo Documentacioacute completa del motor gragravefic lsquoUnityrsquo que srsquoha anat consultant en tot mo-ment del desenvolupament httpsdocsunity3dcomManualUnityManualhtml httpswwww3schoolscomcs

[18] ldquoStack Overflowrdquo Fograverum de preguntes i respostes rela-cionades amb el moacuten de la programacioacute i la informagravetica Srsquoha anat consultant durant la fase drsquoimplementacioacute Al-gunes de les pagravegines que voldria destacar

o Text borroacutes a Unity httpsstackoverflowcomquestions16506737unity3d-3d-text-always-displayed-blur16507861

o Sing-In Google httpsstackoverflowcomquestions59599895problems-with-google-sign-in-in-unity

[19] ldquoComo firmar tu apprdquo Documentacioacute per a desenvolupa-dors Android sobre com signar una aplicacioacute per a que totes les funcions de google funcionin correctament httpsdeveloperandroidcomstudiopublishapp-signinggoogle-play-app-signing

[20] ldquoUnity Ads Documentationrdquo Documentacioacute sobre el sis-tema de publicitat de unity utilitzat a lrsquoapp httpsdocsunity3dcomPackagescomunityads34manualindexhtml

[21] ldquoGoogle play games plugin for unityrdquo Plugin per a unity per a poder utilitzar totes les funcions de google play games httpsgithubcomplaygameservicesplay-games-plugin-for-unity

[22] ldquoFlaticonrdquo Web de recursos gratuiumlts drsquoon srsquohan descarre-gat els sprites que srsquoutilitzen al joc httpswwwflaticones

[23] ldquoUnity Asset Storerdquo Web de recursos gratuiumlts de unity drsquoon srsquohan descarregat els models dels planetes que srsquoutilitzen al joc entre altres httpsassetstoreunitycomgclid=CjwKCAjwlZf3BRABEiwA8Q0qq9NcH2nCMrUHDdQUrV0K7dNiZD6JMAy7G8x93NPLzD3wZKmhiK1MQBoCvR0QAvD_BwE

[24] ldquoAyuda de Play Consolerdquo Documentacioacute sobre al play console plataform on es puja lrsquoaplicacioacute per a que es vi-sualitzi a la play store que srsquoha consultat quan han sorgit problemes httpssupportgooglecomgoogleplayandroid-developerhl=estopic=3450769

[25] ldquoPongrdquo Primer videojoc de la histograveria httpseswikipediaorgwikiPong~text=Pong20(o20Tele-Pong)mesa20(o20ping20pong)

[26] ldquoFlappy Birdsrdquo httpseswikipediaorgwikiFlappy_Bird

[27] ldquoCandy Crushrdquo httpswwwxatakamovilcommovil-y-sociedadcandy-crush-saga-la-ciencia-detras-de-la-adiccion

12 EEUAB TFG INFORMAgraveTICA CREACIOacute DrsquoUN VIDEOJOC MOgraveBIL ADDICTIU

APEgraveNDIX

A1 DIAGRAMA DE GANTT DE LA PLANIFICACIOacute INICIAL

A1 Diagrama de Gantt corresponent a la planificacioacute inicial del projecte En aquest diagrama podem veure les diferents tasquesetapes de desenvolupament amb les setmanes que es va planificar destinar a cada una

A2 SECCIOacute DrsquoAPEgraveNDIX

A2 Diagrama de Gantt corresponent a la planificacioacute final del projecte Tal i com podem veure tenim alguns canvis en els temps respecte a la planificacioacute inicial es va acurtar la fase de desenvolupament ja que amb la situacioacute excepcional del paiacutes srsquoha disposat de molt meacutes

temps per al desenvolupament lo qual ha permegraves avanccedilar el pas a produccioacute i la documentacioacute del projecte

NIL PASCUAL FERNAacuteNDEZ CREACIOacute DrsquoUN VIDEOJOC MOgraveBIL ADDICTIU 13

A3 RESULTAT DEL ESTUDI DE DISSENY ndash TASCA 1

A3 Resultat Estudi 1 - Tasca 1 Com observem el 90 dels testers han completat lrsquoobjectiu de la tasca

A4 RESULTAT DEL ESTUDI DE DISSENY ndash TASCA 1 (MAPA DE CALOR)

A4 Resultat estudi 1 ndash Tasca 1 (Mapa de Calor) Com podem observar la zona de tocs de dit del 70 dels tocs se centra en el botoacute correcte

14 EEUAB TFG INFORMAgraveTICA CREACIOacute DrsquoUN VIDEOJOC MOgraveBIL ADDICTIU

Page 8: Nil Pascual Fernández - UAB Barcelona · 2020. 9. 2. · llançar la seva primera consola: la Playstation, que tenia un reproductor de CDs, lo qual comportava que els vi-deojocs

8 EEUAB TFG INFORMAgraveTICA CREACIOacute DrsquoUN VIDEOJOC MOgraveBIL ADDICTIU

Script History_Levels Aquest script srsquoencarrega de la gestioacute del menuacute ldquoHISTO-RIArdquo Srsquoha creat un sistema de visualitzacioacute on el jugador can-via de nivell mitjanccedilant dues fletxes i un jugador no po-dragrave accedir a un nivell fins que hagi completat lrsquoanterior Junt amb aquest sistema de bloqueig segons el nivell on es situiuml el jugador es mostraragrave el millor temps en que lrsquoha acabat (si es que hi ha) i el nom del nivell Amb aquests components descrits fins ara ja tindriacuteem tot el menuacute principal acabat Un cop acabat el menuacute srsquoha passat a crear els nivells del mode lliure

652 Implementacioacute del Mode Lliure

El mode lliure consta de 5 nivells amb mecagraveniques de joc variants perograve compartint lrsquoestructura principal del joc Per a explicar com srsquoha desenvolupat aquest mode srsquoutilitzaragrave de referegravencia el mode de joc ldquoCLASSICrdquo el mode de joc original on primer srsquoexplicaran els compo-nents de lrsquoescena i despreacutes els scripts que la componen Una part molt important drsquoaquestes escenes eacutes el disseny seguint el esquema senzill i visual del joc srsquoha passat per diversos plantejaments murs reals una barra plana Finalment despreacutes drsquoun extens plantejament es va deci-dir aplicar el disseny que veiem a la figura 10 En aquest disseny podem observar que els murs soacuten llums LED Aquesta decisioacute srsquoha considerat la millor ja que oferia tota la informacioacute que necessita el jugador dels murs sense ser un objecte molt gran i amb molt detall Finalment srsquohan utilitzat imatges de la temagravetica espacial per a completar el fons de lrsquoescena Escena CLASSIC Lrsquoescena drsquoaquest mode de joc la componen directament la pilota la lluna de joc els murs de joc la puntuacioacute el menuacute de pausa i els tiquets disponibles Perograve realment hi ha molts meacutes components secundaris que no srsquoentraragrave en detall a explicar-los perograve que valia la pena mencionar-los com uns murs secundaris invisibles que srsquoutilitzen per detectar si el jugador perd quan ha destruiumlt un mur ob-jectes que solament es mostren quan srsquoagafa un boost llums que segueixen els objectes per crear un efecte pri-mer pla la interfaccedil del menuacute de pausa Presentats aixiacute els components de lrsquoescena eacutes meacutes interes-sant veure els scripts que afecten a aquests components Script ClassicBall Aquest script que controla la pilota eacutes el meacutes important de lrsquoescena ja que gestiona tot el que pot tenir contacte amb ella La funcioacute meacutes important drsquoaquest script eacutes sens dubte OnCollisionEnter() Aquest funcioacute nativa de Unity ser-veix per a gestionar quan lrsquoobjecte topa amb un altre objecte Quan la pilota topa amb un mur detecta quin eacutes

i segons el seu color actual li canviaragrave el seu color al que toqui i suma un punt Si la pilota topa amb la lluna de joc simplement augmen-taragrave la seva velocitat Si topa amb el forat negre de la part inferior o traspassa un mur destruiumlt srsquoencarrega de parar la partida i la muacutesica mostrar el menuacute de derrota afegir a les monedes totals del jugador les guanyades aquella partida i canviar el regravecord de puntuacioacute del nivell si srsquoha superat

Fig 10 Escena CLASSIC

Fig 11 Efecte de Boost de Gel

Script ClassicPad Aquest script simplement srsquoencarrega de la gestioacute del moviment de la lluna de joc Detecta si el jugador estagrave polsant a sobre drsquoella i es mou en consequumlegravencia Per al mode histograveria srsquoencarrega de si un projectil topa amb ella parar la partida i mostrar el menuacute de derrota Script Pause Menu Aquest script com el seu nom indica gestiona tot el me-nuacute de pausa Que quan es polsi a sobre del botoacute de pausa es pari el joc i es mostri la interfaccedil que quan polsem sobre lsquoreprendrersquo la partida actual segueixi on estava que es torni al menuacute o que es surti de la partida Script Boosts Aquest script srsquoencarrega drsquoinvocar un objecte aleatori que apareix cada x segons aleatograveriament per pantalla un cert temps Segons el boost es produeix un efecte diferent Per fer aixograve se li ha assignat el script a una imatge i srsquoha jugat amb el seu render (el component que fa que es mos-tri la imatge) Gragravecies a la funcioacute TimeTimeSinceLevelLoad que ens proporciona el temps que ha passat des de que srsquoha carregat el nivell sabem quan fer invisible o no lrsquoobjecte Aixiacute creat lrsquoalgoritme que mostra una imatge aleatograveriament drsquouna llista drsquoimatges sempre que no hi hagi un boost funcionant Ara amb un switch case segons la imatge que srsquoestagrave mos-trant crida a la funcioacute del boost que toca per a que realitzi lrsquoefecte adequat Un bon exemple eacutes el boost de gel que al collir-lo com veiem a la figura 11 mostra a tots els murs que no hagin sigut destruiumlts una imatge de neu que impedeix destruir-los

NIL PASCUAL FERNAacuteNDEZ CREACIOacute DrsquoUN VIDEOJOC MOgraveBIL ADDICTIU 9

Es poden trobar tots els boosts i efectes a lrsquoapartat 215 del document adjunt ldquoDesenvolupament del Jocrdquo Amb tots aquests components ja es podria jugar una par-tida ldquoCLASSICrdquo del mode lliure Per a construir els altres nivells del mode lliure srsquoha jugat amb potenciar o extreure aquestes funcions descrites per proporcionar un altre tipus de joc

bull Escena Double Trouble Aquiacute srsquoha duplicat la pilota de joc i srsquoha adaptat lrsquoentorn per a que el nivell sigui jugable

bull Escena Faster Aquest mode es juga al doble de la velocitat normal de joc utilitzant la funcioacute Ti-meTimeScale = 2 que duplica el temps

bull Escena Insight Aquest mode es juga sense veure els components del joc el jugador nomeacutes veu una estela que indica el moviment de la pilota i la lluna de joc

bull Escena Relax En aquest mode on nomeacutes es perdragrave la partida si aquesta cau al forat negre inferior Els murs mai poden ser destruiumlts i no apareixen boosts

653 Implementacioacute del Mode Histograveria

Per a aquest mode srsquoha utilitzat com a base lrsquoestructura del nivell ldquoCLASSICrdquo del mode lliure Amb aquesta es-tructura srsquohan eliminat els boosts i el marcador de pun-tuacioacute Consta drsquoun objectiu totalment diferent al mode lliure no volem aconseguir la major puntuacioacute sinoacute que volem destruir la nau enemiga i si pot ser en el menor temps possible Script Dialog Primerament srsquoha creat un sistema de diagravelegs en el que seguint el guioacute descrit al document adjunt ldquoDesenvolu-pament del Jocrdquo apartat 212 dos personatges ens ense-nyen a jugar a lrsquohora que ens narren una divertida histograve-ria Dit aixograve srsquoha creat un sistema drsquoescriptura on segons unes frases donades srsquoescriu lletra per lletra aconseguint lrsquoefecte de narracioacute dels videojocs Quan comprovem que srsquoha mostrat tota la frase per pan-talla mostrem un botoacute per a continuar amb la conversa i un altre botoacute per a saltar el diagraveleg i comenccedilar a jugar Agafant la primera lletra de la frase amb la funcioacute subs-tring() sabrem si quin personatge parla i hem de mostrar Script History_Ball La pilota srsquoha hagut drsquoadaptar a tots els nous compo-nents A meacutes srsquoha creat un sistema per a mostrar en tot mo-ment el temps que ha passat des de lrsquoinici del nivell Per fer-ho srsquohan utilitzat 2 variables pels minuts i segons Aixograve ha permegraves visualitzar amb meacutes comoditat el format de temps ldquominuts segonsrdquo amb la funcioacute toString()

permetent realitzar les comparacions de temps correcta-ment Script Launcher Aquest script srsquoencarrega un model de miacutessil que li indi-quem i crear una instagravencia drsquoaquest davant la nau amb una certa velocitat dirigit cap a la part inferior de la pan-talla Per aconseguir-ho srsquoutilitza un objecte auxiliar a lrsquoescena lsquoFirePointrsquo que eacutes situat sempre davant la nau on srsquoinstanciaragrave el model del miacutessil amb un cert impuls Po-dem visualitzar aquest sistema a la figura 12 Script ProjectileCollision Aquest script srsquoencarrega solament de destruir el miacutessil quan topi amb un objecte que no sigui la lluna de joc Eacutes un script per a optimitzar el rendiment del joc Un cop descrits els scripts en comuacute per a tots els nivells passem als scripts que a cada nivell soacuten diferents perograve que srsquoutilitzen per a una mateixa causa la gestioacute de la nau enemiga

bull Capiacutetols 1 i 2 Els capiacutetols 1 i 2 comparteixen el ma-teix moviment de la nau Aquest script mou la nau seguint un moviment aleatori Lrsquoalgorisme consisteix en que srsquoescull un punt aleatori a arribar i quan srsquoarriba srsquoescull un altre

bull Capiacutetol 3 Al tercer capiacutetol eacutes on veiem per primer cop una intelmiddotligegravencia artificial en el moviment de la nau aquesta fugiragrave de la pilota Per fer-ho srsquoha divi-dit el nivell en dues zones dreta i esquerra quan la pilota estigui a la zona de la dreta la nau es mouragrave a lrsquoesquerra i a la inversa Per a que no sigui impossi-ble tocar-la srsquoha ajustat la velocitat del seu movi-ment adequadament

bull Capiacutetol 4 Al quart capiacutetol la nau ja consta drsquouna intelmiddotligegravencia artificial meacutes avanccedilada en la que es mou segons a on la pilota estigui situada Lrsquoalgorisme consisteix en tenir la posicioacute de la pilota en tot moment i srsquoha dividit lrsquoespai de la partida en 4 quadrats com podem veure a la figura 13 Si la pilota estagrave al quadrat 1 la nau es mouragrave al qua-drat contrari el 4 Si la pilota es situa al quadrat 2 la nau es mouragrave al quadrat 3 Per a que no fos impossi-ble topar amb la nau srsquoha drsquoajustat la velocitat del moviment

bull Capiacutetol 5 Al capiacutetol final lrsquoalgoritme consta del ma-teix moviment que al nivell anterior perograve afegint un extra que si la nau es troba en el mateix quadrat que la pilota en el mateix instant de temps la nau redui-ragrave el seu tamany complicant lrsquoobjectiu drsquoaconseguir destruir-la

10 EEUAB TFG INFORMAgraveTICA CREACIOacute DrsquoUN VIDEOJOC MOgraveBIL ADDICTIU

Fig 12 Nau amb lrsquoobjecte lsquoFire-

Pointrsquo

Fig 13 Divisioacute de quadres nivells 4 i 5

Per a veure visualment com funcionen les funcions expli-cades en aquest apartat es pot consultar el viacutedeo adjunt ldquoDEMO_GRAVITY_PONGrdquo

66 Proves

Gragravecies a la metodologia de desenvolupament de Rapid Prototyping srsquoha pogut anar testejant cada mogravedul desen-volupat al moment aixiacute extraient tots els resultats de tests ragravepidament Srsquohan realitzat 4 tipus de proves diferents

bull A les proves drsquounitat srsquoha testejat que els diferents mograveduls del sistema funcionin correctament Com que si un miacutessil drsquouna nau enemiga glopeja la lluna de joc es mostra el menuacute correcte o si tenim les su-ficients monedes per a comprar una textura la po-dem comprar satisfactograveriament entre altres

bull A les proves drsquointegracioacute srsquoha testejat que les in-teraccions entre els diferents escenaris del sistema sigui correcte Srsquoha provat que es pugi accedir a tots els nivells del videojoc i que des de aquests es pu-gui tornar correctament al menuacute principal a traveacutes del menuacute de pausa

bull Les proves de validacioacute han servit per comprovar que hem complit amb els requisits del projecte Hem testejat el correcte log in amb google la visualitzacioacute dels marcadors i la visualitzacioacute dels objectius entre altres

bull Per acabar les proves de sistema han servit gragravecies a la developer console [24] comprovar que el joc srsquoha executat correctament variant els dispositius i versions drsquoAndroid

A lrsquoapartat 31 del document adjunt ldquoDesenvolupament del Jocrdquo es poden trobar la totalitat de les proves realitza-des de cada tipus amb els seus resultats corresponents

7 CONCLUSIONS

I ja per finalitzar aquest document explicareacute quines soacuten les conclusions que he extret sobre el projecte Primer de tot crec que la planificacioacute que vaig realitzar a

lrsquoinici ha sigut lrsquoencertada Les petites alteracions que srsquohan acabat realitzant (com podem veure en el diagrama de Gantt real de lrsquoapegravendix 2) han estat meacutes enfocades a avanccedilar lrsquoinici de les tasques que no pas a endarrerir-les a causa de la situacioacute excepcional que hem viscut

Respecte a la fase drsquoimplementacioacute considero que

srsquohan completat tots els objectius que es presentaven a lrsquoinici del projecte Srsquohan desenvolupat totes les funcions que es van proposar al document de requisits amb lrsquoajuda de la psicograveloga que havia de tenir el joc per a que es considereacutes addictiu i aixiacute ha sigut Per lo que podem concloure que hem desenvolupat un joc addictiu per a Android satisfactograveriament A meacutes srsquoha de dir que lrsquoaplicacioacute eacutes responsive [12] i molt fagravecilment escalable

I com a uacuteltim punt voldria comentar que mrsquohagueacutes

agradat disposar de meacutes temps i recursos per a millorar tot lrsquoaspecte visual de lrsquoaplicacioacute encara meacutes fins a arribar a apropar-se al nivell de mitjanes produccions aquest aspecte milloraria lrsquointeregraves per al joc

71 Futures Accions

A continuacioacute detallarem aquelles accions futures que he considerat que pot ser interessant desenvolupar en prograveximes ampliacions del joc per tal que lrsquoexperiegravencia drsquouacutes dels usuaris sigui la millor possible

bull Un tutorial molt meacutes visual que es mostri el primer cop que srsquoiniciiuml lrsquoaplicacioacute on no solament srsquoexpliqui sobre la mecagravenica del joc sinoacute que tambeacute es guiiuml a lrsquousuari a traveacutes dels menuacutes la interfaccedil i els diferents modes i nivells de joc

bull Una integracioacute drsquoalgun mode de joc online on es po-gueacutes competir contra un altre jugador en temps real oferiria molt drsquoatractiu i enriquiria molt lrsquoaplicacioacute

bull Per acabar com ja hem comentat una millora visual en la que no mrsquohe pogut centrar en especial durant el projecte on amb lrsquoajuda drsquoalgun professional en la mategraveria es crearien unes visuals progravepies per al joc

8 AGRAIumlMENTS

En primer lloc mrsquoagradaria agrair a la meva famiacutelia el suport incondicional que mrsquohan donat en tot moment durant els quatre anys que porto de carrera Sense ells res de tot aixograve hauria estat possible

Tambeacute mrsquoagradaria agrair la Gemma Saacutenchez la meva tutora del TFG pels consells i lrsquoajuda que mrsquoha ofert du-rant aquests mesos tant durs i especials de projecte insis-tint en quegrave treballes ben dur des del primer dia ha per-megraves que aquest treball hagi pogut tirar endavant amb meacutes facilitat

Finalment voldria agrair a les altres persones que han fet aquest treball possible des de la psicograveloga experta que ens va ajudar a definir molt beacute els requisis fins a tots els companys i amics que han treballat com a testers del joc trobant lsquobugsrsquo i fent propostes sobre possibles millores drsquoaquest

NIL PASCUAL FERNAacuteNDEZ CREACIOacute DrsquoUN VIDEOJOC MOgraveBIL ADDICTIU 11

IacuteNDEX DE FIGURES

Fig 1 lsquoRapid Prototypingrsquo3

Fig 2 Diagrama de Classes lsquoNavegar per la Tendarsquo5

Fig 3 Descripcioacute Cas drsquouacutes ldquoComprar textura pilotardquo6

Fig 4 Diagrama de Classes i Escenes6

Fig 5 Diagrama de Sequumlegravencia 1a Execucioacute6

Fig 6 Escena Menuacute Principal7

Fig 7 Escena Mode Lliure7

Fig 8 Escena Botiga8

Fig 9 Escena Mode Histograveria8

Fig 10 Escena lsquoCLASSICrsquo8

Fig 11 Efecte Boost de Gel8

Fig 12 Nau amb objecte lsquofirepointrsquo10

Fig 13 Divisioacute de quadres nivells 4 i 510

REFEREgraveNCIES

[1] Desenvolupament lsquoRapid prototypingrsquo httpseswikipediaorgwikiModelo_de_prototipos

[2] Article de lrsquoaddiccioacute als videojocs httpspsicologiaymentecomclinicaadiccion-a-videojuegos

[3] Per quegrave enganxen els videojocs httpswwwlavanguardiacomestilos-de-vida2012062954317381414por-que-enganchan-los-videojuegoshtml

[4] Historia dels Videojocs httpswwwfibupceduretroinformaticahistoriavideojocshtml

[5] Requisits miacutenims Candy Crush Saga httpswwwmicrosoftcomes-espcandy-crush-sa-ga9nblggh18846activetab=pivotregionofsystemrequirementstab

[6] Document SRS drsquoexemple httpswwwdocsitycomesejemplo-de-documento-srs4930539

[7] El lsquoFirst clickrsquo test httpsusabilityhubcomguidesfirst-click-testing

[8] Quumlestionari lsquoFirst clickrsquo test I httpsowsiocm7v7lx3h4

[9] Quumlestionari lsquoFirst clickrsquo test II httpsowsiocmj6574121

[10] Quumlestionari lsquoFirst clickrsquo test III httpsowsiocm7df25ouc

[11] Scroll Rect de Unity httpsdocsunity3dcomes20184Manualscript-ScrollRecthtml

[12] Disseny Responsive httpswww40defiebrecomque-esdiseno-responsi-ve~text=El20disentildeo20web20responsive20o3B20ordenador2C20tablet2C20smartphonehellip

[13] Canvas de Unity httpsdocsunity3dcomescurrentManualUICanvashtml

[14] Playerprefs de Unity httpsdocsunity3dcomescurrentScriptReferencePlayerPrefshtml

[15] ldquoDisseny de Softwarerdquo Assignatura del grau que ha ser-

vit de font bagravesica dels coneixements aplicats tant a An-droid com als tests amb usuaris La seva guia docent la trobem disponible a httpsdocsunity3dcomManualUnityManualhtml

[16] ldquoTest i Qualitat del Softwarerdquo Assignatura del grau que ha servit de font bagravesica dels coneixements aplicats per als tests del codi La seva guia docent la trobem disponible a httpsguiesuabcatguies_docentspublicportalhtml2019assignatura102758ca

[17] ldquoDocumentacioacuten de Unityrdquo Documentacioacute completa del motor gragravefic lsquoUnityrsquo que srsquoha anat consultant en tot mo-ment del desenvolupament httpsdocsunity3dcomManualUnityManualhtml httpswwww3schoolscomcs

[18] ldquoStack Overflowrdquo Fograverum de preguntes i respostes rela-cionades amb el moacuten de la programacioacute i la informagravetica Srsquoha anat consultant durant la fase drsquoimplementacioacute Al-gunes de les pagravegines que voldria destacar

o Text borroacutes a Unity httpsstackoverflowcomquestions16506737unity3d-3d-text-always-displayed-blur16507861

o Sing-In Google httpsstackoverflowcomquestions59599895problems-with-google-sign-in-in-unity

[19] ldquoComo firmar tu apprdquo Documentacioacute per a desenvolupa-dors Android sobre com signar una aplicacioacute per a que totes les funcions de google funcionin correctament httpsdeveloperandroidcomstudiopublishapp-signinggoogle-play-app-signing

[20] ldquoUnity Ads Documentationrdquo Documentacioacute sobre el sis-tema de publicitat de unity utilitzat a lrsquoapp httpsdocsunity3dcomPackagescomunityads34manualindexhtml

[21] ldquoGoogle play games plugin for unityrdquo Plugin per a unity per a poder utilitzar totes les funcions de google play games httpsgithubcomplaygameservicesplay-games-plugin-for-unity

[22] ldquoFlaticonrdquo Web de recursos gratuiumlts drsquoon srsquohan descarre-gat els sprites que srsquoutilitzen al joc httpswwwflaticones

[23] ldquoUnity Asset Storerdquo Web de recursos gratuiumlts de unity drsquoon srsquohan descarregat els models dels planetes que srsquoutilitzen al joc entre altres httpsassetstoreunitycomgclid=CjwKCAjwlZf3BRABEiwA8Q0qq9NcH2nCMrUHDdQUrV0K7dNiZD6JMAy7G8x93NPLzD3wZKmhiK1MQBoCvR0QAvD_BwE

[24] ldquoAyuda de Play Consolerdquo Documentacioacute sobre al play console plataform on es puja lrsquoaplicacioacute per a que es vi-sualitzi a la play store que srsquoha consultat quan han sorgit problemes httpssupportgooglecomgoogleplayandroid-developerhl=estopic=3450769

[25] ldquoPongrdquo Primer videojoc de la histograveria httpseswikipediaorgwikiPong~text=Pong20(o20Tele-Pong)mesa20(o20ping20pong)

[26] ldquoFlappy Birdsrdquo httpseswikipediaorgwikiFlappy_Bird

[27] ldquoCandy Crushrdquo httpswwwxatakamovilcommovil-y-sociedadcandy-crush-saga-la-ciencia-detras-de-la-adiccion

12 EEUAB TFG INFORMAgraveTICA CREACIOacute DrsquoUN VIDEOJOC MOgraveBIL ADDICTIU

APEgraveNDIX

A1 DIAGRAMA DE GANTT DE LA PLANIFICACIOacute INICIAL

A1 Diagrama de Gantt corresponent a la planificacioacute inicial del projecte En aquest diagrama podem veure les diferents tasquesetapes de desenvolupament amb les setmanes que es va planificar destinar a cada una

A2 SECCIOacute DrsquoAPEgraveNDIX

A2 Diagrama de Gantt corresponent a la planificacioacute final del projecte Tal i com podem veure tenim alguns canvis en els temps respecte a la planificacioacute inicial es va acurtar la fase de desenvolupament ja que amb la situacioacute excepcional del paiacutes srsquoha disposat de molt meacutes

temps per al desenvolupament lo qual ha permegraves avanccedilar el pas a produccioacute i la documentacioacute del projecte

NIL PASCUAL FERNAacuteNDEZ CREACIOacute DrsquoUN VIDEOJOC MOgraveBIL ADDICTIU 13

A3 RESULTAT DEL ESTUDI DE DISSENY ndash TASCA 1

A3 Resultat Estudi 1 - Tasca 1 Com observem el 90 dels testers han completat lrsquoobjectiu de la tasca

A4 RESULTAT DEL ESTUDI DE DISSENY ndash TASCA 1 (MAPA DE CALOR)

A4 Resultat estudi 1 ndash Tasca 1 (Mapa de Calor) Com podem observar la zona de tocs de dit del 70 dels tocs se centra en el botoacute correcte

14 EEUAB TFG INFORMAgraveTICA CREACIOacute DrsquoUN VIDEOJOC MOgraveBIL ADDICTIU

Page 9: Nil Pascual Fernández - UAB Barcelona · 2020. 9. 2. · llançar la seva primera consola: la Playstation, que tenia un reproductor de CDs, lo qual comportava que els vi-deojocs

NIL PASCUAL FERNAacuteNDEZ CREACIOacute DrsquoUN VIDEOJOC MOgraveBIL ADDICTIU 9

Es poden trobar tots els boosts i efectes a lrsquoapartat 215 del document adjunt ldquoDesenvolupament del Jocrdquo Amb tots aquests components ja es podria jugar una par-tida ldquoCLASSICrdquo del mode lliure Per a construir els altres nivells del mode lliure srsquoha jugat amb potenciar o extreure aquestes funcions descrites per proporcionar un altre tipus de joc

bull Escena Double Trouble Aquiacute srsquoha duplicat la pilota de joc i srsquoha adaptat lrsquoentorn per a que el nivell sigui jugable

bull Escena Faster Aquest mode es juga al doble de la velocitat normal de joc utilitzant la funcioacute Ti-meTimeScale = 2 que duplica el temps

bull Escena Insight Aquest mode es juga sense veure els components del joc el jugador nomeacutes veu una estela que indica el moviment de la pilota i la lluna de joc

bull Escena Relax En aquest mode on nomeacutes es perdragrave la partida si aquesta cau al forat negre inferior Els murs mai poden ser destruiumlts i no apareixen boosts

653 Implementacioacute del Mode Histograveria

Per a aquest mode srsquoha utilitzat com a base lrsquoestructura del nivell ldquoCLASSICrdquo del mode lliure Amb aquesta es-tructura srsquohan eliminat els boosts i el marcador de pun-tuacioacute Consta drsquoun objectiu totalment diferent al mode lliure no volem aconseguir la major puntuacioacute sinoacute que volem destruir la nau enemiga i si pot ser en el menor temps possible Script Dialog Primerament srsquoha creat un sistema de diagravelegs en el que seguint el guioacute descrit al document adjunt ldquoDesenvolu-pament del Jocrdquo apartat 212 dos personatges ens ense-nyen a jugar a lrsquohora que ens narren una divertida histograve-ria Dit aixograve srsquoha creat un sistema drsquoescriptura on segons unes frases donades srsquoescriu lletra per lletra aconseguint lrsquoefecte de narracioacute dels videojocs Quan comprovem que srsquoha mostrat tota la frase per pan-talla mostrem un botoacute per a continuar amb la conversa i un altre botoacute per a saltar el diagraveleg i comenccedilar a jugar Agafant la primera lletra de la frase amb la funcioacute subs-tring() sabrem si quin personatge parla i hem de mostrar Script History_Ball La pilota srsquoha hagut drsquoadaptar a tots els nous compo-nents A meacutes srsquoha creat un sistema per a mostrar en tot mo-ment el temps que ha passat des de lrsquoinici del nivell Per fer-ho srsquohan utilitzat 2 variables pels minuts i segons Aixograve ha permegraves visualitzar amb meacutes comoditat el format de temps ldquominuts segonsrdquo amb la funcioacute toString()

permetent realitzar les comparacions de temps correcta-ment Script Launcher Aquest script srsquoencarrega un model de miacutessil que li indi-quem i crear una instagravencia drsquoaquest davant la nau amb una certa velocitat dirigit cap a la part inferior de la pan-talla Per aconseguir-ho srsquoutilitza un objecte auxiliar a lrsquoescena lsquoFirePointrsquo que eacutes situat sempre davant la nau on srsquoinstanciaragrave el model del miacutessil amb un cert impuls Po-dem visualitzar aquest sistema a la figura 12 Script ProjectileCollision Aquest script srsquoencarrega solament de destruir el miacutessil quan topi amb un objecte que no sigui la lluna de joc Eacutes un script per a optimitzar el rendiment del joc Un cop descrits els scripts en comuacute per a tots els nivells passem als scripts que a cada nivell soacuten diferents perograve que srsquoutilitzen per a una mateixa causa la gestioacute de la nau enemiga

bull Capiacutetols 1 i 2 Els capiacutetols 1 i 2 comparteixen el ma-teix moviment de la nau Aquest script mou la nau seguint un moviment aleatori Lrsquoalgorisme consisteix en que srsquoescull un punt aleatori a arribar i quan srsquoarriba srsquoescull un altre

bull Capiacutetol 3 Al tercer capiacutetol eacutes on veiem per primer cop una intelmiddotligegravencia artificial en el moviment de la nau aquesta fugiragrave de la pilota Per fer-ho srsquoha divi-dit el nivell en dues zones dreta i esquerra quan la pilota estigui a la zona de la dreta la nau es mouragrave a lrsquoesquerra i a la inversa Per a que no sigui impossi-ble tocar-la srsquoha ajustat la velocitat del seu movi-ment adequadament

bull Capiacutetol 4 Al quart capiacutetol la nau ja consta drsquouna intelmiddotligegravencia artificial meacutes avanccedilada en la que es mou segons a on la pilota estigui situada Lrsquoalgorisme consisteix en tenir la posicioacute de la pilota en tot moment i srsquoha dividit lrsquoespai de la partida en 4 quadrats com podem veure a la figura 13 Si la pilota estagrave al quadrat 1 la nau es mouragrave al qua-drat contrari el 4 Si la pilota es situa al quadrat 2 la nau es mouragrave al quadrat 3 Per a que no fos impossi-ble topar amb la nau srsquoha drsquoajustat la velocitat del moviment

bull Capiacutetol 5 Al capiacutetol final lrsquoalgoritme consta del ma-teix moviment que al nivell anterior perograve afegint un extra que si la nau es troba en el mateix quadrat que la pilota en el mateix instant de temps la nau redui-ragrave el seu tamany complicant lrsquoobjectiu drsquoaconseguir destruir-la

10 EEUAB TFG INFORMAgraveTICA CREACIOacute DrsquoUN VIDEOJOC MOgraveBIL ADDICTIU

Fig 12 Nau amb lrsquoobjecte lsquoFire-

Pointrsquo

Fig 13 Divisioacute de quadres nivells 4 i 5

Per a veure visualment com funcionen les funcions expli-cades en aquest apartat es pot consultar el viacutedeo adjunt ldquoDEMO_GRAVITY_PONGrdquo

66 Proves

Gragravecies a la metodologia de desenvolupament de Rapid Prototyping srsquoha pogut anar testejant cada mogravedul desen-volupat al moment aixiacute extraient tots els resultats de tests ragravepidament Srsquohan realitzat 4 tipus de proves diferents

bull A les proves drsquounitat srsquoha testejat que els diferents mograveduls del sistema funcionin correctament Com que si un miacutessil drsquouna nau enemiga glopeja la lluna de joc es mostra el menuacute correcte o si tenim les su-ficients monedes per a comprar una textura la po-dem comprar satisfactograveriament entre altres

bull A les proves drsquointegracioacute srsquoha testejat que les in-teraccions entre els diferents escenaris del sistema sigui correcte Srsquoha provat que es pugi accedir a tots els nivells del videojoc i que des de aquests es pu-gui tornar correctament al menuacute principal a traveacutes del menuacute de pausa

bull Les proves de validacioacute han servit per comprovar que hem complit amb els requisits del projecte Hem testejat el correcte log in amb google la visualitzacioacute dels marcadors i la visualitzacioacute dels objectius entre altres

bull Per acabar les proves de sistema han servit gragravecies a la developer console [24] comprovar que el joc srsquoha executat correctament variant els dispositius i versions drsquoAndroid

A lrsquoapartat 31 del document adjunt ldquoDesenvolupament del Jocrdquo es poden trobar la totalitat de les proves realitza-des de cada tipus amb els seus resultats corresponents

7 CONCLUSIONS

I ja per finalitzar aquest document explicareacute quines soacuten les conclusions que he extret sobre el projecte Primer de tot crec que la planificacioacute que vaig realitzar a

lrsquoinici ha sigut lrsquoencertada Les petites alteracions que srsquohan acabat realitzant (com podem veure en el diagrama de Gantt real de lrsquoapegravendix 2) han estat meacutes enfocades a avanccedilar lrsquoinici de les tasques que no pas a endarrerir-les a causa de la situacioacute excepcional que hem viscut

Respecte a la fase drsquoimplementacioacute considero que

srsquohan completat tots els objectius que es presentaven a lrsquoinici del projecte Srsquohan desenvolupat totes les funcions que es van proposar al document de requisits amb lrsquoajuda de la psicograveloga que havia de tenir el joc per a que es considereacutes addictiu i aixiacute ha sigut Per lo que podem concloure que hem desenvolupat un joc addictiu per a Android satisfactograveriament A meacutes srsquoha de dir que lrsquoaplicacioacute eacutes responsive [12] i molt fagravecilment escalable

I com a uacuteltim punt voldria comentar que mrsquohagueacutes

agradat disposar de meacutes temps i recursos per a millorar tot lrsquoaspecte visual de lrsquoaplicacioacute encara meacutes fins a arribar a apropar-se al nivell de mitjanes produccions aquest aspecte milloraria lrsquointeregraves per al joc

71 Futures Accions

A continuacioacute detallarem aquelles accions futures que he considerat que pot ser interessant desenvolupar en prograveximes ampliacions del joc per tal que lrsquoexperiegravencia drsquouacutes dels usuaris sigui la millor possible

bull Un tutorial molt meacutes visual que es mostri el primer cop que srsquoiniciiuml lrsquoaplicacioacute on no solament srsquoexpliqui sobre la mecagravenica del joc sinoacute que tambeacute es guiiuml a lrsquousuari a traveacutes dels menuacutes la interfaccedil i els diferents modes i nivells de joc

bull Una integracioacute drsquoalgun mode de joc online on es po-gueacutes competir contra un altre jugador en temps real oferiria molt drsquoatractiu i enriquiria molt lrsquoaplicacioacute

bull Per acabar com ja hem comentat una millora visual en la que no mrsquohe pogut centrar en especial durant el projecte on amb lrsquoajuda drsquoalgun professional en la mategraveria es crearien unes visuals progravepies per al joc

8 AGRAIumlMENTS

En primer lloc mrsquoagradaria agrair a la meva famiacutelia el suport incondicional que mrsquohan donat en tot moment durant els quatre anys que porto de carrera Sense ells res de tot aixograve hauria estat possible

Tambeacute mrsquoagradaria agrair la Gemma Saacutenchez la meva tutora del TFG pels consells i lrsquoajuda que mrsquoha ofert du-rant aquests mesos tant durs i especials de projecte insis-tint en quegrave treballes ben dur des del primer dia ha per-megraves que aquest treball hagi pogut tirar endavant amb meacutes facilitat

Finalment voldria agrair a les altres persones que han fet aquest treball possible des de la psicograveloga experta que ens va ajudar a definir molt beacute els requisis fins a tots els companys i amics que han treballat com a testers del joc trobant lsquobugsrsquo i fent propostes sobre possibles millores drsquoaquest

NIL PASCUAL FERNAacuteNDEZ CREACIOacute DrsquoUN VIDEOJOC MOgraveBIL ADDICTIU 11

IacuteNDEX DE FIGURES

Fig 1 lsquoRapid Prototypingrsquo3

Fig 2 Diagrama de Classes lsquoNavegar per la Tendarsquo5

Fig 3 Descripcioacute Cas drsquouacutes ldquoComprar textura pilotardquo6

Fig 4 Diagrama de Classes i Escenes6

Fig 5 Diagrama de Sequumlegravencia 1a Execucioacute6

Fig 6 Escena Menuacute Principal7

Fig 7 Escena Mode Lliure7

Fig 8 Escena Botiga8

Fig 9 Escena Mode Histograveria8

Fig 10 Escena lsquoCLASSICrsquo8

Fig 11 Efecte Boost de Gel8

Fig 12 Nau amb objecte lsquofirepointrsquo10

Fig 13 Divisioacute de quadres nivells 4 i 510

REFEREgraveNCIES

[1] Desenvolupament lsquoRapid prototypingrsquo httpseswikipediaorgwikiModelo_de_prototipos

[2] Article de lrsquoaddiccioacute als videojocs httpspsicologiaymentecomclinicaadiccion-a-videojuegos

[3] Per quegrave enganxen els videojocs httpswwwlavanguardiacomestilos-de-vida2012062954317381414por-que-enganchan-los-videojuegoshtml

[4] Historia dels Videojocs httpswwwfibupceduretroinformaticahistoriavideojocshtml

[5] Requisits miacutenims Candy Crush Saga httpswwwmicrosoftcomes-espcandy-crush-sa-ga9nblggh18846activetab=pivotregionofsystemrequirementstab

[6] Document SRS drsquoexemple httpswwwdocsitycomesejemplo-de-documento-srs4930539

[7] El lsquoFirst clickrsquo test httpsusabilityhubcomguidesfirst-click-testing

[8] Quumlestionari lsquoFirst clickrsquo test I httpsowsiocm7v7lx3h4

[9] Quumlestionari lsquoFirst clickrsquo test II httpsowsiocmj6574121

[10] Quumlestionari lsquoFirst clickrsquo test III httpsowsiocm7df25ouc

[11] Scroll Rect de Unity httpsdocsunity3dcomes20184Manualscript-ScrollRecthtml

[12] Disseny Responsive httpswww40defiebrecomque-esdiseno-responsi-ve~text=El20disentildeo20web20responsive20o3B20ordenador2C20tablet2C20smartphonehellip

[13] Canvas de Unity httpsdocsunity3dcomescurrentManualUICanvashtml

[14] Playerprefs de Unity httpsdocsunity3dcomescurrentScriptReferencePlayerPrefshtml

[15] ldquoDisseny de Softwarerdquo Assignatura del grau que ha ser-

vit de font bagravesica dels coneixements aplicats tant a An-droid com als tests amb usuaris La seva guia docent la trobem disponible a httpsdocsunity3dcomManualUnityManualhtml

[16] ldquoTest i Qualitat del Softwarerdquo Assignatura del grau que ha servit de font bagravesica dels coneixements aplicats per als tests del codi La seva guia docent la trobem disponible a httpsguiesuabcatguies_docentspublicportalhtml2019assignatura102758ca

[17] ldquoDocumentacioacuten de Unityrdquo Documentacioacute completa del motor gragravefic lsquoUnityrsquo que srsquoha anat consultant en tot mo-ment del desenvolupament httpsdocsunity3dcomManualUnityManualhtml httpswwww3schoolscomcs

[18] ldquoStack Overflowrdquo Fograverum de preguntes i respostes rela-cionades amb el moacuten de la programacioacute i la informagravetica Srsquoha anat consultant durant la fase drsquoimplementacioacute Al-gunes de les pagravegines que voldria destacar

o Text borroacutes a Unity httpsstackoverflowcomquestions16506737unity3d-3d-text-always-displayed-blur16507861

o Sing-In Google httpsstackoverflowcomquestions59599895problems-with-google-sign-in-in-unity

[19] ldquoComo firmar tu apprdquo Documentacioacute per a desenvolupa-dors Android sobre com signar una aplicacioacute per a que totes les funcions de google funcionin correctament httpsdeveloperandroidcomstudiopublishapp-signinggoogle-play-app-signing

[20] ldquoUnity Ads Documentationrdquo Documentacioacute sobre el sis-tema de publicitat de unity utilitzat a lrsquoapp httpsdocsunity3dcomPackagescomunityads34manualindexhtml

[21] ldquoGoogle play games plugin for unityrdquo Plugin per a unity per a poder utilitzar totes les funcions de google play games httpsgithubcomplaygameservicesplay-games-plugin-for-unity

[22] ldquoFlaticonrdquo Web de recursos gratuiumlts drsquoon srsquohan descarre-gat els sprites que srsquoutilitzen al joc httpswwwflaticones

[23] ldquoUnity Asset Storerdquo Web de recursos gratuiumlts de unity drsquoon srsquohan descarregat els models dels planetes que srsquoutilitzen al joc entre altres httpsassetstoreunitycomgclid=CjwKCAjwlZf3BRABEiwA8Q0qq9NcH2nCMrUHDdQUrV0K7dNiZD6JMAy7G8x93NPLzD3wZKmhiK1MQBoCvR0QAvD_BwE

[24] ldquoAyuda de Play Consolerdquo Documentacioacute sobre al play console plataform on es puja lrsquoaplicacioacute per a que es vi-sualitzi a la play store que srsquoha consultat quan han sorgit problemes httpssupportgooglecomgoogleplayandroid-developerhl=estopic=3450769

[25] ldquoPongrdquo Primer videojoc de la histograveria httpseswikipediaorgwikiPong~text=Pong20(o20Tele-Pong)mesa20(o20ping20pong)

[26] ldquoFlappy Birdsrdquo httpseswikipediaorgwikiFlappy_Bird

[27] ldquoCandy Crushrdquo httpswwwxatakamovilcommovil-y-sociedadcandy-crush-saga-la-ciencia-detras-de-la-adiccion

12 EEUAB TFG INFORMAgraveTICA CREACIOacute DrsquoUN VIDEOJOC MOgraveBIL ADDICTIU

APEgraveNDIX

A1 DIAGRAMA DE GANTT DE LA PLANIFICACIOacute INICIAL

A1 Diagrama de Gantt corresponent a la planificacioacute inicial del projecte En aquest diagrama podem veure les diferents tasquesetapes de desenvolupament amb les setmanes que es va planificar destinar a cada una

A2 SECCIOacute DrsquoAPEgraveNDIX

A2 Diagrama de Gantt corresponent a la planificacioacute final del projecte Tal i com podem veure tenim alguns canvis en els temps respecte a la planificacioacute inicial es va acurtar la fase de desenvolupament ja que amb la situacioacute excepcional del paiacutes srsquoha disposat de molt meacutes

temps per al desenvolupament lo qual ha permegraves avanccedilar el pas a produccioacute i la documentacioacute del projecte

NIL PASCUAL FERNAacuteNDEZ CREACIOacute DrsquoUN VIDEOJOC MOgraveBIL ADDICTIU 13

A3 RESULTAT DEL ESTUDI DE DISSENY ndash TASCA 1

A3 Resultat Estudi 1 - Tasca 1 Com observem el 90 dels testers han completat lrsquoobjectiu de la tasca

A4 RESULTAT DEL ESTUDI DE DISSENY ndash TASCA 1 (MAPA DE CALOR)

A4 Resultat estudi 1 ndash Tasca 1 (Mapa de Calor) Com podem observar la zona de tocs de dit del 70 dels tocs se centra en el botoacute correcte

14 EEUAB TFG INFORMAgraveTICA CREACIOacute DrsquoUN VIDEOJOC MOgraveBIL ADDICTIU

Page 10: Nil Pascual Fernández - UAB Barcelona · 2020. 9. 2. · llançar la seva primera consola: la Playstation, que tenia un reproductor de CDs, lo qual comportava que els vi-deojocs

10 EEUAB TFG INFORMAgraveTICA CREACIOacute DrsquoUN VIDEOJOC MOgraveBIL ADDICTIU

Fig 12 Nau amb lrsquoobjecte lsquoFire-

Pointrsquo

Fig 13 Divisioacute de quadres nivells 4 i 5

Per a veure visualment com funcionen les funcions expli-cades en aquest apartat es pot consultar el viacutedeo adjunt ldquoDEMO_GRAVITY_PONGrdquo

66 Proves

Gragravecies a la metodologia de desenvolupament de Rapid Prototyping srsquoha pogut anar testejant cada mogravedul desen-volupat al moment aixiacute extraient tots els resultats de tests ragravepidament Srsquohan realitzat 4 tipus de proves diferents

bull A les proves drsquounitat srsquoha testejat que els diferents mograveduls del sistema funcionin correctament Com que si un miacutessil drsquouna nau enemiga glopeja la lluna de joc es mostra el menuacute correcte o si tenim les su-ficients monedes per a comprar una textura la po-dem comprar satisfactograveriament entre altres

bull A les proves drsquointegracioacute srsquoha testejat que les in-teraccions entre els diferents escenaris del sistema sigui correcte Srsquoha provat que es pugi accedir a tots els nivells del videojoc i que des de aquests es pu-gui tornar correctament al menuacute principal a traveacutes del menuacute de pausa

bull Les proves de validacioacute han servit per comprovar que hem complit amb els requisits del projecte Hem testejat el correcte log in amb google la visualitzacioacute dels marcadors i la visualitzacioacute dels objectius entre altres

bull Per acabar les proves de sistema han servit gragravecies a la developer console [24] comprovar que el joc srsquoha executat correctament variant els dispositius i versions drsquoAndroid

A lrsquoapartat 31 del document adjunt ldquoDesenvolupament del Jocrdquo es poden trobar la totalitat de les proves realitza-des de cada tipus amb els seus resultats corresponents

7 CONCLUSIONS

I ja per finalitzar aquest document explicareacute quines soacuten les conclusions que he extret sobre el projecte Primer de tot crec que la planificacioacute que vaig realitzar a

lrsquoinici ha sigut lrsquoencertada Les petites alteracions que srsquohan acabat realitzant (com podem veure en el diagrama de Gantt real de lrsquoapegravendix 2) han estat meacutes enfocades a avanccedilar lrsquoinici de les tasques que no pas a endarrerir-les a causa de la situacioacute excepcional que hem viscut

Respecte a la fase drsquoimplementacioacute considero que

srsquohan completat tots els objectius que es presentaven a lrsquoinici del projecte Srsquohan desenvolupat totes les funcions que es van proposar al document de requisits amb lrsquoajuda de la psicograveloga que havia de tenir el joc per a que es considereacutes addictiu i aixiacute ha sigut Per lo que podem concloure que hem desenvolupat un joc addictiu per a Android satisfactograveriament A meacutes srsquoha de dir que lrsquoaplicacioacute eacutes responsive [12] i molt fagravecilment escalable

I com a uacuteltim punt voldria comentar que mrsquohagueacutes

agradat disposar de meacutes temps i recursos per a millorar tot lrsquoaspecte visual de lrsquoaplicacioacute encara meacutes fins a arribar a apropar-se al nivell de mitjanes produccions aquest aspecte milloraria lrsquointeregraves per al joc

71 Futures Accions

A continuacioacute detallarem aquelles accions futures que he considerat que pot ser interessant desenvolupar en prograveximes ampliacions del joc per tal que lrsquoexperiegravencia drsquouacutes dels usuaris sigui la millor possible

bull Un tutorial molt meacutes visual que es mostri el primer cop que srsquoiniciiuml lrsquoaplicacioacute on no solament srsquoexpliqui sobre la mecagravenica del joc sinoacute que tambeacute es guiiuml a lrsquousuari a traveacutes dels menuacutes la interfaccedil i els diferents modes i nivells de joc

bull Una integracioacute drsquoalgun mode de joc online on es po-gueacutes competir contra un altre jugador en temps real oferiria molt drsquoatractiu i enriquiria molt lrsquoaplicacioacute

bull Per acabar com ja hem comentat una millora visual en la que no mrsquohe pogut centrar en especial durant el projecte on amb lrsquoajuda drsquoalgun professional en la mategraveria es crearien unes visuals progravepies per al joc

8 AGRAIumlMENTS

En primer lloc mrsquoagradaria agrair a la meva famiacutelia el suport incondicional que mrsquohan donat en tot moment durant els quatre anys que porto de carrera Sense ells res de tot aixograve hauria estat possible

Tambeacute mrsquoagradaria agrair la Gemma Saacutenchez la meva tutora del TFG pels consells i lrsquoajuda que mrsquoha ofert du-rant aquests mesos tant durs i especials de projecte insis-tint en quegrave treballes ben dur des del primer dia ha per-megraves que aquest treball hagi pogut tirar endavant amb meacutes facilitat

Finalment voldria agrair a les altres persones que han fet aquest treball possible des de la psicograveloga experta que ens va ajudar a definir molt beacute els requisis fins a tots els companys i amics que han treballat com a testers del joc trobant lsquobugsrsquo i fent propostes sobre possibles millores drsquoaquest

NIL PASCUAL FERNAacuteNDEZ CREACIOacute DrsquoUN VIDEOJOC MOgraveBIL ADDICTIU 11

IacuteNDEX DE FIGURES

Fig 1 lsquoRapid Prototypingrsquo3

Fig 2 Diagrama de Classes lsquoNavegar per la Tendarsquo5

Fig 3 Descripcioacute Cas drsquouacutes ldquoComprar textura pilotardquo6

Fig 4 Diagrama de Classes i Escenes6

Fig 5 Diagrama de Sequumlegravencia 1a Execucioacute6

Fig 6 Escena Menuacute Principal7

Fig 7 Escena Mode Lliure7

Fig 8 Escena Botiga8

Fig 9 Escena Mode Histograveria8

Fig 10 Escena lsquoCLASSICrsquo8

Fig 11 Efecte Boost de Gel8

Fig 12 Nau amb objecte lsquofirepointrsquo10

Fig 13 Divisioacute de quadres nivells 4 i 510

REFEREgraveNCIES

[1] Desenvolupament lsquoRapid prototypingrsquo httpseswikipediaorgwikiModelo_de_prototipos

[2] Article de lrsquoaddiccioacute als videojocs httpspsicologiaymentecomclinicaadiccion-a-videojuegos

[3] Per quegrave enganxen els videojocs httpswwwlavanguardiacomestilos-de-vida2012062954317381414por-que-enganchan-los-videojuegoshtml

[4] Historia dels Videojocs httpswwwfibupceduretroinformaticahistoriavideojocshtml

[5] Requisits miacutenims Candy Crush Saga httpswwwmicrosoftcomes-espcandy-crush-sa-ga9nblggh18846activetab=pivotregionofsystemrequirementstab

[6] Document SRS drsquoexemple httpswwwdocsitycomesejemplo-de-documento-srs4930539

[7] El lsquoFirst clickrsquo test httpsusabilityhubcomguidesfirst-click-testing

[8] Quumlestionari lsquoFirst clickrsquo test I httpsowsiocm7v7lx3h4

[9] Quumlestionari lsquoFirst clickrsquo test II httpsowsiocmj6574121

[10] Quumlestionari lsquoFirst clickrsquo test III httpsowsiocm7df25ouc

[11] Scroll Rect de Unity httpsdocsunity3dcomes20184Manualscript-ScrollRecthtml

[12] Disseny Responsive httpswww40defiebrecomque-esdiseno-responsi-ve~text=El20disentildeo20web20responsive20o3B20ordenador2C20tablet2C20smartphonehellip

[13] Canvas de Unity httpsdocsunity3dcomescurrentManualUICanvashtml

[14] Playerprefs de Unity httpsdocsunity3dcomescurrentScriptReferencePlayerPrefshtml

[15] ldquoDisseny de Softwarerdquo Assignatura del grau que ha ser-

vit de font bagravesica dels coneixements aplicats tant a An-droid com als tests amb usuaris La seva guia docent la trobem disponible a httpsdocsunity3dcomManualUnityManualhtml

[16] ldquoTest i Qualitat del Softwarerdquo Assignatura del grau que ha servit de font bagravesica dels coneixements aplicats per als tests del codi La seva guia docent la trobem disponible a httpsguiesuabcatguies_docentspublicportalhtml2019assignatura102758ca

[17] ldquoDocumentacioacuten de Unityrdquo Documentacioacute completa del motor gragravefic lsquoUnityrsquo que srsquoha anat consultant en tot mo-ment del desenvolupament httpsdocsunity3dcomManualUnityManualhtml httpswwww3schoolscomcs

[18] ldquoStack Overflowrdquo Fograverum de preguntes i respostes rela-cionades amb el moacuten de la programacioacute i la informagravetica Srsquoha anat consultant durant la fase drsquoimplementacioacute Al-gunes de les pagravegines que voldria destacar

o Text borroacutes a Unity httpsstackoverflowcomquestions16506737unity3d-3d-text-always-displayed-blur16507861

o Sing-In Google httpsstackoverflowcomquestions59599895problems-with-google-sign-in-in-unity

[19] ldquoComo firmar tu apprdquo Documentacioacute per a desenvolupa-dors Android sobre com signar una aplicacioacute per a que totes les funcions de google funcionin correctament httpsdeveloperandroidcomstudiopublishapp-signinggoogle-play-app-signing

[20] ldquoUnity Ads Documentationrdquo Documentacioacute sobre el sis-tema de publicitat de unity utilitzat a lrsquoapp httpsdocsunity3dcomPackagescomunityads34manualindexhtml

[21] ldquoGoogle play games plugin for unityrdquo Plugin per a unity per a poder utilitzar totes les funcions de google play games httpsgithubcomplaygameservicesplay-games-plugin-for-unity

[22] ldquoFlaticonrdquo Web de recursos gratuiumlts drsquoon srsquohan descarre-gat els sprites que srsquoutilitzen al joc httpswwwflaticones

[23] ldquoUnity Asset Storerdquo Web de recursos gratuiumlts de unity drsquoon srsquohan descarregat els models dels planetes que srsquoutilitzen al joc entre altres httpsassetstoreunitycomgclid=CjwKCAjwlZf3BRABEiwA8Q0qq9NcH2nCMrUHDdQUrV0K7dNiZD6JMAy7G8x93NPLzD3wZKmhiK1MQBoCvR0QAvD_BwE

[24] ldquoAyuda de Play Consolerdquo Documentacioacute sobre al play console plataform on es puja lrsquoaplicacioacute per a que es vi-sualitzi a la play store que srsquoha consultat quan han sorgit problemes httpssupportgooglecomgoogleplayandroid-developerhl=estopic=3450769

[25] ldquoPongrdquo Primer videojoc de la histograveria httpseswikipediaorgwikiPong~text=Pong20(o20Tele-Pong)mesa20(o20ping20pong)

[26] ldquoFlappy Birdsrdquo httpseswikipediaorgwikiFlappy_Bird

[27] ldquoCandy Crushrdquo httpswwwxatakamovilcommovil-y-sociedadcandy-crush-saga-la-ciencia-detras-de-la-adiccion

12 EEUAB TFG INFORMAgraveTICA CREACIOacute DrsquoUN VIDEOJOC MOgraveBIL ADDICTIU

APEgraveNDIX

A1 DIAGRAMA DE GANTT DE LA PLANIFICACIOacute INICIAL

A1 Diagrama de Gantt corresponent a la planificacioacute inicial del projecte En aquest diagrama podem veure les diferents tasquesetapes de desenvolupament amb les setmanes que es va planificar destinar a cada una

A2 SECCIOacute DrsquoAPEgraveNDIX

A2 Diagrama de Gantt corresponent a la planificacioacute final del projecte Tal i com podem veure tenim alguns canvis en els temps respecte a la planificacioacute inicial es va acurtar la fase de desenvolupament ja que amb la situacioacute excepcional del paiacutes srsquoha disposat de molt meacutes

temps per al desenvolupament lo qual ha permegraves avanccedilar el pas a produccioacute i la documentacioacute del projecte

NIL PASCUAL FERNAacuteNDEZ CREACIOacute DrsquoUN VIDEOJOC MOgraveBIL ADDICTIU 13

A3 RESULTAT DEL ESTUDI DE DISSENY ndash TASCA 1

A3 Resultat Estudi 1 - Tasca 1 Com observem el 90 dels testers han completat lrsquoobjectiu de la tasca

A4 RESULTAT DEL ESTUDI DE DISSENY ndash TASCA 1 (MAPA DE CALOR)

A4 Resultat estudi 1 ndash Tasca 1 (Mapa de Calor) Com podem observar la zona de tocs de dit del 70 dels tocs se centra en el botoacute correcte

14 EEUAB TFG INFORMAgraveTICA CREACIOacute DrsquoUN VIDEOJOC MOgraveBIL ADDICTIU

Page 11: Nil Pascual Fernández - UAB Barcelona · 2020. 9. 2. · llançar la seva primera consola: la Playstation, que tenia un reproductor de CDs, lo qual comportava que els vi-deojocs

NIL PASCUAL FERNAacuteNDEZ CREACIOacute DrsquoUN VIDEOJOC MOgraveBIL ADDICTIU 11

IacuteNDEX DE FIGURES

Fig 1 lsquoRapid Prototypingrsquo3

Fig 2 Diagrama de Classes lsquoNavegar per la Tendarsquo5

Fig 3 Descripcioacute Cas drsquouacutes ldquoComprar textura pilotardquo6

Fig 4 Diagrama de Classes i Escenes6

Fig 5 Diagrama de Sequumlegravencia 1a Execucioacute6

Fig 6 Escena Menuacute Principal7

Fig 7 Escena Mode Lliure7

Fig 8 Escena Botiga8

Fig 9 Escena Mode Histograveria8

Fig 10 Escena lsquoCLASSICrsquo8

Fig 11 Efecte Boost de Gel8

Fig 12 Nau amb objecte lsquofirepointrsquo10

Fig 13 Divisioacute de quadres nivells 4 i 510

REFEREgraveNCIES

[1] Desenvolupament lsquoRapid prototypingrsquo httpseswikipediaorgwikiModelo_de_prototipos

[2] Article de lrsquoaddiccioacute als videojocs httpspsicologiaymentecomclinicaadiccion-a-videojuegos

[3] Per quegrave enganxen els videojocs httpswwwlavanguardiacomestilos-de-vida2012062954317381414por-que-enganchan-los-videojuegoshtml

[4] Historia dels Videojocs httpswwwfibupceduretroinformaticahistoriavideojocshtml

[5] Requisits miacutenims Candy Crush Saga httpswwwmicrosoftcomes-espcandy-crush-sa-ga9nblggh18846activetab=pivotregionofsystemrequirementstab

[6] Document SRS drsquoexemple httpswwwdocsitycomesejemplo-de-documento-srs4930539

[7] El lsquoFirst clickrsquo test httpsusabilityhubcomguidesfirst-click-testing

[8] Quumlestionari lsquoFirst clickrsquo test I httpsowsiocm7v7lx3h4

[9] Quumlestionari lsquoFirst clickrsquo test II httpsowsiocmj6574121

[10] Quumlestionari lsquoFirst clickrsquo test III httpsowsiocm7df25ouc

[11] Scroll Rect de Unity httpsdocsunity3dcomes20184Manualscript-ScrollRecthtml

[12] Disseny Responsive httpswww40defiebrecomque-esdiseno-responsi-ve~text=El20disentildeo20web20responsive20o3B20ordenador2C20tablet2C20smartphonehellip

[13] Canvas de Unity httpsdocsunity3dcomescurrentManualUICanvashtml

[14] Playerprefs de Unity httpsdocsunity3dcomescurrentScriptReferencePlayerPrefshtml

[15] ldquoDisseny de Softwarerdquo Assignatura del grau que ha ser-

vit de font bagravesica dels coneixements aplicats tant a An-droid com als tests amb usuaris La seva guia docent la trobem disponible a httpsdocsunity3dcomManualUnityManualhtml

[16] ldquoTest i Qualitat del Softwarerdquo Assignatura del grau que ha servit de font bagravesica dels coneixements aplicats per als tests del codi La seva guia docent la trobem disponible a httpsguiesuabcatguies_docentspublicportalhtml2019assignatura102758ca

[17] ldquoDocumentacioacuten de Unityrdquo Documentacioacute completa del motor gragravefic lsquoUnityrsquo que srsquoha anat consultant en tot mo-ment del desenvolupament httpsdocsunity3dcomManualUnityManualhtml httpswwww3schoolscomcs

[18] ldquoStack Overflowrdquo Fograverum de preguntes i respostes rela-cionades amb el moacuten de la programacioacute i la informagravetica Srsquoha anat consultant durant la fase drsquoimplementacioacute Al-gunes de les pagravegines que voldria destacar

o Text borroacutes a Unity httpsstackoverflowcomquestions16506737unity3d-3d-text-always-displayed-blur16507861

o Sing-In Google httpsstackoverflowcomquestions59599895problems-with-google-sign-in-in-unity

[19] ldquoComo firmar tu apprdquo Documentacioacute per a desenvolupa-dors Android sobre com signar una aplicacioacute per a que totes les funcions de google funcionin correctament httpsdeveloperandroidcomstudiopublishapp-signinggoogle-play-app-signing

[20] ldquoUnity Ads Documentationrdquo Documentacioacute sobre el sis-tema de publicitat de unity utilitzat a lrsquoapp httpsdocsunity3dcomPackagescomunityads34manualindexhtml

[21] ldquoGoogle play games plugin for unityrdquo Plugin per a unity per a poder utilitzar totes les funcions de google play games httpsgithubcomplaygameservicesplay-games-plugin-for-unity

[22] ldquoFlaticonrdquo Web de recursos gratuiumlts drsquoon srsquohan descarre-gat els sprites que srsquoutilitzen al joc httpswwwflaticones

[23] ldquoUnity Asset Storerdquo Web de recursos gratuiumlts de unity drsquoon srsquohan descarregat els models dels planetes que srsquoutilitzen al joc entre altres httpsassetstoreunitycomgclid=CjwKCAjwlZf3BRABEiwA8Q0qq9NcH2nCMrUHDdQUrV0K7dNiZD6JMAy7G8x93NPLzD3wZKmhiK1MQBoCvR0QAvD_BwE

[24] ldquoAyuda de Play Consolerdquo Documentacioacute sobre al play console plataform on es puja lrsquoaplicacioacute per a que es vi-sualitzi a la play store que srsquoha consultat quan han sorgit problemes httpssupportgooglecomgoogleplayandroid-developerhl=estopic=3450769

[25] ldquoPongrdquo Primer videojoc de la histograveria httpseswikipediaorgwikiPong~text=Pong20(o20Tele-Pong)mesa20(o20ping20pong)

[26] ldquoFlappy Birdsrdquo httpseswikipediaorgwikiFlappy_Bird

[27] ldquoCandy Crushrdquo httpswwwxatakamovilcommovil-y-sociedadcandy-crush-saga-la-ciencia-detras-de-la-adiccion

12 EEUAB TFG INFORMAgraveTICA CREACIOacute DrsquoUN VIDEOJOC MOgraveBIL ADDICTIU

APEgraveNDIX

A1 DIAGRAMA DE GANTT DE LA PLANIFICACIOacute INICIAL

A1 Diagrama de Gantt corresponent a la planificacioacute inicial del projecte En aquest diagrama podem veure les diferents tasquesetapes de desenvolupament amb les setmanes que es va planificar destinar a cada una

A2 SECCIOacute DrsquoAPEgraveNDIX

A2 Diagrama de Gantt corresponent a la planificacioacute final del projecte Tal i com podem veure tenim alguns canvis en els temps respecte a la planificacioacute inicial es va acurtar la fase de desenvolupament ja que amb la situacioacute excepcional del paiacutes srsquoha disposat de molt meacutes

temps per al desenvolupament lo qual ha permegraves avanccedilar el pas a produccioacute i la documentacioacute del projecte

NIL PASCUAL FERNAacuteNDEZ CREACIOacute DrsquoUN VIDEOJOC MOgraveBIL ADDICTIU 13

A3 RESULTAT DEL ESTUDI DE DISSENY ndash TASCA 1

A3 Resultat Estudi 1 - Tasca 1 Com observem el 90 dels testers han completat lrsquoobjectiu de la tasca

A4 RESULTAT DEL ESTUDI DE DISSENY ndash TASCA 1 (MAPA DE CALOR)

A4 Resultat estudi 1 ndash Tasca 1 (Mapa de Calor) Com podem observar la zona de tocs de dit del 70 dels tocs se centra en el botoacute correcte

14 EEUAB TFG INFORMAgraveTICA CREACIOacute DrsquoUN VIDEOJOC MOgraveBIL ADDICTIU

Page 12: Nil Pascual Fernández - UAB Barcelona · 2020. 9. 2. · llançar la seva primera consola: la Playstation, que tenia un reproductor de CDs, lo qual comportava que els vi-deojocs

12 EEUAB TFG INFORMAgraveTICA CREACIOacute DrsquoUN VIDEOJOC MOgraveBIL ADDICTIU

APEgraveNDIX

A1 DIAGRAMA DE GANTT DE LA PLANIFICACIOacute INICIAL

A1 Diagrama de Gantt corresponent a la planificacioacute inicial del projecte En aquest diagrama podem veure les diferents tasquesetapes de desenvolupament amb les setmanes que es va planificar destinar a cada una

A2 SECCIOacute DrsquoAPEgraveNDIX

A2 Diagrama de Gantt corresponent a la planificacioacute final del projecte Tal i com podem veure tenim alguns canvis en els temps respecte a la planificacioacute inicial es va acurtar la fase de desenvolupament ja que amb la situacioacute excepcional del paiacutes srsquoha disposat de molt meacutes

temps per al desenvolupament lo qual ha permegraves avanccedilar el pas a produccioacute i la documentacioacute del projecte

NIL PASCUAL FERNAacuteNDEZ CREACIOacute DrsquoUN VIDEOJOC MOgraveBIL ADDICTIU 13

A3 RESULTAT DEL ESTUDI DE DISSENY ndash TASCA 1

A3 Resultat Estudi 1 - Tasca 1 Com observem el 90 dels testers han completat lrsquoobjectiu de la tasca

A4 RESULTAT DEL ESTUDI DE DISSENY ndash TASCA 1 (MAPA DE CALOR)

A4 Resultat estudi 1 ndash Tasca 1 (Mapa de Calor) Com podem observar la zona de tocs de dit del 70 dels tocs se centra en el botoacute correcte

14 EEUAB TFG INFORMAgraveTICA CREACIOacute DrsquoUN VIDEOJOC MOgraveBIL ADDICTIU

Page 13: Nil Pascual Fernández - UAB Barcelona · 2020. 9. 2. · llançar la seva primera consola: la Playstation, que tenia un reproductor de CDs, lo qual comportava que els vi-deojocs

NIL PASCUAL FERNAacuteNDEZ CREACIOacute DrsquoUN VIDEOJOC MOgraveBIL ADDICTIU 13

A3 RESULTAT DEL ESTUDI DE DISSENY ndash TASCA 1

A3 Resultat Estudi 1 - Tasca 1 Com observem el 90 dels testers han completat lrsquoobjectiu de la tasca

A4 RESULTAT DEL ESTUDI DE DISSENY ndash TASCA 1 (MAPA DE CALOR)

A4 Resultat estudi 1 ndash Tasca 1 (Mapa de Calor) Com podem observar la zona de tocs de dit del 70 dels tocs se centra en el botoacute correcte

14 EEUAB TFG INFORMAgraveTICA CREACIOacute DrsquoUN VIDEOJOC MOgraveBIL ADDICTIU

Page 14: Nil Pascual Fernández - UAB Barcelona · 2020. 9. 2. · llançar la seva primera consola: la Playstation, que tenia un reproductor de CDs, lo qual comportava que els vi-deojocs

14 EEUAB TFG INFORMAgraveTICA CREACIOacute DrsquoUN VIDEOJOC MOgraveBIL ADDICTIU