scieee Science in your language
[es] (orig)

Sistema de matchmaking para un videojuego multijugador

Abstract

Uno de los problemas frecuentes en los videojuegos multijugador en red es la generación de partidas “equilibradas” donde todos los jugadores se diviertan y puedan disfrutar de un reto que se adecúe a su nivel de habilidad. Mientras que en los videojuegos offline el reto está estandarizado y es el mismo para todos los jugadores pues es establecido por los propios diseñadores, en un juego multijugador, lograr este objetivo se consigue al emparejar a jugadores con las mismas aptitudes. Los sistemas de matchmaking son los responsables de generar emparejamientos de jugadores teniendo en cuenta este concepto de equilibrio. El objetivo de este trabajo es el diseño e implementación de un sistema de matchmaking que será aplicado a un videojuego de género shooter con multijugador en línea, de perspectiva 2D, que incluirá distintos personajes y armas. Este sistema se encargará de asignar un nivel de puntuación a cada jugador en relación a su habilidad y actualizarlo según su resultado en las partidas, además de asignar a cada jugador interesado en jugar una partida un rival que ronde su mismo nivel de habilidad para lograr una partida equilibrada para ambos jugadores. Para mantener el nivel de puntuación correcto de cada jugador, el sistema recogerá información acerca de la actuación de los jugadores durante las partidas y lo empleará para actualizar su puntuación y establecer mediciones precisas de su habilidad en base a sus resultados.

Read accessible full text

Sistema de matchmaking para un videojuego multijugador

Author: Martín Serrano, José; García Grossi, Pablo; Arias González, Javier; Ory Alonso, Ignacio
Year: 2021
Source: https://docta.ucm.es/bitstreams/bf820363-cf67-46fc-beb4-81686ec7fbd8/download
Sis ema de ma chmaking pa a un
ideojuego mul ijugado
Po
José Ma ín Se ano, Pablo Ga cía G ossi, Ja ie A ias González, Ignacio
O y Alonso
G ado en Desa ollo de Videojuegos
Facul ad de In o má ica
Di igido po
Ped o Pablo Gómez Ma ín, Guille mo Jiménez Díaz
Ma chmaking sys em o a mul iplaye ideo
game
Mad id, 2020–2021
Sis ema de ma chmaking pa a un
ideojuego mul ijugado
Memo ia que se p esen a pa a el T abajo de Fin de G ado
José Ma ín Se ano, Pablo Ga cía G ossi, Ja ie A ias
González, Ignacio O y Alonso
Di igido po
Ped o Pablo Gómez Ma ín, Guille mo Jiménez Díaz
Depa amen o de Ingenie ía del So wa e e In eligencia A i icial
Facul ad de In o má ica
Uni e sidad Complu ense de Mad id
Mad id, 2021
Ag adecimien os
En p ime luga , que emos ag adece a odos nues os amilia es, amigos y a nues a
masco a, Peepy, po el cons an e apoyo y ánimo que nos han dado.
A Gonzalo y Guille mo, compañe os que nos han ayudado du an e oda la ca e a, pe o
aún más en el desa ollo de es e p oyec o.
A nues os u o es, Guille mo Jimenez Díaz y Ped o Pablo Gómez Ma ín, po su labo ,
guiándonos o i ándonos de las o ejas según ue a necesa io.
No podía al a un econocimien o a oda la gen e (imposible menciona los uno a uno)
que pa icipó en las p uebas con usua ios y di undió las mismas.
iii

Resumen
Sis ema de ma chmaking pa a un ideojuego mul iju-
gado
Uno de los p oblemas ecuen es en los ideojuegos mul ijugado en ed es la gene ación
de pa idas “equilib adas” donde odos los jugado es se di ie an y puedan dis u a de
un e o que se adecúe a su ni el de habilidad. Mien as que en los ideojuegos o line
el e o es á es anda izado y es el mismo pa a odos los jugado es pues es es ablecido
po los p opios diseñado es, en un juego mul ijugado , log a es e obje i o se consigue al
empa eja a jugado es con las mismas ap i udes. Los sis emas de ma chmaking son los
esponsables de gene a empa ejamien os de jugado es eniendo en cuen a es e concep o
de equilib io.
El obje i o de es e abajo es el diseño e implemen ación de un sis ema de ma chma-
king que se á aplicado a un ideojuego de géne o shoo e con mul ijugado en línea, de
pe spec i a 2D, que inclui á dis in os pe sonajes y a mas. Es e sis ema se enca ga á de
asigna un ni el de pun uación a cada jugado en elación a su habilidad y ac ualiza lo
según su esul ado en las pa idas, además de asigna a cada jugado in e esado en ju-
ga una pa ida un i al que onde su mismo ni el de habilidad pa a log a una pa ida
equilib ada pa a ambos jugado es.
Pa a man ene el ni el de pun uación co ec o de cada jugado , el sis ema ecoge á in o -
mación ace ca de la ac uación de los jugado es du an e las pa idas y lo emplea á pa a
ac ualiza su pun uación y es ablece mediciones p ecisas de su habilidad en base a sus
esul ados.
Palab as cla e
Videojuego, Videojuego Mul ijugado , Empa ejamien o de jugado es, Ma chmaking, Mul-
ijugado compe i i o
Abs ac
Ma chmaking sys em o a mul iplaye ideo game
One o he equen p oblems in ne wo ked mul iplaye ideo games is he gene a ion o
’balanced’ games whe e all playe s ha e un and can enjoy a challenge ha sui s hei skill
le el. While in o line games he challenge is s anda dised and is he same o e e y playe
as i is se by he designe s hemsel es, in an online game achie ing his goal is achie ed
by ma ching playe s wi h he same skills. The ma chmaking sys ems a e esponsible o
gene a ing playe pai ings wi h his concep o balance in mind.
The aim o his p ojec is he design and implemen a ion o a ma chmaking sys em
which will be applied o a shoo e ideogame, which will ea u e online mul iplaye , 2D
pe spec i e and di e en cha ac e s and weapons.
This sys em will be in cha ge o assigning a sco e le el o each playe based on hei skill
and upda ing i acco ding o hei esul s in he games, as well as assigning each playe
in e es ed in playing a game an opponen wi h he same skill le el in o de o achie e a
balanced game o bo h use s.
In o de o main ain he co ec a ing le el o each playe , he sys em will collec
in o ma ion abou he playe pe o mance du ing games and will use i o upda e he
a ing and es ablish accu a e measu es o he skill based on he esul s.
Keywo ds
Videogame, Mul iplaye ideogame, Playe pai ing, Ma chmaking, Compe i i e mul ipla-
ye
ii

Capí ulo 1
In oducción
1.1. Mo i ación
En los úl imos años, el o ma o de ideojuego mul ijugado en línea ha enido un impo -
an e auge y muchos juegos se han adap ado pa a o ece es a expe iencia de juego en
la que los usua ios puedan medi sus habilidades con a o os jugado es. Pa a log a la
mejo expe iencia y consegui cau i a a los jugado es, a lo la go de los años se han ido
diseñando, mejo ando o eimplemen ando dis in os sis emas de empa ejamien o (c ea-
ción de pa ejas) y clasi icación (clasi icación de jugado es) an o en juegos adicionales
[1, 2, 3, 4] como en ideojuegos mul ijugado en línea [5, 6, 7, 8, 9, 10, 11, 12].
Uno de los p incipales desa íos a la ho a de log a una compe ición que esul e ag adable
y di e ida pa a los usua ios es c ea sis emas de empa ejamien o y clasi icación que les
pe mi an en en a se a usua ios de su ni el, o eciéndoles así un e o adecuado pa a sus
capacidades.
Debido a es o, se han ealizado nume osos es udios (de allados en la sección 2 Es ado
Del A e) y plan eamien os de posibles sis emas de ma chmaking (c eación de pa ejas)
asociado a los ideojuegos mul ijugado , especialmen e en aquellos con modos de juego
compe i i os. La mayo ía de es os se han cons i uido bajo la p emisa de que cada jugado
posee una habilidad de e minada que es ep esen ada po un alo numé ico, o a ing,
y es asignada po un sis ema de clasi icación. Es e alo es ambién conocido de o ma
coloquial como “Elo”, nomb e que e e encia el sis ema de clasi icación Elo, o iginalmen-
e desa ollado pa a se aplicado al ajed ez y que ue implemen ándose en di e en es
ideojuegos como una o ma sencilla de empa eja jugado es en línea. Poco a poco, se
han ido implemen ando nue os sis emas de i ados de es e mé odo inicial usado pa a el
empa ejamien o en el ajed ez.
Es os sis emas ienen como obje i o es ablece una medición de las ap i udes de los usua-
ios eniendo en cuen a di e en es ac o es (como esul ados inales, compo amien os y
mo imien os ealizados du an e la compe ición, e cé e a). Es os ac o es después pe mi-
en jun a aquellos jugado es cuyas cualidades sean mejo es den o del ámbi o de un
ideojuego o depo e en conc e o.
Exis en di e sas iloso ías de diseño que o ecen múl iples opciones de ca a a desa olla
sis emas de empa ejamien o, odos de i ados de los o iginales del ajed ez. Muchos de ellos
5
G ado en Desa ollo de Videojuegos Facul ad de In o má ica
usan el sis ema clásico de Elo p e iamen e mencionado, y lo amplían o modi ican pa a
ob ene una medición más ce e a de la pun uación y un empa ejamien o más luido y
p eciso. El p oblema es que en muchos casos es as implemen aciones son poco accesibles,
bien sea po al a de código abie o que sea ácil de eu iliza , o bien po la p opia comple-
jidad de es e campo. Así pues, lo que buscamos es c ea nues a p opia implemen ación
que incluya sus p opios sis ema de empa ejamien o y un sis ema de clasi icación.
1.2. Obje i os
El obje i o del p oyec o es diseña y desa olla un sis ema de ma chmaking aplicable a
un juego mul ijugado en línea. El sis ema unciona á median e un se ido que end á
acceso a una base de da os de usua ios y emplea á la in o mación de cada uno de ellos
pa a decidi los empa ejamien os. Apa e, debe á pode ac ualiza la pun uación de cada
uno de ellos de acue do a su ac uación en pa idas p e ias.
Pa a diseña el sis ema de ma chmaking, se ealiza á un es udio de los sis emas ya exis-
en es y en uso pa a pa i de una base es able. También se es udia án mé odos de
clasi icación de jugado es, un componen e impo an e a la ho a de empa eja los.
De la misma mane a, se elabo a á un ideojuego mul ijugado online pa a p oba es e
sis ema de empa ejamien o, además de hace las eces de caso de uso pa a odas las
p uebas co espondien es. Se ealiza án una se ie de p uebas con jugado es usando es e
juego, con el in de de e mina el endimien o y la calidad de nues o sis ema.
Como me a adicional, que emos diseña es e sis ema de o ma que pueda se implemen a-
do y adap ado a cualquie ipo de ideojuego en línea, de mane a que pueda se eu ilizado
en el u u o po cualquie usua io.
1.3. Plan de abajo
Pa a el desa ollo de es e abajo se emplea á a ni el in e no, con cie as libe ades,
la me odología ágil de desa ollo Sc um, di idiendo el abajo a ealiza en di e en es
his o ias de usua io pa a epa i las en unción de la disponibilidad, la capacidad y el
conocimien o en el á ea.
Pa a el seguimien o del p og eso en el desa ollo end emos euniones semanales pa a
i adap ando nues as a eas e i es ableciendo nue as me as. Ya hemos empleado es a
me odología de abajo en múl iples asigna u as (como son Me odologías Ágiles de P o-
ducción, así como P oyec o en odos los años) con esul ados sa is ac o ios pa a odas las
pa es, haciendo noso os mismos de clien es de ca a al es o del equipo.
Las euniones con los u o es se u iliza án pa a es ablece los di e en es ni eles de p io i-
dad pa a las p óximas a eas a ealiza , así como pa a esol e di e en es dudas y consul as
de co e más écnico.
P ime amen e, in es iga emos di e en es sis emas de ma chmaking empleados en o os
ideojuegos pa a es ablece los como ejemplo a la ho a de implemen a el nues o. Pos e-
io men e, se i á diseñando la a qui ec u a más básica de es e sis ema de ma chmaking,
eniendo en cuen a las es icciones que debamos aplica según el oco del mismo. Y
una ez diseñada, implemen a emos es a a qui ec u a y ealiza emos la conexión en e
6
Ma chmaking sys em o a mul iplaye ideo game UCM
clien es y se ido . Así mismo, p oba emos la implemen ación en busca de e o es, simu-
lando conexiones desde clien es y obse ando que se ealicen odos los pasos de o ma
co ec a.
Po úl imo, aunque es ic amen e elacionada pe o sin se el oco p incipal del abajo,
se lle a á a cabo el desa ollo del ideojuego que emplea emos como caso de uso, pa a
ene unas bases sob e las que p oba el sis ema de ma chmaking. Realiza emos p uebas
con usua ios eales empleando es e caso de uso, dejando que jueguen de o ma lib e pa a
es udia el endimien o del sis ema y los da os ecogidos de es os jugado es.
1.4. Es uc u a de la memo ia
En el capí ulo 2 Es ado Del A e se de alla la in es igación de sis emas de ma chmaking
y las conclusiones ex aídas, además de nues as decisiones en cuan o a qué sis emas usa
de e e encia o implemen a . El diseño de nues o sis ema se encuen a en el capí ulo 3
Diseño del sis ema de ma chmaking. Po o o lado, el capí ulo 4 Implemen ación de alla
la implemen ación de es e sis ema, y su ase de p uebas.
El documen o de diseño del juego que empleamos como caso de uso se encuen a en
el capí ulo 5 Caso de es udio, y las p uebas con usua ios en el capí ulo 6 P ueba con
usua ios.
URLs de los eposi o ios empleados pa a es e abajo:
Reposi o io gene al, con el es o incluidos como submódulos:
• h ps://gi hub.com/Ho acioS udios/TFG
Se ido de Ma chmaking:
• h ps://gi hub.com/Ho acioS udios/Ma chmaking-Se e
Sis ema de ac ualización de pun uaciones:
• h ps://gi hub.com/Ho acioS udios/Ranking-Upda e
Con olado de se ido es de juego:
• h ps://gi hub.com/Ho acioS udios/Con olSe ido esTeFeGe
Caso de uso:
• h ps://gi hub.com/Ho acioS udios/TeFeGe
Lib e ía de comunicación en e juego y se ido :
• h ps://gi hub.com/Ho acioS udios/Clien Communica ion
Conexión con la base de da os:
• h ps://gi hub.com/Ho acioS udios/MongoJS
7
Capí ulo 2
Es ado Del A e
El auge de los ideojuegos mul ijugado en línea con modos compe i i os ha gene ado
in e és en diseña mé odos pa a empa eja jugado es en e sí. Po es o mismo, nues a
in es igación ace ca de es e ema comienza p incipalmen e po el análisis de di e en es
modelos ya exis en es y en uso, es udia sus ca ac e ís icas y bene icios y, sob e odo,
en ende su uncionamien o y cómo emplea los co ec amen e.
Así pues, en es e capí ulo de alla emos los esul ados de nues o p oceso de in es igación:
habla emos del concep o de ma chmaking y los ipos que hay, los dis in os sis emas que
hemos encon ado y que ya se emplean en di e sos ámbi os ( an o compe iciones ísicas
como ideojuegos en línea) y conclui emos con nues a decisión inal ace ca de qué modelo
o sis ema emplea emos en nues o abajo.
2.1. Ma chmaking: Qué es y qué o ma os exis en
El ma chmaking, o empa ejamien o en español, es un p oceso po el cual se ag upan juga-
do es con habilidad simila en juegos compe i i os empleando un sis ema de clasi icación
que de e mine de o ma numé ica es a habilidad. En el con ex o de ideojuegos mul ijuga-
do en línea, se necesi a además una in aes uc u a que se enca gue de ecibi pe iciones
de jugado es y empa eja los en e sí según es as clasi icaciones. De es a mane a, se pueden
de ini dos componen es en odo es e p oceso: el sis ema de clasi icación, que de e mina-
á es os alo es numé icos (pun uaciones) que e lejen la habilidad de un jugado , y el
sis ema de ma chmaking, que empa eja á jugado es según es os alo es.
Pa a diseña odo es e p oceso, p ime o se debe empeza con la búsqueda de in o mación
ace ca de la implemen ación del empa ejamien o en a ios con ex os, sean ideojuegos u
o os depo es clásicos que u ilicen sis emas simila es.
El ajed ez ue el ámbi o en el que comenza on es e ipo de in es igaciones. Al se un juego
muy an iguo, las ede aciones se o ma on mucho an es que en o os casos, así como las
compe iciones. Con ellas, su gió la necesidad de empa eja jugado es según su ni el de
habilidad. Algunos mé odos empleados pa a de e mina es e aspec o incluyen el Sis ema
de Ha kness [1], el Sis ema de la Fede ación Inglesa de Ajed ez [4] o, el es ánda hoy en
día, el Sis ema Elo [3].
Comenzando po los sis emas de clasi icación, es os se basan en asigna un alo numé ico
9

G ado en Desa ollo de Videojuegos Facul ad de In o má ica
po de ec o a odo jugado ecién llegado. Es e alo inc emen a á o disminui á en unción
del esul ado de las pa idas jugadas pos e io men e y el alo numé ico de los oponen es,
ep esen ando así su habilidad. Es e cálculo ambién puede inclui más ac o es y se así
más complejo, pe o odos los sis emas compa en es a base.
Empleando es as clasi icaciones se pe mi i á a los jugado es en en a se en e sí en unción
de los empa ejamien os que se p oduzcan y según el sis ema de clasi icación, bien as
cada pa ida o bien as un pe iodo de iempo, se ac ualiza á la alo ación de es os
jugado es según los esul ados y el sis ema.
Los sis emas de empa ejamien o emplean el ni el de los jugado es asignado po los sis e-
mas de clasi icación pa a de e mina los en en amien os, y debe e ina se con el obje i o
de que las pa idas sean sa is ac o ias pa a ambas pa es. Así pues, ambos sis emas es-
án es echamen e elacionados. La o ma de ajus a las pun uaciones de los jugado es
debe se cohe en e pa a que ealmen e mida la habilidad de cada usua io, y así se ú il
pa a empa ejamien os u u os. De la misma mane a, la o ma en la que se ealicen los
empa ejamien os debe se azonable en unción de las pun uaciones, y “p edeci ” cómo
de desequilib adas se án las pa idas.
Según su en oque, podemos de ini dos ipos gene ales de sis emas de empa ejamien-
o:
Sis emas que ecomiendan pa idas. Es os p ime o c ean una pa ida pa a
un jugado , y se le asigna un ni el de habilidad medio. Después, se asigna es a
pa ida a o os jugado es cuyo ni el sea simila , y se uel e a calcula el ni el
medio de la pa ida. Es e sis ema es adecuado pa a ideojuegos mul ijugado en los
que pa icipan más de 2 jugado es.
Sis emas que ecomiendan jugado es. Es os se cen an en la búsqueda de
jugado es de un ni el simila al del usua io que desea juga , pudiéndose adap a a
sis emas de empa ejamien o an o pa a pa idas con dos jugado es, como aquellas
con un núme o mayo .
La di e encia adica en el hecho de que el p ime ipo solo se aplica a pa idas dinámicas,
en las cuales se puedan inco po a y sali jugado es du an e su anscu so, mien as que el
segundo ipo se aplica a pa idas es á icas, que solo comiencen al encon a se su icien es
jugado es y no pe mi an que se inco po en más. También exis en sis emas híb idos, que
aplican el segundo mé odo pe o de desconec a se un jugado , pe mi en que se inco po e
o o empleando el p ime mé odo.
En la sección siguien e se de allan algunos de los sis emas de clasi icaciones más habi ua-
les, an o en ideojuegos como en juegos clásicos.
2.2. Sis emas de clasi icación
A la ho a de implemen a un sis ema de empa ejamien o, el p ime paso es selecciona
el sis ema de cali icación. No exis e uno pe ec o, ya que cada uno o ece cualidades
dis in as: simplicidad, p ecisión, lexibilidad, e cé e a. Así pues, a la ho a de elegi lo
con iene p ime o de ini qué equisi os se ienen. El p incipal equisi o que amos a
aplica se á ene de pa idas de 2 jugado es, uno con a uno.
10
Ma chmaking sys em o a mul iplaye ideo game UCM
A con inuación se de allan los 4 sis emas que conside amos más aplicables a nues o
p oyec o.
2.2.1. Elo
El sis ema de Elo ue in en ado po A pad Elo [3] en la década de los 60, y su gió pa a
c ea un sis ema que pe mi ie a medi la habilidad de los jugado es de ajed ez, pa a
así pode empa eja los y clasi ica los según dicha pun uación, la cual pod ían adqui i
pa icipando en compe iciones.
Es e modelo se man iene hoy en día en los o neos de ajed ez y es usado pa a los empa e-
jamien os en las p ime as ases de la compe ición, e i ando empa eja a los jugado es con
mayo es pun uaciones en las ondas iniciales, ya que es os son los que más posibilidades
ienen de gana el o neo. La clasi icación po pun uación de los jugado es ambién se
u iliza pa a es ingi el acceso a cie os o neos y pode c ea compe iciones de jugado es
de un ni el simila .
El ango de pun uación se encuen a comp endido en e 0 pun os y 3000 pun os, y a ía
a lo la go del iempo según los esul ados de las pa idas de los o neos enidos en cuen a
pa a el cálculo de la misma.
Elo se undamen a en la idea de que cada jugado posee una habilidad de e minada po un
alo numé ico, y es e alo se ac ualiza as cada pa ida eniendo en cuen a el esul ado
de es a, además de una p edicción p e ia del esul ado.
Pa a es e p oceso, el modelo usa un sis ema de p edicción (ecuación 2.1) que pe mi e
iden i ica aquel jugado con más p obabilidades de ic o ia en la pa ida.
La p obabilidad de ic o ia 𝐸𝑎de un jugado 𝑎se calcula con la ó mula 2.1, que desc ibe
una unción sigmoide como apa ece en la igu a 2.1
𝐸𝑎=1
1+10−(𝑅𝑎−𝑅𝑏)/400 (2.1)
Donde:
𝑅𝑎 ep esen a la pun uación del jugado a.
𝑅𝑏 ep esen a la pun uación del jugado b.
El cálculo de la p obabilidad de ic o ia del jugado 𝑏se calcula de o ma equi alen-
e.
Elo solo con empla 3 posibles esul ados a la ho a de da po inalizada una pa ida:
ic o ia, empa e y de o a, cada una de ellas ep esen ada po los alo es 1, 0,5 y 0,
espec i amen e.
Pa a la ac ualización de las pun uaciones de los usua ios, el sis ema emplea las p ediccio-
nes ealizadas y los esul ados de cada pa ida pa a halla el nue o alo de medición de
la habilidad de los jugado es (ecuación 2.2). Se emplea la p edicción pa a ene en cuen a
la di e encia de habilidad en e jugado es: si el jugado con más p obabilidad de gana se
hace con la ic o ia, ob end á una can idad de pun os meno que en el caso de halla se
en des en aja, y ice e sa.
11
G ado en Desa ollo de Videojuegos Facul ad de In o má ica
00-2500-2500 25002500
-0.2-0.2
-0.1-0.1
0.10.1
0.20.2
0.30.3
0.40.4
0.50.5
0.60.6
0.70.7
0.80.8
0.90.9
11
1.11.1
1.21.2
(Ra - Rb)(Ra - Rb)
EE
Figu a 2.1: Función sigmoide desc i a po la ó mula 2.1 El eje 𝑦 ep esen a la p edicción
en e 0 y 1, y el eje 𝑥 ep esen a la di e encia de pun uaciones en e los jugado es 𝑎y𝑏
Pa a calcula la pun uación nue a del jugado 𝑎, ep esen ada como 𝑅′𝑎, se u iliza la
ó mula:
𝑅′𝑎=𝑅𝑎+𝐾(𝑆𝑎−𝐸𝑎)(2.2)
Donde:
𝑅𝑎 ep esen a la pun uación p e ia a las pa idas.
𝐾, conocido como “K- ac o ”, es una cons an e que con ola el máximo ajus e que
puede ene una pa ida. En el ámbi o del ajed ez, se suele emplea un alo de
𝐾 =16pa a maes os y 𝐾 =32pa a p incipian es. Cuan o mayo sea el alo ,
mayo se á el cambio de pun uación as una ac ualización. Se op a po un alo
supe io pa a p incipian es al no conoce se su alo eal.
𝑆𝑎 ep esen a el esul ados de la pa ida.
𝐸𝑎 ep esen a la p obabilidad de ic o ia de la pa ida, que ue on es imadas p e-
iamen e.
Elo es un sis ema o almen e es ablecido y ácilmen e aplicable a ideojuegos en línea
pe o se encuen a ac ualmen e en desuso en es e ámbi o. Es o se debe a que exis en
sis emas pa a ealiza empa ejamien os indi iduales que amplían o mejo an Elo, o que
se ajus an mejo al ámbi o de los ideojuegos, además de que es un sis ema di ícilmen e
aplicable a juegos que in oluc en más con incan es.
De es a mane a, el sis ema Elo queda p incipalmen e elegado a simulado es de ajed ez,
como Lichess [13], aunque es os suelen complemen a lo con o os sis emas. Un ejemplo
de es e a ance es que í ulos como League o Legends (du an e sus inicios, has a el año
2013, pasando a un sis ema p opio que man iene en la ac ualidad [7]) u O e wa ch em-
12
Ma chmaking sys em o a mul iplaye ideo game UCM
plea on o iginalmen e sis emas de i ados de Elo, pa a pasa a sis emas p opios en la
ac ualidad.
Elo ha se ido como pun o de pa ida pa a muchos o os sis emas de clasi icación, muchos
de los cuales lo emplean como base.
2.2.2. Glicko
El sis ema Glicko ue in en ado po Ma k E. Glickman [14] de la uni e sidad de Bos on
pa a a a de mejo a el sis ema Elo.
La p incipal de iciencia que Glickman había de ec ado e a que el sis ema Elo no e a
lo su icien emen e p eciso a la ho a de medi las habilidades de un jugado . Po ejem-
plo, hab ía cie a imp ecisión en el caso de que un jugado lle ase iempo sin juga ya
que su habilidad pod ía habe cambiado, y po an o su pun uación no e leja ía es e
cambio.
Pa a compensa es e p oblema de iabilidad, Glicko implemen a el concep o de a ings
de ia ion (𝑅𝐷), o des iación de pun uación en español, que mide la ince idumb e del
alo de habilidad asignado a un usua io. Es a des iación se á más al a cuan o más
iempo lle e un jugado sin compe i o, en el caso de jugado es nue os cuan o meno sea
el núme o de pa idas en las que haya pa icipado. Glicko ecomienda que a los jugado es
nue os se les asigne como alo es po de ec o una pun uación de 1500y la des iación
máxima posible, que ecomienda como 350.
En el sis ema Glicko an o la pun uación como la des iación se ac ualizan según el e-
sul ado de una pa ida, pe o la des iación de pun uación se modi ica además según el
pe iodo de iempo que el jugado lle e sin egis a una pa ida.
Pa a lle a a cabo el cálculo de pun uación, el sis ema Glicko ag upa las pa idas en un
pe iodo de pun uación y ac ualiza la pun uación y des iación de odos los jugado es de
o ma simul ánea. Un pe iodo de pun uación puede se un lapso de iempo de du ación
a iable, pudiendo du a desde un minu o has a a ios meses. Glicko iene un uncio-
namien o más p eciso cuando el núme o de pa idas en e cada pe iodo de iempo es
mode ado, y se ecomienda una media de 5-10 pa idas po pe iodo.
El cálculo de la nue a pun uación se ealiza en es pasos, cálculo empo al de des iación,
cálculo de pun uación y cálculo de des iación inal, los cuales se desc iben a con inua-
ción.
Cálculo empo al de des iación
P ime o se ealiza un cálculo inicial de la des iación de pun uación (𝑅𝐷), en la cual se
sob es ima pa a ene en cuen a una mayo ince idumb e desde la úl ima ac ualización
(ecuación 2.3):
𝑅𝐷=mín (√𝑅𝐷02+𝑐2𝑡,350) (2.3)
350 es el alo de des iación de pun uación inicial asignado po de ec o a un nue o
jugado .
13
G ado en Desa ollo de Videojuegos Facul ad de In o má ica
Pun os de en ada / salida al sis ema
Comp obaciones
P ocesos
Almacenamien o de da os
Jugado es buscando
pa ida
Pa ida
His o ial de pa idas
Ac ualización de
pun uaciones
Búsqueda de pa ejaLis a de espe a ¿Se ha
encon ado?
Sí
No
Figu a 3.1: Esquema de la a qui ec u a de un sis ema de ma chmaking, basado en el
desc i o en “Da a Analy ics Applica ions in Gaming and En e ainmen ”[19]
[21], eníamos que ene en cuen a cie as conside aciones a la ho a de diseña an o el
sis ema como el juego a emplea como caso de p ueba, pa a e i a odas las complicaciones
posibles [22]. Po úl imo, eníamos que ene en cuen a el e ec o que puede llega a ene el
ma chmaking sob e el es ado del jugado [23] en casos ex emos: po ejemplo, ene poca
gen e en la lis a de espe a puede de i a en iempos de espe a in ini os en caso de op a
po un empa ejamien o lo más igualado posible, o bien en pa idas muy desigualadas en
caso de op a po minimiza los iempos pa a encon a pa ida.
3.2. P oceso de ma chmaking
En sí mismo, el p oceso de ma chmaking es ela i amen e simple. Funciona ealizando
pe iciones a un se ido asínc ono, lo que signi ica que cuando un jugado hace una
pe ición su conexión no se deja en espe a, sino que se le con es a inmedia amen e con la
in o mación disponible y solo se ac ualiza de ecibi se una nue a pe ición.
Se puede e desde dos pun os de is a. Desde la pe spec i a del jugado , el p oceso se
compone de los siguien es pasos ( igu a 3.2):
1. El jugado ealiza una pe ición de búsqueda de i al, en iando su iden i icado de
usua io y el iempo que lle a espe ando.
2. Se ecibe una espues a a la pe ición.
3. Si la pe ición in o ma de que no se ha encon ado i al, se espe a un iempo, se
aumen a el iempo de espe a y se uel e al paso 1.
4. Si se ha encon ado i al, pueden da se dos casos:
a) La pe ición in o ma de que el i al no ha sido empa ejado de uel a, o lo que
es lo mismo, que solo ha habido un empa ejamien o pa cial. En es e caso, se
espe a un iempo y uel e al paso 1 sin aumen a el iempo de espe a. Es e
paso se ealiza pa a e i ica que el empa ejamien o es álido.
b) La pe ición in o ma de que el i al ha sido empa ejado, o lo que es lo mismo,
20

Ma chmaking sys em o a mul iplaye ideo game UCM
que se han empa ejado mu uamen e. En es e caso se ealiza una pe ición pa a
se eliminado de la lis a de espe a, y se p ocede a la sala de pa ida (o lo que
se desee, según la implemen ación del juego). Es e paso se ealiza en el clien e
pa a asegu a que ambos jugado es han a anzado a la pa ida co ec amen e
an es de elimina los de es a lis a.
Pun os de en ada / salida al sis ema
Comp obaciones
P ocesos
Se ido es
Se ido
Ma chmaking
Lobby Pe ición de búsqueda
de i al Respues a
¿Se ha encon ado i al?
No
¿El i al me ha
encon ado?
Sí
No
Sí
Aumen a iempo de
espe a
Pa ida
Pe ición de se
eliminado de la lis a
de espe a
Figu a 3.2: Esquema del p oceso de ma chmaking is o po el clien e. Se ealizan dos
comp obaciones: si le ha encon ado i al y si el i al ha sido empa ejado con él. Las
lechas bidi eccionales ep esen an espues as que no necesi an p ocesado.
Y desde el pun o de is a del se ido , como se de alla en la igu a 3.3, el p oceso consis e
en:
1. El se ido ecibe una pe ición de empa ejamien o con un iden i icado de usua io
y un iempo de espe a.
2. Si el iden i icado de usua io no es á en la lis a de espe a, se añade. Si es á, se
ac ualiza la in o mación y el ma cado empo al ( imes amp) de úl ima pe ición,
con al de que no se elimine de la lis a de espe a po inacción (paso 3).
3. Se e isa la lis a de espe a, y odos los usua ios que lle en sin ealiza una pe ición
más de X segundos (po de ec o se emplea án 5 segundos) se eliminan de la lis a.
4. Se comp ueba en la lis a de espe a si el iden i icado de usua io ya iene asignado
un i al. Es e paso debe ealiza se ya que el sis ema es asínc ono.
Si no lo iene, o lo iene pe o ya no es á en la lis a de espe a, se ealiza el
empa ejamien o según el mé odo que se desee emplea . El iempo de espe a
debe ía emplea se pa a amplia el ango de búsqueda.
5. Cuando se encuen a un oponen e, se le asigna el usua io como i al. Es o si e pa a
que cuando el oponen e haga una pe ición, pueda sabe que ya ha sido empa ejado
21
G ado en Desa ollo de Videojuegos Facul ad de In o má ica
pa cialmen e con o o usua io. En caso de que el usua io u ie a además asignado
a dicho oponen e, se conside a que se han empa ejado mu uamen e.
6. Se en ía una espues a a isando de si se ha encon ado un i al, y de si es án
empa ejados mu uamen e.
Pun os de en ada / salida al sis ema
Comp obaciones
P ocesos
Se ido es
¿Es á el jugado en la
lis a de espe a?
Limpia usua ios en
espe a que lle en sin
ealiza pe ición X
segundos
Añadi lo a la lis a de
espe a
Ac ualiza lo en la lis a
de espe a
No
Sí
¿Es e usua io iene
asignado ya un i al?
Ac ualiza i al en la
lis a de espe a
Sí
No
Realiza
empa ejamien o
según el sis ema
empleado
¿El i al sigue en
la lis a de espe a?
No
En ío de espues a
Pe ición de
búsqueda de i al
Sí
Figu a 3.3: Esquema del p oceso de ma chmaking is o po el se ido
3.3. Ac ualización de pun uaciones
La ac ualización de pun uaciones depende del sis ema de clasi icación no solo en los
cálculos, sino ambién a la ho a de decidi cuándo ealiza la. En el caso de Glicko, se
ecomienda ac ualiza las pun uaciones cada 5 días, eniendo en cuen a las pa idas juga-
das du an e dicho pe iodo y simulando que odas han enido luga en el mismo ins an e.
Es a can idad es el esul ado de calcula el iempo necesa io pa a ealiza 10 pa idas
comple as, con cie o iempo añadido. Así pues, es e alo debe ía modi ica se según el
juego y la du ación media de sus pa idas, según deseen los desa ollado es.
Las pa idas pendien es no se eliminan, sino que se gua dan en un his o ial. Así se pe mi e
e isa es e his o ial, además de pe mi i la opción de cambia o ajus a el sis ema de
clasi icación, calculando las pun uaciones en base a es e his o ial.
3.4. Cálculo de la habilidad
Pa a ealiza los cálculos de la pun uación, se necesi an los esul ados de las pa idas
jugadas. Con el in de gene aliza el o ma o de pa idas, se conside a án siemp e como
subdi ididas en ondas. Se a a án los esul ados de cada una de es as ondas de o ma
indi idual con al de man ene la es uc u a de esul ados señalada en la documen ación
de Glicko, en la que ic o ia equi ale a 1, empa e a 0,5y de o a a 0. En caso de no
ealiza pa idas di ididas po ondas, se pod á conside a que la pa ida solo ha enido
22
Ma chmaking sys em o a mul iplaye ideo game UCM
una onda. Es os alo es después se in oduci án en las ó mulas desc i as en la sección
2.2.2 Cálculo de pun uación.
A los jugado es nue os se les aplica án los alo es po de ec o ecomendados po Glicko
(sección 2.2.2): pun uación de 1500y la des iación máxima de 350.
3.4.1. Conside aciones
Apa e de los pa áme os, hay ambién una se ie de casos especiales a conside a , en caso
de que una pa ida no se pueda comple a :
El jugado se desconec a: Con al de cas iga al jugado en caso de desconexión
in encionada, se con a án es ondas como V = 0 (3 ondas pe didas), siendo el
peo caso posible.
El oponen e se desconec a: Solamen e se end án en cuen a los esul ados de las
ondas ya comple adas, y las es an es se conside a án como ic o ias. Decidimos
es a solución con al de compensa al jugado po la desconexión del con a io, pe o
a la ez eniendo en cuen a su endimien o con al de no desequilib a el sis ema
de o ma excesi a.
3.5. Conclusión
A la ho a de c ea un sis ema de ma chmaking, el diseño de su uncionamien o es la pa e
más compleja. Es o se debe a la eno me can idad de a iables y lexibilidad a la ho a de
plan ea su es uc u a, aunque se pa a de una base ya es udiada. Las decisiones de diseño
que se han omado a lo la go de es e capí ulo de ini án el mecanismo del sis ema de ca a
a su implemen ación, y se i án pa a de ini unos pasos a segui du an e el p oceso de
desa ollo.
23
Capí ulo 4
Implemen ación
En el capí ulo an e io se desc ibió el diseño del sis ema de ma chmaking. Pa a imple-
men a lo, en an en juego a ios elemen os ( igu a 4.1):
Base de da os: La base de da os en la que se almacena á el his o ial de pa idas de
los jugado es ( an o las ya p ocesadas pa a la ac ualización de la pun uación, como
las que aún es án pendien es), su pun uación y RD, c edenciales, y demás da os
que se deseen gua da sob e un jugado .
Se ido de ac ualización: Un se ido independien e que se enca ga á de ac ualiza
las pun uaciones cada pe iodo de ac ualización (en nues o caso, cada ho a).
Se ido de ma chmaking: Un se ido con dos unciones: empa eja jugado es, y
ges iona la conexión en e el clien e y la base de da os (en ia esul ados de una
pa ida, pedi in o mación de un jugado , e cé e a).
Clien e: El clien e del juego, que se conec a á al se ido y ealiza á las pe iciones
necesa ias pa a juga .
Clien e
Se ido es
Base de da os
Se ido
Ma chmaking
Base de da os
Se ido de
ac ualización
Clien e
Figu a 4.1: Esquema de se ido es
25

G ado en Desa ollo de Videojuegos Facul ad de In o má ica
A la ho a de implemen a es e diseño, lo más impo an e es man ene cada componen e
independien e del es o, de mane a que de habe algún allo no colapse odo el sis ema.
Es o pe mi e ambién modi ica lo de o ma más sencilla, de que e ajus a se dis in os
pa áme os o cálculos.
El se ido de ma chmaking se c ea á como un se icio REST, y es e se conec a á a la
base de da os median e un d i e o icial.
4.1. He amien as u ilizadas
Pa a implemen a odo, hemos hecho uso de las siguien es he amien as:
MongoDB
• Base de da os de ipo NoSQL que se u iliza pa a el almacenamien o de da os,
ela i os an o a la ges ión de cuen as como a los da os a emplea a la ho a
de ealiza los empa ejamien os.
Node.js
• En o no de ejecución mul ipla a o ma ideado pa a la c eación de se icios web,
base de odos los se ido es REST.
MongoDB Node.js D i e
• Ma co de aplicación pa a Node.JS, que pe mi e accede a la base de da os de
MongoDB.
Exp ess.js
• F amewo k pa a aplicaciones web de Node.JS, que pe mi e c ea la API REST
de los se ido es.
4.2. Se ido de ma chmaking
El se ido es á p og amado con Node.js, y la conexión se ealiza median e una API
de ipo REST. REST, o Rep esen a ional S a e T ans e , es un es ilo de a qui ec u a
so wa e c eado pa a es anda iza el desa ollo de la Wo ld Wide Web, aunque hoy en
día se emplea más pa a e e i se a APIs que ob ienen in o mación o ejecu an ope aciones
median e HTTP. De las pau as que de ine, las más impo an es son:
Emplea un conjun o de ope aciones buen de inidas. En el caso de HTTP se de inen
a ias, de las cuales cua o son las más impo an es:
• POST, que si e pa a en ia in o mación.
• GET, que si e pa a pedi in o mación.
• PUT, que si e pa a ac ualiza in o mación.
• DELETE, que si e pa a elimina in o mación.
26
Ma chmaking sys em o a mul iplaye ideo game UCM
Emplea una sin axis uni e sal pa a iden i ica los ecu sos. En el caso de un sis ema
REST se ealiza median e su URL, de o ma que solo se pueda accede al ecu so
median e es a.
Su unción p incipal es ges iona el p oceso de empa ejado de jugado es median e una
se ie de se icios, a los cuales se acceden median e endpoin s, que en el caso de REST
se a an de URLs. Es os se icios eciben y en ían in o mación median e documen os
JSON.
Tenemos es se icios p incipales: uno que ges iona las cuen as, o o que ges iona el
ma chmaking y po úl imo, uno que nos pe mi e ealiza una ges ión de e siones.
Un pun o impo an e es que es os se icios son independien es del juego, a al a de la
es icción de nues o sis ema de ma chmaking, que los juegos con engan pa idas de uno
con a uno. Es o se debe a que es os se icios nunca equie en in o mación especí ica de
la implemen ación del juego, po lo que no es necesa io modi ica las unciones pa a adap-
a lo. Incluso en el caso de en ia esul ados al inal de una pa ida, el se ido en ningún
momen o necesi a lee la in o mación con enida: se limi a a en ia la a la base de da os,
que la acep a (nue amen e) sin ninguna necesidad de accede a sus con enidos.
Aun así, es o no signi ica que pe mi a que se ges ionen a ios juegos a la ez. Es gené ico
en el sen ido de que puede aplica se a cualquie juego que se ajus e a la es icción de
pa idas uno con a uno, pe o no en el sen ido de que pe mi a ges iona múl iples juegos
dis in os en una misma ins ancia.
En es e caso, el sis ema es eu ilizable, con los pa áme os de pun uación y des iación
empleados po de ec o (según la e e encia de Glicko) que además pueden se modi icados
po el desa ollado , al se anspa en e en es e sen ido. De la misma mane a, ambién
puede modi ica se el alo del pe iodo de ac ualización pa a adap a lo a casos con pa idas
de di e en e du ación.
4.2.1. De iniciones
An es de habla de los se icios, con iene de ini a ios concep os que se emplea án a lo
la go de es a sección:
Au en icación: P oceso po el cual se alida el usua io de una pe ición sin necesidad
de en ia los c edenciales en cada pe ición. Pa a ello se emplean JSON Web Tokens,
cadenas enc ip adas que con ienen da os de un usua io (en nues o caso, su núme o
de iden i icación y su nomb e de usua io) pa a di e encia las, que se gene an po
p ime a ez al hace un inicio de sesión. Hay dos ipos de okens:
• Un au h oken, que es álido du an e un iempo limi ado (5 minu os en nues o
caso) y es el que se usa á pa a alida las pe iciones. Se ha ijado un lími e de
iempo pa a e i a que puedan eu iliza se okens de sesiones ce adas.
• Un e esh oken, que con iene la misma in o mación que el an e io , pe o no
iene lími e de iempo. Es e oken si e pa a gene a un au h oken nue o
cuando el an e io haya caducado, pe o no si e pa a alida pe iciones.
Pa áme os: Es la in o mación en iada al hace una pe ición. Es a in o mación
puede o ece se de es o mas dis in as:
27
G ado en Desa ollo de Videojuegos Facul ad de In o má ica
•Body: se en ía un obje o JSON en el cue po de la pe ición, con los pa áme os
deseados. Se emplea solo en pe iciones POST, y es el mé odo po de ec o.
•Que y: se en ía in o mación al inal de la URL. El o ma o es
“URL/?pa ame o1= alo 1¶me o2= alo 2”, donde:
∘“URL/” es la URL del se icio.
∘“?” indica el comienzo del que y.
∘“pa ame oN= alo N” indica el nomb e y alo de un pa áme o.
∘“&” sepa a dis in os pa áme os.
•Pa h: se en ía in o mación como pa e de la URL. El o ma o es
“URL/:pa ame o/RESTO”, donde:
∘“URL/” es la po ción de la URL p e ia al pa áme o.
∘“:pa ame o” indica que el alo indicado en esa sección de la URL se á
el alo del pa áme o “pa ame o”.
∘“RESTO” es la po ción de la URL pos e io al pa áme o. Puede es a
acío, o pueden inclui se más pa áme os de es e es ilo.
Respues as: Es la in o mación ecibida as hace una pe ición. Las espues as
siemp e ienen indicadas con un código de e o , y con ienen la in o mación en
su cue po (o body). Los códigos dis in os de 200se conside an e o es, y podemos
de ini dos casos que se dan siemp e po de ec o:
• Código 200: po de ec o no se ecibi á nada en el cue po de la espues a,
conside ando el código su icien e espues a. Se especi ica án los casos en los
que sí se en íe algo.
• Código dis in o de 200: se ecibe una espues a del o ma o {message: s ing},
donde message es una cadena con una explicación del e o .
También exis e una se ie de códigos de e o que se lanzan de o ma gene al desde
los se icios:
•401: en un ecu so que equie e au en icación, no se ha p opo cionado un au h
oken y po an o no ha podido au o iza se la pe ición.
•403: en un ecu so que equie e au en icación, se ha p opo cionado un au h
oken in álido y po an o no ha podido au o iza se la pe ición.
•502: la base de da os no acep a conexión.
De inidos es os concep os, damos paso a la documen ación de los se icios REST.
4.2.2. /accoun s
Es e se icio engloba odas las pe iciones elacionadas con la ges ión de cuen as (c eación,
bo ado, pe ición de da os) y sesiones (inicio y cie e de sesión), además de enca ga se
de gene a nue os au h okens y de subi los esul ados de una pa ida al his o ial de
un jugado . Mien as no se indique lo con a io es os se icios equie en au o ización, y
u iliza án la in o mación del oken pa a ealiza sus a eas.
28
Ma chmaking sys em o a mul iplaye ideo game UCM
POST /accoun s: c ea una nue a cuen a de usua io. No equie e au en icación.
•Pa áme os:
∘nick (obliga o io | s ing): nomb e de usua io.
∘email (obliga o io | s ing): e-mail del usua io.
∘passwo d (obliga o io | s ing): con aseña del usua io. Es a con aseña se
en ía de o ma segu a al aplica p e iamen e el algo i mo SHA-256, de
o ma que en la base de da os nunca se gua de como ex o plano.
•Respues as:
∘200: pe ición comple ada co ec amen e.
DELETE /accoun s: pe mi e elimina la cuen a de usua io.
•Respues as:
∘200: pe ición comple ada co ec amen e.
GET /accoun s/check-a ailabili y: pe mi e e i ica si un e-mail y/o un nomb e de
usua io p opo cionados es án en uso. No equie e au en icación.
•Pa áme os (debe p opo ciona se al menos uno):
∘nick (obliga o io* | que y | s ing): nomb e de usua io.
∘email (obliga o io* | que y | s ing): e-mail del usua io.
•Respues as:
∘200: pe ición comple ada co ec amen e.
⋄emailA ailable: indica si es á lib e el e-mail p opo cionado.
⋄nickA ailable: indica si es á lib e el nomb e de usua io p opo cionado.
POST /accoun s/sessions: e i ica las c edenciales p opo cionados y, de se álidas,
ab e una sesión (login) y gene a un au h oken y un e esh oken pa a el usua io.
No equie e au en icación.
•Pa áme os:
∘Debe p opo ciona se al menos uno:
⋄nick (obliga o io* | s ing): nomb e de usua io.
⋄email (obliga o io* | s ing): e-mail del usua io.
∘passwo d (obliga o io | s ing): con aseña ci ada del usua io.
•Respues as:
∘404: no se ha encon ado un usua io con esos c edenciales.
∘200: pe ición comple ada co ec amen e.
⋄id: id del usua io.
29
G ado en Desa ollo de Videojuegos Facul ad de In o má ica
1000 1200 1400 1600 1800 2000
0.0000
0.0005
0.0010
0.0015
0.0020
Figu a 4.2: G á ica que ep esen a las pun uaciones gene adas median e dis ibución no -
mal. El eje X ep esen a angos de pun uaciones, el eje Y ep esen a la p opo ción de
elemen os en ese ango con espec o al o al.
20 30 40 50 60 70 80 90
0.00
0.01
0.02
0.03
0.04
Figu a 4.3: G á ica que ep esen a las des iaciones gene adas median e dis ibución no -
mal. El eje X ep esen a angos de des iaciones, el eje Y ep esen a la p opo ción de
elemen os en ese ango con espec o al o al.
Figu a 4.4: Ejemplo del documen o de un jugado simulado en la base de da os.
36

Ma chmaking sys em o a mul iplaye ideo game UCM
Simulación de una pa ida
El bucle de pe iciones segui á ejecu ándose has a que dos jugado es se empa ejen mu-
uamen e, y en onces p ocede á a elimina los de la lis a de espe a y simula una pa ida
en e ambos.
El p oceso de simulación cons a de los siguien es apa ados:
Asignación de esul ados: Se calculan los esul ados pa a las es ondas que
componen un pa ida. Pa a lle a a cabo es e cálculo, p ime o se es ima la p obabi-
lidad de ic o ia de ambos jugado es a a és de la ó mula de p edicción de Glicko
(de inida ya en el es ado del a e, como se indica en la ecuación 2.7).
Es e alo ep esen a la p obabilidad de ic o ia del jugado seleccionado en e a
su oponen e, un alo decimal comp endido en e 0 y 1. Dada es a es imación, se
gene a o o alo en e 0 y 1. Si es e nue o alo es in e io al an e io se conside a
ic o ia pa a el jugado seleccionado, y si es mayo se conside a de o a.
Es e p oceso se ealiza 3 eces, uno po cada onda de la pa ida.
En ia esul ados al se ido : Se en ían los esul ados de cada uno de los
jugado es pa icipan es al se ido , almacenando en cada uno de los da os de los
jugado es un obje o que ep esen a la pa ida y que con iene los esul ados y iempo
de las es ondas, además del id del oponen e.
Desconexión alea o ia de jugado es: Pa a cada uno de los jugado es en línea
se almacena el o al de pa idas seguidas que lle a. Es o se u iliza pa a simula la
desconexión del jugado as lle a un iempo jugando, calculando la p obabilidad
de desconexión 𝑃. (ecuación 4.1)
𝑃=𝑀𝑎𝑡ℎ.𝐹𝑙𝑜𝑜𝑟(𝑀𝑎𝑡ℎ.𝑟𝑎𝑛𝑑𝑜𝑚(0,1)∗(𝑡𝑜𝑡𝑎𝑙𝑃𝑎𝑟𝑡𝑖𝑑𝑎𝑠∗10)) (4.1)
En el caso de que se dé una desconexión, se in oduce un nue o jugado a la lis a
pa a man ene el mismo núme o de jugado es ac i os du an e el p oceso de p uebas.
4.5.4. Resul ados
Una ez implemen ado el sis ema de p ueba y sol en ados los p ime os allos en é minos
de conexión, se pasó a es udia los empa ejamien os, donde se de ec a on algunos e o es
c í icos en el cálculo de los angos de los jugado es. Nue amen e se ue on a eglando es os
e o es, has a que los empa ejamien os se ealiza an de o ma sa is ac o ia. Y una ez se
comp obó que las pa ejas se ealizaban co ec amen e, se p ocedió a p oba el se ido
de ac ualización, a eglando los e o es que su gie an has a que el código se ejecu a a sin
ningún p oblema.
Se dejó la simulación sola du an e 10 minu os, gene ando ap oximadamen e 1 millón de
pa idas en e los jugado es, y después se o zó una ac ualización pa a asegu a nos que
el sis ema no enía p oblemas de ca ga. ( ig. 4.5)
El esul ado, pues, ue e i ica que el sis ema uncionaba co ec amen e. Nos dimos
cuen a de que hacía al a ees uc u a los se icios de empa ejado (4.2.3 /ma chmaking),
37
G ado en Desa ollo de Videojuegos Facul ad de In o má ica
Figu a 4.5: Ejemplo de la ac ualización de un jugado . T as es de o as, se puede ob-
se a la pun uación disminuyendo, y al se su p ime a ac ualización ambién disminuye
su des iación.
38
Ma chmaking sys em o a mul iplaye ideo game UCM
además de cambia el o ma o de gua dado de pa idas. Todos es os cambios ya es án
e lejados en la memo ia.
4.6. Conclusión
Con es o queda comple ada la implemen ación del sis ema de ma chmaking, con odas
sus pa es. También se ha p obado su co ec o uncionamien o median e una simulación,
pe mi iendo encon a y sol en a e o es de uncionamien o. Así pues, se puede p oce-
de al siguien e paso, c ea un caso de es udio median e el cual se pueda p oba es a
implemen ación en un en o no con jugado es eales.
39
Capí ulo 5
Caso de es udio
El sis ema de ma chmaking equie e de un ideojuego sob e el que aplica se, po eso mis-
mo, es e p oyec o incluye el desa ollo de un pequeño ideojuego mul ijugado sob e el que
se pone a p ueba el empa ejamien o y la ac ualización de pun os de los jugado es.
Figu a 5.1: Logo del juego TeFeGe
TeFeGe se a a de un juego de géne o win-s ick shoo e mul ijugado con pe spec i a
en is a ceni al.
Twin S ick: El juego se con ola con un joys ick pa a mo e se y o o pa a apun a
(en caso de usa mando), o las eclas W/A/S/D pa a mo e se y el a ón pa a
apun a (en caso de emplea eclado y a ón)
Shoo e : La jugabilidad se cen a en el uso de a mas que dispa an a la ho a de
a aca al oponen e.
Cada pa ida cons a á de 3 ondas di e en es, en las que 2 jugado es se en en a án en
41

G ado en Desa ollo de Videojuegos Facul ad de In o má ica
un mapa de educido amaño (pa a o za el en en amien o di ec o en e ambos) en e
sí a lo la go de los 45 segundos que du a cada onda, con el obje i o de elimina al i al
ago ando sus pun os de ida, u ilizando el a ma y habilidad del pe sonaje u ilizado. En
caso de alcanza el lími e de iempo, se a a á como un empa e.
Es e aspec o se elaciona di ec amen e con el p opio sis ema de ma chmaking, an o en
la cuan i icación del esul ado de la pa ida como en el iempo de ac ualización que
ija emos.
Conside ando que las ondas du an 45 segundos como máximo, y cada pa ida consis e
de 3 ondas, las 10 pa idas ecomendadas po pe iodo de ac ualización en un juego
como el nues o equi ald ían (ap oximadamen e) a 30 minu os. Es os 30 minu os son,
po supues o, asumiendo una can idad pu amen e ma emá ica, po lo que op amos po
amplia lo a 1 ho a de espe a en e ac ualizaciones.
De mane a p e ia a comenza la pa ida se pasa á po un menú de selección de pe sonajes
en el que cada jugado elegi á su a a a pa a la pa ida. Con el in de di e si ica el juego y
o ece expe iencias di e en es, cada pe sonaje cuen a con un a ma y habilidad di e en e,
que pueden da luga a dis in as es a egias y es ilos de juego.
El esul ado de es as ondas se emplea á pa a ac ualiza el his o ial de pa idas de cada
jugado , además de ob ene da os pa a el p opio sis ema de ma chmaking (el cual es
obje i o p incipal del abajo). Es po es o que, en ez de es ablece la condición de
ic o ia de la pa ida al mejo de 3 (o lo que es lo mismo, con 2 ic o ias se pod ía da
un ganado ), se obliga a comple a las 3 ondas con el in de pode ob ene más da os de
la misma, y pode log a un sis ema de ma chmaking más comple o y ajus ado de ca a a
u u os empa ejamien o, el cual se ealiza en base a la pun uación de cada usua io an es
de cada pa ida.
Desde el pun o de is a del usua io, pod ía desc ibi se es e p oceso en los siguien es
pasos:
1 Al ejecu a el juego, se p esen a el menú p incipal donde el usua io puede escoge
en e múl iples opciones, en e ellas “Juga ”, que pe mi e accede al lobby mul iju-
gado .
2 Den o del lobby, el usua io escoge á el pe sonaje a emplea en las pa idas. Una
ez seleccionado, espe a á a ecibi un oponen e del se ido de ma chmaking.
3 T as habe encon ado un oponen e, se inicia la pa ida. Es a se compone de 3
ondas de 45 segundos como máximo. El jugado debe a a de elimina al oponen e
haciendo uso de las habilidades y a mas del pe sonaje escogido.
Cuando uno de los jugado es e su ida educida a 0 o el iempo e mina, inaliza
la onda. La onda se á conside ada ganada po aquel jugado que haya conseguido
de o a al con incan e o, en caso de e mina se el iempo, esul a á en un empa e.
Se ealiza án las es ondas independien emen e del ganado o al, con al de e-
copila da os pa a el ma chmaking. Así, en caso de pe de solamen e 2 de las 3
ondas, se end á en cuen a.
4 T as inaliza la pa ida, el jugado pasa á a la pan alla de esul ados donde pod á
e los de alles de la misma. Desde aquí, el usua io pod á eg esa al menú p incipal
42
Ma chmaking sys em o a mul iplaye ideo game UCM
o pod á decidi juga de nue o una pa ida con el mismo pe sonaje o eg esa a la
pan alla de selección de pe sonaje pa a cambia lo.
5.1. Es udio de me cado
Pa a conoce el público obje i o al que o ien a el ideojuego de ca a a busca usua ios
pa a las p uebas, se han elabo ado una se ie de encues as que de allen las p e e encias
de los po enciales jugado es.
El es udio se ha ealizado an o en español como en inglés, ob eniendo un o al de 207 y
9 espues as espec i amen e. Es as encues as se di undie on po edes sociales y g upos
de gen e a icionada a los ideojuegos. Dada la poca can idad de espues as en inglés, se
ha decidido o ien a el desa ollo p incipalmen e pa a el in e és de los usua ios españo-
les.
La encues a debía p oba nues o alcance, así como ecaba in o mación ace ca del ipo
de público y su in e és o a ición po los ideojuegos ( ig. 5.2), de alles necesa ios pa a
u iliza como e e encia a la ho a de es ablece el núme o y du ación de las ondas.
Figu a 5.2: El obje i o de es a p egun a e a de e mina el in e és del público alcanzado.
También e a necesa io ob ene in o mación ace ca de la pla a o ma de desa ollo sob e
la que se iba a plan ea el p oyec o. La in o mación ob enida de la encues a mues a
una cla a o ien ación hacia el uso de PC como pla a o ma dis ibuyéndolo median e un
ins alado . ( ig 5.3)
De mane a complemen a ia, se decidió conoce qué epe cusión end ía una posible elec-
ción de o as pla a o mas de desa ollo como elé onos mó iles ( ig. 5.4) o na egado es web
( ig. 5.5), pa a ene e e encias ace ca del posible impac o de un cambio de pla a o ma
du an e el desa ollo o el u u o del ideojuego.
Po úl imo, y an icipando que PC segu amen e se ía la pla a o ma elegida, se necesi aba
in o mación ace ca de los con oles p e e idos po los usua ios po cues iones de diseño
como de equilib ado ( ig. 5.6). Dados los esul ados, se ha conside ado que ambas opciones
debe ían es a disponibles p esen es en el ideojuego.
43
G ado en Desa ollo de Videojuegos Facul ad de In o má ica
Figu a 5.3: En es a p egun a pedimos a los encues ados que o dena an es pla a o mas
según su p e e encia: And oid, Web y PC.
Figu a 5.4: F en e a la posibilidad de plan ea un desa ollo pa a And oid, e a necesa io
conoce cómo de impo an e se ía subi el juego a la Google Play S o e.
Figu a 5.5: En caso de plan ea un desa ollo pa a Web, es necesa io conoce la ecuencia
con la que juga án los usua ios.
44
Ma chmaking sys em o a mul iplaye ideo game UCM
Figu a 5.6: Es a p egun a in o ma sob e el mé odo de con ol p e e ido po el público.
5.2. Inspi aciones
A la ho a de
Nuclea Th one1: Desa ollado po Vlambee , además de la pa e es é ica en e e-
encia al mapa, diseño de pe sonajes y a mas, ambién ha sido usado como e e en e
en su jugabilidad ené ica, que hemos in en ado imi a en un í ulo mul ijugado .
Figu a 5.7: Nuclea Th one
En e The Gungeon2: Desa ollado po Dodge Roll y publicado en el año 2016, se
a a de un caso simila al an e io juego en é minos de aspec o isual y jugable,
los cuales ambién hemos u ilizado como uen e de inspi ación, especialmen e en
es e caso la elación isual en e pe sonaje y a ma.
1h ps://s o e.s eampowe ed.com/app/242680/Nuclea _Th one/
2h ps://s o e.s eampowe ed.com/app/311690/En e _ he_Gungeon/
45
G ado en Desa ollo de Videojuegos Facul ad de In o má ica
∘Es as balas hacen an o de escudo (p o egiendo de balas que con ac en
con es as) como de munición, en ambos casos eliminando una bala del
escudo
∘Las balas si uadas en el escudo no dañan a o os jugado es
• Habilidad: Seducción
∘Igual que la habilidad Snipe , man ene pulsado el bo ón de habilidad
ab e un indicado de la di ección en la que se dispa a á, si bien no se hace
zoom.
∘Sol a la habilidad dispa a á un co azón (a una elocidad educida) que,
al choca con un jugado , lo ue za a mo e se hacia Bad Baby du an e
unos segundos.
5.5.3. Ni eles
El juego cuen a con un único mapa de amaño educido con dis in as cobe u as que da
luga an o a que los jugado es puedan en en a se de mane a di ec a como pe siguiéndose
pa a so p ende al con a io.
Figu a 5.18: Mapa del juego
5.6. Menús y lujo de juego
Buscando o ece una expe iencia de usua io sencilla, y dada la simplicidad del juego, los
menús son poco complejos y mues an la in o mación de o ma concisa. ( ig. 5.19).
El lujo de juego comple o es el de allado en la igu a 5.20.
52

Ma chmaking sys em o a mul iplaye ideo game UCM
Lobby
Inicio de sesión Menú P incipal
Selección de
pe sonaje
Modo de P ác ica
Opciones
Pe il
In o mación
Pa ida Pan alla de
esul ados
Opciones de
con ac o
Figu a 5.19: Menús del juego
Lobby Pa ida
Pan alla de
esul ado
Cancela busqueda
de pa ida
Menú P incipal Menú de selección
de pe sonajes
Bo ón de o a
pa ida
(cambio de
pe sonaje)
Mensaje de e o
Bo ón de o a pa ida
(mismo pe sonaje)
Bo ón de
"Juga "
Pe sonaje
elegido
Pa ida
encon ada
Pa ida
e minada
E o
du an e la
pa ida
E o en
búsqueda
de pa ida
Bo ón de
e o no al
menú p incipal
Figu a 5.20: G á ica de lujo de una pa ida
53
G ado en Desa ollo de Videojuegos Facul ad de In o má ica
5.6.1. Inicio de sesión
Figu a 5.21: Inicio de sesión
El juego comienza con un menú de inicio de sesión ( ig. 5.21), que ue za al jugado a
c ea o accede a una cuen a (de o ma que podamos gua da co ec amen e los da os de
cada jugado ).
5.6.2. Menú p incipal
Figu a 5.22: Menú P incipal
Una ez comple ado el inicio de sesión se mues a un menú p incipal ( ig. 5.22), desde
el cual se puede accede a dis in os menús: juego en línea, p ác ica, opciones, pe il de
usua io e in o mación del juego y con ac o; además de o ece la opción de sali del
juego.
54
Ma chmaking sys em o a mul iplaye ideo game UCM
5.6.3. Selección de pe sonaje
Figu a 5.23: Menú de selección de pe sonajes
Al selecciona es a opción se en ía al jugado a un menú en el cual de le pe mi e escoge
el pe sonaje a emplea en las pa idas ( ig. 5.23), con in o mación ele an e de cada uno.
En caso de desea se, el usua io puede eg esa al menú p incipal.
5.6.4. Lobby
Figu a 5.24: Lobby p e io a la pa ida
Una ez seleccionado el pe sonaje, se accede a una pan alla de espe a ( ig. 5.24) mien-
as se busque pa ida, siemp e pe mi iendo cancela la búsqueda (mien as no se haya
encon ado una).
55
G ado en Desa ollo de Videojuegos Facul ad de In o má ica
5.6.5. Pan alla de esul ados
Figu a 5.25: Pan alla de esul ados
T anscu ida la pa ida, se mues a una pan alla con los esul ados de la pa ida ( ig.
5.25). Desde es e menú se pe mi e an o eg esa al menú p incipal como accede di ec-
amen e al lobby (buscando una nue a pa ida con el mismo pe sonaje) como al menú de
selección de pe sonaje.
5.6.6. Menú de opciones
Figu a 5.26: Menú de opciones del juego
Pe mi e ajus a y con igu a los siguien es pa áme os:
Pan alla comple a: Sí o no
Resolución de pan alla: Se ecogen aquellas con las que el moni o en el que se
ejecu a el juego es compa ible
Sinc onización e ical: Sí o no
Lími e de o og amas po segundo: 60, 75, 120, 144
56
Ma chmaking sys em o a mul iplaye ideo game UCM
Volumen de la música del juego: En e 0 y 100
Volumen de los e ec os de sonido: En e 0 y 100
Esquema de con ol: Teclado y a ón, o mando
Idioma de juego: Inglés o cas ellano
5.6.7. Pe il de usua io
Figu a 5.27: Menú de pe il de usua io
Pe mi e al usua io e su his o ial de pa idas y su endimien o ( ig. 5.27).
5.6.8. In o mación
Figu a 5.28: Menú de in o mación del juego
Una pan alla con in o mación ( ig. 5.28) como:
In o mación ace ca del juego
Redes sociales
57

G ado en Desa ollo de Videojuegos Facul ad de In o má ica
Opciones de con ac o
C édi os
5.7. Es é ica
5.7.1. Es ilo a ís ico
Dada la le e expe iencia del g upo en el apa ado a ís ico, se ha op ado po un es ilo
pixela con el que es amos más amilia izados. Es e es ilo pe mi e ob ene un esul ado
ag adable sin emplea una g an can idad de ecu sos. Es e es ilo se emplea an o en
sp i es bidimensionales (jugado es, in e az, a aques) como elemen os idimensionales
(que con o man el mapa).
Los pe sonajes y las a mas buscan se simples y ácilmen e econocibles, con pale as
colo idas y sa u adas, colo es b illan es. Sus diseños buscan da la sensación de que los
elemen os del juego son como jugue es blandi os.
5.7.2. Música y sonido
La música y sonido buscan encaja con la emá ica píxel y e o del juego, empleando
música animada y pe enecien es al géne o de 8 bi s pa a ememo a el es ilo de sonido
de las máquinas a cade an iguas.
La música es á di idida pa a cada una de las secciones del juego:
Menú P incipal: Música algo animada, co a y en bucle que a a de ep esen a
la ase p e ia al inicio de pa ida del juego.
Selección de Pe sonaje: Música p e ia que a a de ep esen a la p epa ación
pa a la ba alla, más animada que la de menú p incipal.
Lobby: Música 8 bi s más calmada pa a ameniza la búsqueda de con incan e.
Pa ida: Música animada y ápida pa a ep esen a el enesí de una pa ida.
5.8. Conexión en e el juego y los se ido es
El se ido de ma chmaking o ece una se ie de se icios gené icos que equie en única-
men e de un mé odo de conexión a los se icios REST y clases que puedan dese ializa se
a obje os JSON pa a se en iadas a a és de mensajes.
En ez de hace la in eg ación di ec amen e en el código del juego, la conexión a es os
se ido es se ealiza median e una lib e ía dinámica (DLL) que hemos implemen ado pa a
ges iona odo el p oceso de en ío de mensajes desde el juego has a los se ido es. Se ha
c eado con el in de que o os desa ollado es puedan eu iliza la.
Así pues, el p oceso inal de conexión en e el juego y los dis in os se ido es se puede
obse a en la igu a 5.29.
58
Ma chmaking sys em o a mul iplaye ideo game UCM
Búsqueda de
pa eja
Inicio de sesión Menú P incipal Selección de
pe sonaje
Base de da os (con la
in o mación de cada
usua io)
Inicio de
sesión
e óneo
Inicio de
sesión
co ec o
Pe ición de
empa ejado
Se ha
encon ado
pa eja
Resul ados de
la pa ida
Fin de pa ida
Pa ida
POST
accoun s sessions
GET
ma chmaking
POST
accoun s ounds
Clien e
Se ido es
Base de da os
Pe ición a un
se icio
POST
game-ins ances
POST
ma chmaking
Añadi a la
lis a de espe a
No se ha
encon ado
pa ida
DELETE
game-ins ances
DELETE
ma chmaking
Elimina de la
lis a de espe a
Se ido de ma chmaking
Juego
Con olado de
se ido es
Búsqueda de
sala
No se
puede ab i
una sala
Sala c eada
y/o asignada
Figu a 5.29: Esquema de lujo de conexiones ealizadas du an e una sesión de juego.
59
G ado en Desa ollo de Videojuegos Facul ad de In o má ica
5.8.1. Ges ión de cuen as
El inicio de sesión se ealiza median e una pe ición al se ido , al igual que la c eación de
nue as cuen as. El inicio de sesión o o ga un oken de acceso que se emplea á a lo la go
de las dis in as pe iciones al se ido de ma chmaking.
5.8.2. Empa ejado
Es e p oceso, ya de allado en el capí ulo 3 Diseño del sis ema de ma chmaking, se enca ga
de asigna al jugado un i al y de ol e su iden i icado y nomb e de usua io.
5.8.3. Se ido de juego
Con el in de hace los di e en es se icios independien es unos de o os, se ha imple-
men ado una a qui ec u a de Clien e-Se ido (el cual alojamos desde uno de nues os
equipos). Median e el uso de la he amien a Mi o 4se sinc onizan las pa idas de los
clien es (jugado es), en iando mensajes al se ido con cada acción omada po un usua-
io (mo imien o, dispa o, golpe de bala, e cé e a) y eplicándola en el clien e del o o
usua io.
Mi o sinc oniza las posiciones de odos los obje os que se ins ancian desde el se ido
y cuen an con un componen e llamado Ne wo k Iden i y yNe wo k T ans o m como
mínimo. Ne wo k Iden i y con ola la iden idad única del obje o del juego en la ed y la
usa pa a que es a econozca al obje o. Es e componen e es imp escindible, ya que sin él
no pod ía habe sinc onización de o os da os. Ne wo k T ans o m sinc oniza la posición,
o ación y escala a a és de la conexión con el se ido . Como es os componen es, exis en
o os pa a la sinc onización de animaciones o posición de los hijos del obje o en e o os.
Todos es os componen es es án de allados en al documen ación de Mi o 5.
Pa a que las unciones se ejecu en en el clien e o en el se ido , se emplean una se ie de
a ibu os que especi ican desde dónde se llama a la unción y dónde se ejecu a. Algunos
de los a ibu os mas impo an es son:
[Clien ]: Especi ica que una unción de e minada únicamen e debe se ejecu ada
en el clien e.
[Se e ]: Especi ica que una unción de e minada únicamen e debe se ejecu ada
en el se ido .
[Clien Rpc]: Se llama a la unción desde el se ido pe o la ejecu a en odos los
clien es conec ados.
[Command]: Se llama a la unción desde el clien e pe o se ejecu a en el se ido
conec ado.
Es os a ibu os deben añadi se jus o encima de mé odos cuya clase he ede de Ne wo k
Beha iou .
Po o o lado, la sinc onización de las a iables debe se especi icada pa a asegu a que el
es ado de juego de ambos clien es sea el mismo y los dos usua ios dispongan de la misma
4h ps://mi o -ne wo king.com/
5h ps://mi o -ne wo king.gi book.io/docs
60
Ma chmaking sys em o a mul iplaye ideo game UCM
in o mación en pan alla.
Pa a señaliza la sinc onización de a iables, se ha de especi ica el siguien e a ibu-
o:
[SyncVa ]: La a iable indicada se sinc oniza en los demás clien es solo si se mo-
di ica en el se ido .
Al igual que sucedía con los componen es, odos es os a ibu os se encuen an explicados
y de allados en la documen ación de Mi o 6.
5.8.4. Con olado de se ido es
Se ha implemen ado un se ido independien e que ges ione la c eación de di e sas salas
de juego (o ins ancias de se ido de juego) en las que puedan juga los dos usua ios
empa ejados, de o ma que se puedan ene múl iples pa idas concu en es llegando a
un máximo. Se ealiza empleando un se icio REST con pe iciones pa a ab i y ce a
una ins ancia de se ido de juego.
Se icios del con olado de se ido es
Se han c eado dos se icios en el mismo endpoin ,/game-ins ances, que pe mi en ges iona
la c eación o eliminación de un se ido de juego.
POST /game-ins ances: c ea una nue a ins ancia del se ido de juego. Tan o si
ya exis ía la pa ida como si la acaba de c ea , de uel e el pue o en el que a ienden
las pe iciones del juego.
•Respues as:
∘200: pe ición comple ada co ec amen e. La espues a consis e en en ia
el pue o en el que el jugado se a a conec a pa a empeza la pa ida.
Fo ma o: { po : in , ma chID: s ing }
⋄po : pue o en el que se debe es ablece la conexión con el se ido
de juego c eado p e iamen e.
⋄ma chID: ID de pa ida calculado a pa i del ID de los jugado es y
de la ho a de ins anciación del se ido .
DELETE /game-ins ances: ma ca como lib e el pue o mandado desde el clien e.
•Respues as:
∘503: se ido lleno. La espues a consis e en en ia únicamen e el código
de e o . Indica que el se ido es á al máximo de su capacidad y no
admi e más pa idas.
∘200: pe ición comple ada co ec amen e. La espues a consis e en en ia
el pue o en el que el jugado se a a conec a pa a empeza la pa ida.
6h ps://mi o -ne wo king.gi book.io/docs/guides/a ibu es
61
G ado en Desa ollo de Videojuegos Facul ad de In o má ica
Finalmen e, se con ó con 45 jugado es dis in os, de los cuales 43 dispu a on un o al
de 481pa idas. Así pues, de los da os ecogidos de es os 43jugado es se desp ende el
siguien e análisis. Tal y como se menciona en la sección 3.4 Cálculo de la habilidad, los
jugado es comenza on con una pun uación con alo de 1500y la des iación ijada po
de ec o en 350.
6.4.1. Flujo de jugado es
Es impo an e ene en cuen a que el lujo de jugado es conec ados en odo momen o
( igu a 6.1, azul) no ue homogéneo, dando po ejemplo luga a si uaciones en las que dos
jugado es se en en aban una y o a ez al no habe más i ales disponibles. Además, en
la misma igu a se puede obse a el núme o de jugado es nue os en cada pe iodo ( igu a
6.1, na anja), lo cual o ece una idea más conc e a del lujo eal de jugado es a lo la go
del iempo, dado que es os in oducen un al o g ado de excen icidad al analiza alo es
po ene las pun uaciones po de ec o.
0 5 10 15 20 25
Pe iodos de ac ualización
0
2
4
6
8
10
12
14
16
Can idad de jugado es
Jugado es o ales ac i os
Jugado es nue os
Figu a 6.1: Medición del lujo de jugado es a lo la go de la p ueba. En azul, el o al
de jugado es ac i os en un pe iodo de ac ualización. En na anja, la can idad de es idos
jugado es ac i os que son nue os.
6.4.2. Es a os de clasi icación
En la igu a 6.2 se de alla la dis ibución de jugado es po pun uación, incluyendo la
media y la mediana. Como se puede obse a , exis en algunos jugado es cuya pun uación
se des ía eno memen e, con el añadido de que son nega i as. En ningún caso se men-
ciona es a si uación como algo imposible en la documen ación de Glicko, lle ándonos a
asumi que son alo es álidos del sis ema. Dado que se ealizan las ac ualizaciones de
las pun uaciones po pe iodos, exis e la posibilidad de acumula de o as sucesi as en e
a jugado es de un ni el de habilidad muy in e io al del usua io, y de a a se además de
un jugado con des iación ele ada esul a ía en un g an descenso de la pun uación.
Aun así, sigue esul ando so p enden e ya que se han dado únicamen e dos casos, de
los cuales uno se encuen a en el ango de -9000. Si bien se igno a án es os jugado es
68

Ma chmaking sys em o a mul iplaye ideo game UCM
a lo la go de análisis pos e io es, dado que son una excepción, se de alla á un análisis
especí ico de es os casos en la sección 6.4.6 Pun uaciones nega i as.
10000 8000 6000 4000 2000 0 2000
Pun uaciones
0
5
10
15
20
Can idad de jugado es
Media:
977.20 Mediana:
1311.32
Figu a 6.2: Dis ibución de los jugado es según su pun uación as las p uebas.
Pa a hace más cómoda la lec u a, se ha c eado la igu a 6.3. Es a es idén ica a la igu a
6.2, sal o que apa a isualmen e es os casos excén icos pa a mayo cla idad.
0 250 500 750 1000 1250 1500 1750 2000
Pun uaciones
0
1
2
3
4
5
6
Can idad de jugado es
Media: 977.20 Mediana: 1311.32
Figu a 6.3: Dis ibución de los jugado es según su pun uación as las p uebas omi iendo
casos excén icos.
Como se puede obse a , la mayo ía de pun uaciones (un 58,1%del o al) se encuen an
en e 1200y1500. Si bien la can idad de jugado es y de iempo que han enido disponible
pa a ap ende las mecánicas y juga no es su icien e, pueden empeza a e se dos es a os
de inidos en la igu a 6.4, que ep esen a una e sión de las dos igu as an e io es ( igu as
6.2 y 6.3) en ocada en la zona en e 950y1500. Es os dos es a os son dos zonas de al a
concen ación de pun uaciones, y se encuen an:
69
G ado en Desa ollo de Videojuegos Facul ad de In o má ica
En e 1200y1300.
En e 1350y1450.
También puede obse a se el comienzo de un es a o en o no a una pun uación de 1000,
y o o en o no a una pun uación de 1500. Es e úl imo caso es más llama i o, dado que
1500es la pun uación inicial, signi icando que pod ían de ini se es a os supe io es a es e
alo .
1000 1100 1200 1300 1400 1500 1600
Pun uaciones
0
1
2
3
4
Can idad de jugado es
Media: 977.20 Mediana: 1311.32
Figu a 6.4: Dis ibución de los jugado es según su pun uación cen ada en la sección de
más concen ación.
Aun así, se ecalca nue amen e que es o ha sido una endencia inicial, y dados más iempo
de p uebas y más jugado es los es a os se de ini ían de una o ma más exac a.
6.4.3. E olución de des iación
T as el análisis de la pun uación y el su gimien o de es a os, es ambién necesa io analiza
el es o de elemen os que in e ienen en el sis ema de ma chmaking, p incipalmen e la
des iación.
Como puede obse a se en la igu a 6.5, pa iendo del alo inicial de 350las des iaciones
inales descienden según lo espe ado pa a si ua se en un alo in e io a 100en la inmensa
mayo ía de casos, un 83,7%del o al. Así mismo, exis e ambién una base eseñable
de jugado es (un 60,4% del o al) con una des iación en o no a los 50 pun os. La
documen ación de Glicko menciona es e alo como el pun o en el cual las pun uaciones de
un jugado se han es abilizado, ep esen ando de mane a más iel su habilidad eal.
70
Ma chmaking sys em o a mul iplaye ideo game UCM
0 50 100 150 200 250 300 350
Des iaciones (RD)
0
2
4
6
8
Can idad de jugado es
Media: 73.37Mediana: 57.71
Figu a 6.5: Dis ibución de los jugado es según su des iación as las p uebas.
Dado el uncionamien o del p opio sis ema, es azonable es udia la dispe sión de las
des iaciones en unción del núme o de pa idas jugadas, al y como se e leja en la igu a
6.6.
0 10 20 30 40 50
Pa idas jugadas
0
50
100
150
200
250
300
350
Des iaciones (RD)
Figu a 6.6: Nube de dispe sión de la dis ibución de los jugado es, siendo el eje 𝑥el
núme o de pa idas jugadas y el eje 𝑦el alo de su des iación
Aunque en líneas gene ales se puede obse a una es abilización no able según aumen a
el núme o de pa idas dispu adas, es necesa io ene en cuen a que la des iación aumen a
en casos de inac i idad, al y como se mencionaba en la sección 2.2.2 Glicko. Es o pod ía
da luga a casos que, con muchas pa idas dispu adas en el pe iodo inicial, un la go de
pe iodo de inac i idad, y un eg eso en el pe iodo inal, su gie a un alo dis o sionado
u o del uncionamien o del p opio sis ema.
Sin emba go, al y como se ecoge en la ya mencionada igu a 6.6, es e caso no se ha
dado en nues as p uebas. Las des iaciones asociadas a jugado es que han pa icipado en
71
G ado en Desa ollo de Videojuegos Facul ad de In o má ica
menos pa idas son más espo ádicas, mien as que a medida que aumen a la can idad de
pa idas jugadas las des iaciones se an concen ando.
Es a ines abilidad de des iaciones en o no a bajas pa idas jugadas se debe p incipal-
men e a la baja can idad de usua ios o ales y al a p opo ción de jugado es ecién llegados
en los úl imos pe iodos ( igu a 6.1, na anja). Dado que las pun uaciones y des iaciones
de los oponen es en an en juego a la ho a de ac ualiza los alo es, una mayo p opo -
ción de jugado es nue os p o oca ía que expe imen a an un cambio más adical en sus
des iaciones, sin pode es abiliza se.
Siendo la pun uación y la des iación de los jugado es los alo es empleados pa a el ma ch-
making, es necesa io ambién es udia la elación en e ambos, que da luga a la igu a
6.7.
8000 6000 4000 2000 0 2000
Pun uaciones
0
50
100
150
200
250
300
350
Des iaciones (RD)
Figu a 6.7: Nube de dispe sión de la dis ibución de los jugado es, siendo el eje 𝑥el alo
de su pun uación y el eje 𝑦el alo de su des iación
Al igual que con la igu a 6.2, se pueden obse a alo es excén icos u o de emplea
la pun uación como e e encia (dada la exis encia de alo es nega i os muy di e enciados
del es o), po lo que se gene a la igu a 6.8 que los omi e isualmen e pa a una mayo
cla idad.
De aquí se desp ende que los alo es ienden a concen a se con una des iación comp en-
dida en e 25y100independien emen e de la pun uación. Así pues, dada es a indepen-
dencia se puede a i ma que el sis ema cumple con el obje i o de e leja de o ma iable
la habilidad de los jugado es po medio de sus pun uaciones.
72
Ma chmaking sys em o a mul iplaye ideo game UCM
0 250 500 750 1000 1250 1500 1750 2000
Pun uaciones
0
25
50
75
100
125
150
175
200
Des iaciones (RD)
Figu a 6.8: Nube de dispe sión de la dis ibución de los jugado es omi iendo alo es
excén icos.
6.4.4. Análisis de empa ejamien os
Una ez es udiada la dis ibución an o de pun uaciones como de des iaciones y su ela-
ción, se p ocede al siguien e obje i o de es as p uebas, siendo es e analiza los empa eja-
mien os ealizados y su e olución a lo la go de las p uebas. Es o se ealiza con el in de
a a de disce ni su calidad. El ac o p incipal pa a pode a i ma es o es las di e encias
en e pun uaciones al ealiza los empa ejamien os. Si descienden con el iempo se pod á
a i ma que los empa ejamien os son más p ecisos. En es e caso, el cálculo de habilidad
hab ía log ado su obje i o de ca a al empa ejamien o, e lejando de mane a más p ecisa
la habilidad de los jugado es.
En la igu a 6.9 se pueden e ep esen adas la dispe sión de di e encias de pun uaciones
en empa ejamien os po cada pe iodo de ac ualización (azul) y la media de las mismas
(mo ado).
0 5 10 15 20
Pe iodos de ac ualización
0
100
200
300
400
500
Di e encia de pun uación en empa ejamien o
Media de di e encias de pun uación
Figu a 6.9: Dis ibución de la di e encia de pun uación de los empa ejamien os. En azul
la dis ibución de di e encias en un pe iodo, en mo ado la e olución de la media de es as.
73

G ado en Desa ollo de Videojuegos Facul ad de In o má ica
En es e caso se puede obse a que, as un p ime pe iodo en el que odos los jugado es
empiezan o zosamen e con la misma pun uación, el alo luc úa de mane a es able
con alo es que se pueden conside a excén icos en momen os con muy pocos jugado es
conec ados, u o de la p opia na u aleza de las p uebas al con a con un núme o limi ado
de usua ios en las mismas.
No se puede a i ma ca egó icamen e que los empa ejamien os se han ealizado de mane a
equilib ada al no dispone de una mues a de da os más ex ensa con la que obse a una
e olución a lo la go del iempo. Aun así, se puede obse a que en los p ime os pe iodos
de las ealizadas, con una mayo can idad de pa idas dispu adas y meno p opo ción de
jugado es nue os ( igu a 6.1), la media de la di e encia de pun uación en e los jugado-
es en cada empa ejamien o se man iene es able. Si bien exis en pequeñas a iaciones,
es as esul an acep ables, eniendo en cuen a la in luencia de nue os usua ios en es e
aspec o.
Al igual que ocu ía an e io men e con el análisis del e ec o de la des iación a la ho a de
ealiza el cálculo de la habilidad, es e es un apa ado en el que la educida can idad de
da os disponibles impide de e mina un esul ado de mane a comple a más allá de que
su uncionamien o es co ec o.
6.4.5. E olución de pun uaciones y análisis indi idual
Po úl imo, uno de los obje i os inales e a analiza la e olución de las pun uaciones
a lo la go de las p uebas, así como obse a las e oluciones de jugado es que hubie an
dispu ado muchas pa idas, compa adas con las de jugado es que hubie an dispu ado
pocas.
Debido a que el lujo de jugado es ac i os no ha sido cons an e a lo la go de los di e en es
pe iodos de ac ualización sumado a la en ada de nue os jugado es ( igu a 6.1), no se ía
lógico analiza es os alo es sob e odo el conjun o de usua ios.
Es po es o que se ealiza un análisis indi idual y compa ación de dis in os jugado es pa a
es udia los dos úl imos obje i os de o ma conjun a, ya que se encuen an ín imamen e
elacionados.
Pa a e leja el con as e en e jugado es con al a y baja pa icipación, se han analizado
la pun uación y des iación de los es jugado es con más pa idas y de los es con menos
pa idas (habiendo omi ido aquellos usua ios cuya pa icipación ue a nula o desp ecia-
ble).
Pa icipación
El p ime paso es compa a la p incipal di e enciación en e es os dos g upos de jugado es,
su pa icipación a lo la go de los pe iodos de ac ualización.
Los jugado es con mayo pa icipación ( igu a 6.10) son los usua ios 0(35pa idas o a-
les), 13(32pa idas o ales) y 21(50pa idas o ales). De la misma mane a, los jugado es
con meno pa icipación seleccionados ( igu a 6.11) son los jugado es 4,24y34, cada uno
con 5pa idas o ales. En sus espec i as g á icas se puede obse a su pa icipación a lo
la go del iempo.
74
Ma chmaking sys em o a mul iplaye ideo game UCM
En el caso de los jugado es de meno pa icipación, esal a el hecho de que juga on du an e
es pe iodos como máximo. De mane a simila , los jugado es con mayo pa icipación
ienen una ines abilidad pa ecida, jugando de o ma i egula en ez de de una o ma
más dis ibuida.
0 5 10 15 20
Pe iodos de ac ualización
0
2
4
6
8
10
Pa idas jugadas
Jugado 0
Jugado 13
Jugado 21
Figu a 6.10: P og esión de las pa icipación de los 3 jugado es con más pa idas dispu-
adas, ep esen ados po su iden i icado .
0 5 10 15 20
Pe iodos de ac ualización
0
1
2
3
4
Pa idas jugadas
Jugado 4
Jugado 24
Jugado 34
Figu a 6.11: P og esión de la pa icipación de los 3 jugado es con menos pa idas dispu-
adas escogidos, ep esen ados po su iden i icado .
E olución de pun uaciones y des iaciones
Como puede obse a se en la igu a 6.12, la pun uación iende a e se modi icada de
mane a b usca en los p ime os pe iodos de cada jugado ( igu a 6.10) pa a pos e io men e
es abiliza se es e cambio. Es o se co esponde con la e olución de sus des iaciones como
se desc ibe en la igu a 6.13, que como e a de espe a se es abilizan según aumen a su
pa icipación. Cabe menciona que es e p oceso no se co esponde con la can idad de
pa icipación en cada pe iodo, sino que se es abiliza as al ededo de 4 pe iodos de
ac i idad.
75
G ado en Desa ollo de Videojuegos Facul ad de In o má ica
0 5 10 15 20
Pe iodos de ac ualización
0
200
400
600
800
1000
1200
1400
1600
Pun uación
Jugado 0
Jugado 13
Jugado 21
Figu a 6.12: P og esión del ni el de pun uación de los 3 jugado es con más pa idas
dispu adas, ep esen ados po su iden i icado .
0 5 10 15 20
Pe iodos de ac ualización
0
50
100
150
200
250
300
350
Des iación de pun uación (RD)
Jugado 0
Jugado 13
Jugado 21
Figu a 6.13: P og esión de las des iaciones de los 3 jugado es con más pa idas dispu adas,
ep esen ados po su iden i icado .
Si bien ya se ejempli ica con los p ime os pe iodos de los jugado es más ac i os, en el
caso de los jugado es con meno pa icipación se puede obse a más cla amen e cómo las
pun uaciones ( igu a 6.14) e olucionan de una o ma más e á ica al no habe apo ado
su icien es da os al sis ema y no habe se es abilizado sus des iaciones, como se puede
obse a en la igu a 6.15.
76
Ma chmaking sys em o a mul iplaye ideo game UCM
0 5 10 15 20
Pe iodos de ac ualización
0
200
400
600
800
1000
1200
1400
Pun uación
Jugado 4
Jugado 24
Jugado 34
Figu a 6.14: P og esión del ni el de pun uación de 3 de los jugado es con menos pa idas
dispu adas, ep esen ados po su iden i icado .
0 5 10 15 20
Pe iodos de ac ualización
0
50
100
150
200
250
300
350
Des iación de pun uación (RD)
Jugado 4
Jugado 24
Jugado 34
Figu a 6.15: P og esión de las des iaciones de 3 de los jugado es con menos pa idas
dispu adas.
A modo de conclusión, se puede a i ma que la pun uación e oluciona de mane a e á ica
al comienzo de la pa icipación de un jugado , aco de a lo que se a i ma en la explicación
de Glicko (sección 2.2.2 Glicko). Es a e olución se sua iza p og esi amen e al descende
la des iación, como se puede obse a en la igu a 6.12.
En elación al segundo obje i o, eniendo en cuen a que la media de pa idas jugadas po
usua io es de 11 pa idas, puede a i ma se que una mayo pa icipación implica alo es
mucho más es ables (y e oluciones más sua es g acias a ello), mien as que en el caso
con a io se pueden obse a cambios más e á icos.
6.4.6. Pun uaciones nega i as
Uno de los aspec os que su gió du an e las p uebas ue la p esencia de jugado es con
pun uaciones nega i as. Solo se da en 2 de los 43 jugado es (4,65%) que pa icipa on
77

Capí ulo 8
Con ibuciones
Pablo Ga cía G ossi:
Pa a comenza con el plan eamien o del abajo y cómo debíamos o ganiza nos, decidí
cen a me en la búsqueda de in o mación ace ca de los sis emas de medida de habilidad
de jugado es en ideojuegos en línea. Realicé una ecopilación de los p incipales mé odos
de pun uación u ilizados y los p esen é al es o del g upo pa a analiza cuál se ía el más
ap opiado pa a el desa ollo de nues o p oyec o.
T as nues a decisión de u iliza Glicko como sis ema de pun uación, ealicé una im-
plemen ación p e ia en Py hon en la que, con una se ie de jugado es gene ados en un
documen o JSON que cons aban de un id, pun uación y des iación. Es a p ueba gene al
consis ía en la selección de un usua io alea o io de la lis a y some e lo a 20 pa idas con
usua ios que onden su ango de pun uación y, pos e io men e, ac ualiza su pun uación.
El obje i o e a comp oba que Glicko e a un sis ema adecuado pa a el uncionamien o y
diseño de nues o juego.
Pos e io men e pa icipé en el diseño y desa ollo del ideojuego. Po un lado, me en-
ca gué de odo el apa ado de a e, en el que u ilicé la he amien a Asep i e pa a la
elabo ación de los diseños de las a mas, pe sonajes, in e aces y elemen os del en o no en
el mapa. Du an e es e p oceso, colabo é en la desc ipción y diseño del uncionamien o y
habilidades de los pe sonajes disponible.
T as habe con ibuido con el apa ado a ís ico den o del juego, colabo é en el desa ollo
de las mecánicas p incipales del juego, ayudando en la implemen ación del mo imien o,
apun ado, dispa o y lanzamien o y c eación de habilidades. Me enca gué del pulido del
mo imien o, es ableciendo pa áme os co ec os y solucionando algunos p oblemas como
el mo imien o en diagonal. También me enca gué del co ec o apun ado y lanzamien o
de balas, adap ando el código pa a su co ec o uncionamien o espec o a nues o es ilo
g á ico. También me enca gué de la elabo ación del sis ema de habilidades jun o a Jose
Ma ín Se ano eIgnacio O y Alonso, además de la implemen ación de g an pa e
de los dis in os a aques y dispa os de pe sonajes.
Dejando de lado las con ibuciones al apa ado del juego, colabo é en el diseño y o ga-
nización del sis ema de ma chmaking jun o a mis compañe os, plan eando la es uc u a
undamen al de es e y su uncionamien o. Mi p incipal labo en es e apa ado ue o -
ganiza la es uc u a y elabo a los esquemas pa a la implemen ación de los se ido es,
85
G ado en Desa ollo de Videojuegos Facul ad de In o má ica
además de o ganiza las conexiones en e ambos y la iloso ía de diseño que uésemos a
adop a .
An es de pone me con un sis ema de p uebas pa a la comunicación clien e-se ido y
el empa ejamien o de usua ios, in es igué y colabo é en la comunicación de Uni y con
MongoDB, así ambién como plan ea el almacenado de usua ios en la base de da os y
busca e implemen a el uso de ci ado SHA256 y unciones pa a comp oba la co ección
de nomb es de usua io, co eos elec ónicos y con aseñas.
T as es e plan eamien o inicial, me enca gué de desa olla un sis ema pa a pone a
p ueba las conexiones con el se ido de ma chmaking, con ola las pe iciones y pone a
p ueba su co ec o uncionamien o con un sis ema de usua ios ic icios simila al elabo ado
p e iamen e en Py hon, pe o añadiendo y eniendo en cuen a odos los nue os pa áme os
a ene en cuen a en nues o ideojuego.
En es e p oceso me enca gué de eadap a las p uebas p e ias en Py hon a Ja asc ip pa a
la pe mi i la co ec a comunicación de Glicko con el se ido de ma chmaking, además
de implemen a y es ablece den o de los cálculos de pun uación los nue os pa áme os
que íbamos a ene en cuen a a la ho a de e alua el ni el de habilidad de los usua ios
pa a demos a la adap abilidad de nues o sis ema a dis in os ideojuegos.
Du an e las p uebas, colabo é con Ja ie A ias González pa a obse a el co ec o
uncionamien o del se ido de ipo REST y jun o a él co egimos odos los p oblemas
su gidos du an e las p uebas, es ableciendo conexiones sínc onas co ec as, ees uc u an-
do cie as clases se ializables y soluciona odos los posibles p oblemas de comunicación
en e clien e y se ido , además de comp oba la co ec a implemen ación de las p ác icas
gene ales de nomencla u a de REST.
En es a ase de es eo, c eé un clien e que omaba con ol de la conexión y desconexión
de jugado es y simulación de pa idas. Su unción p incipal e a pone a p ueba el co ec o
empa ejamien o de jugado es, eniendo en cuen a su pun uación, des iación y iempo de
espe a en la cola de jugado es.
El sis ema se inicializaba poniendo a p ueba el egis o de jugado es, in oduciendo en
la base de da os odos y cada uno de los jugado es gene ados alea o iamen e en un
JSON, incluyendo su nomb e de usua io, co eo elec ónico, con aseña y una pun uación
y des iación alea o ias. El egis o se ealizaba una única ez y a con inuación el clien e
seleccionaba a un o al de 10 jugado es alea o ios que in oduce en la cola de espe a del
se ido de ma chmaking, empa ejándolos en e sí y pe mi iendo comp oba el co ec o
uncionamien o del sis ema. Es e con aba el núme o de pa idas que iba ealizando cada
uno de los jugado es y alea o iamen e simulaba una desconexión de los jugado es en línea,
desconec ándolos de la cola de espe a del se ido de ma chmaking e in oduciendo nue os
jugado es a la espe a de una pa ida, odo es o en bucle pa a pode con i ma la solidez
del sis ema, an o el empa ejamien o como el co ec o uncionamien o en e la conexión
clien e-se ido .
Jose Ma ín Se ano:
Como odos mis compañe os, el inicio del p oyec o consis ió en busca in o mación sob e
el ma chmaking, cha las y documen os en los cuales se hablase de como uncionaban y
juegos que lo u ilizaban. Aunque no en é en an a p o undidad como algunos de mis
compañe os, comp endí el uncionamien o del Elo y Glicko, además de su uso en algunos
86
Ma chmaking sys em o a mul iplaye ideo game UCM
juegos.
Una pa e p incipal de mi abajo ha ido en la c eación del ideojuego. Sob e odo me
cen é en la es uc u a p incipal de los pe sonajes y su mecánicas. La base de la mecánica
de dispa o de los dis in os pe sonajes ha sido una de mis mayo es con ibuciones a la
cons ucción del ideojuego, jun o a odo el sis ema de daño y ida pa a el co ec o
desa ollo de una pa ida. Apa e, la c eación de una maquina de es ados pa a pode
añadi la mecánica de alen ización, enamo amien o, a u dimien o, e c... con el in de
pode lo ex ende pa a añadi dis in os es ados.
Den o de la pa e del juego, ambién me cen é en pasa odo aquello que hicimos de
o ma local al se ido median e el uso de la lib e ía Mi o . Es e p oceso incluía la
in es igación del uncionamien o de la he amien a pa a pode e i ica que la íbamos a
pode usa pa a es e p oyec o, que comp endía mi a u o iales, lee la documen ación
disponible y obse a p oyec os de ejemplo ya hechos (p incipalmen e los ejemplos que
apo aba Mi o po de ec o). T as e i ica que la lib e ía nos podía se ú il, me enca gué
de la implemen ación, pasando odo el uncionamien o que eníamos en local a un se ido
de juego que manejase la conexión en e clien es y unos clien es los cuales se conec aban
a es e pa a pode juga una pa ida 1 1.
Po úl imo, elacionado con el ideojuego, ambién me enca gué de busca e o es y
el pos e io a eglo de es os. Algunos de es os p oblemas no e an solo de e o es del
ideojuego en sí, si no ambién de como se compo aba el juego espec o los se ido es
(a la ho a de p ocesa las ondas o casos de desinc onización).
Sob e los se ido es, al igual que mis compañe os, con ibuí en el diseño de la je a quía
de se ido es, así como el lujo de pa ida. Debido a que me enca gué de la pa e en
línea del ideojuego, in es igué cómo uncionaban los se icios REST y qué so wa e e a
necesa io. Una ez encon ado in o mación sob e Exp ess (lib e ía que u ilizamos pa a los
se ido es en Ja asc ip ), hice un pequeño se ido de p ueba que si ió como plan illa
pa a la ex ensión pos e io del ac ual se ido de ma chmaking.
El se ido de juego necesi aba pode aloja a ias pa idas a la ez pa a pode segui con
el ma chmaking po lo que es u e in es igando como podíamos c ea di e sas salas pa a
que dis in os clien es se pudie an conec a y pudiesen juga pa idas de o ma sepa ada
(po pa ejas, dado que en nues o caso de uso,los jugado es se en en aban en e sí de
mane a indi idual). Den o del abanico de posibilidades y sabiendo como uncionaban los
sis emas REST, la solución que encon é ue c ea un se icio REST que c ease y inalizase
pa idas a pe ición de los clien es. Es e se ido c ea una ins ancia de un se ido que
escucha en un pue o conc e o y en ía a los clien es el pue o en el que escucha y el
iden i icado de la pa ida pa a segui la pa ida pos e io men e.
Desde el lado del clien e, necesi ábamos pode hace pe iciones desde C#, así que abajé
en la búsqueda de una o ma que nos pe mi iese la comunicación desde el clien e has a el
se icio REST. Encon é H pWebReques y c eé una clase en el p oyec o con dis in os
mé odos pa a pode es ablece comunicación con el se icio REST y pode , en e o as
posibilidades, inicia sesión o busca con incan e. Es a clase su ió cambios as modi ica
la o ma en la que ges ionamos las pe iciones desde el se ido de ma chmaking. T as
los cambios que su ió es a clase, añadí uncionamien o pa a que los clien es pudie an
comunica se con el con olado de se ido es de igual modo que lo hacían con el de
ma chmaking.
87
G ado en Desa ollo de Videojuegos Facul ad de In o má ica
Es a clase se e minó ans o mando en la lib e ía dinámica que usamos pa a la comu-
nicación an o con el se ido de ma chmaking como con el con olado de se ido es.
Debido a que en los inicios no es aba pensada como una lib e ía dinámica gené ica pa a
cualquie ideojuego, me enca gué de sepa a el código gené ico y el especí ico pa a c ea
una lib e ía dinámica gené ica y o a más especí ica esencial pa a oda la comunicación
del juego.
También necesi ábamos ecopila algunos da os de los jugado es pa a gua da los pos e-
io men e en la base de da os ex e na que eníamos, así que me enca gué de modi ica
código de la pa e del juego pa a pode ecoge es os da os, que encapsulamos pos e io -
men e pa a en iá selos al se ido de ma chmaking median e la clase c eada an e io -
men e exclusi amen e pa a es e ipo de comunicación.
De o ma ex e na a lo que e a el desa ollo del TFG, me ocupé de la c eación del eposi-
o io TFG en Gi hub donde eníamos como submódulos odos los eposi o ios u ilizados
( eposi o io de juego, eposi o io de ma chmaking, eposi o io de ac ualización, eposi-
o io de la comunicación de los clien es, eposi o io de la comunicación con Mongo y
eposi o io del con olado de se ido es de juego).
También me ocupé de edac a algunos de los Readme de los eposi o ios con algo de
documen ación necesa ia pa a pode modi ica el código de aquel que quie a.
Ja ie A ias González:
Al comienzo del p oyec o los cua o in eg an es buscamos in o mación ace ca de sis emas
de ma chmaking en sí mismos, además de los mé odos de conexión en e clien es que
es os empleaban. Po mi pa e lo que encon é ue on p oyec os más an iguos, uno de
ellos de ca a a ma chmaking en un sen ido come cial (empa eja anuncios con po enciales
clien es). Aun así, es os p oyec os nos ayuda on a la ho a de empeza a esquema iza lo
que se ía nues o p opio sis ema, además de in oduci nos a concep os más écnicos de
es e campo.
También pa icipé en el diseño o iginal del juego, cen ándome en el desa ollo de las
mecánicas p incipales y su equilib ado, además de el aspec o es é ico (no los asse s,
los cuales en su mayo ía caye on en manos de mi compañe o Pablo Ga cía G ossi).
También me enca gué de busca plugins que nos simpli ica an el abajo, como a la ho a
de cons ui los mapas, y de in eg a el p oyec o ealizado pa a la asigna u a de Sonido
en ideojuegos con es e mismo juego, consis en e en añadi música y e ec os de sonido
dinámicos.
Qui ando es as dos con ibuciones iniciales, unas de mis con ibuciones p incipales ue on
los se ido es de ma chmaking, ac ualización y la in eg ación de la base de da os Mon-
goDB. El diseño gene al ue ealizado po los 4, y la in es igación inicial de la in eg ación
de REST en node.JS ue ealizada po Jose Ma ín Se ano, que ealizó un se ido
de plan illa que luego emplea ía a la ho a de diseña el se ido en su o alidad.
Al p incipio el se ido ue ealizado i e a i amen e, a medida que se necesi aban se -
icios los iba diseñando, lo cual p o ocó que ue a necesa io ees uc u a lo de o ma
co ec a. Peo aún, las conexiones con MongoDB eque ían asinc onía, dado que el d i e
de MongoDB abajaba median e p omesas. Así pues, ecayó sob e mí la a ea de log a
que se conec a a de o ma co ec a y sínc ona, además de ajus a me lo máximo posible
a las p ác icas gene ales de REST. Pa a empeza , c eé una pequeña API que ges iona a
88
Ma chmaking sys em o a mul iplaye ideo game UCM
la conexión con MongoDB, de o ma que cambia la base de da os de ca a a posibles
modi icaciones ue a ela i amen e sencillo.
Siendo mi p ime a in oducción a es os concep os, equi ió a ios in en os ap ende y
o ganiza lo odo de o ma adecuada, ajus ando los se icios y la ges ión de códigos de
e o es, pe o al inal log é e mina lo y p oba lo con la ayuda de Pablo Ga cía G ossi,
que había diseñado un sis ema pa a ealiza p uebas de es és sob e los dis in os se i-
cios. También me enca gué de me e a ios ni eles de segu idad con igu ables: emplea
el se ido en h ps, y emplea un sis ema de okens de au en icación pa a e i ica la
iden idad de un clien e sin necesidad de en ia los c edenciales cons an emen e. Todo
es e abajo culminó en los se ido es ac uales.
C eados los se ido es, la siguien e a ea ue ealiza la conexión en e Uni y y es os.
Es a a ea ue más complicada que la an e io , ya que C# no posee la lexibilidad de
Ja aSc ip , con la cual con é a la ho a de mon a el sis ema de espues as. Fue necesa io
c ea clases que pudie an se ializa se y dese ializa se aco de a los da os ecibidos de los
se ido es, además de ges iona los e o es que pudie an su gi en o ma de pan allas de
e o gene adas po el p opio juego.
Una ez implemen ado, ue impe a i o p oba es os sis emas en un ambien e más ealis a,
po lo que José Ma ín Se ano se o eció pa a ejecu a los se ido es desde su p opio
o denado de o ma que pudié amos juga lo y p oba que odo uncionaba de o ma
adecuada. Es o, lógicamen e, sacó a la luz a ios p oblemas que no habíamos enido en
cuen a, y si bien la mayo ía se debían al p opio juego algunos ambién ecaían sob e los
se ido es. Así pues, dedicamos un pa de a des a soluciona y puli es os e o es pa a,
al inal, log a que an o el juego como los se ido es unciona an sin ningún ipo de
p oblema.
Apa e de los se ido es ambién me enca gué del edac ado de la memo ia, siendo el más
amilia izado con los sis emas in e nos de los se ido es, además de se el único in eg an e
que no con aba con asigna u as op a i as el segundo cua imes e (y po an o, el que
con aba con más iempo lib e). Es o incluye además es udia LaTeX (y TeFlonX, la
plan illa que es amos empleando aho a mismo) de o ma que luego pudie a ayuda a mis
compañe os con dudas de o ma más ápida.
Po úl imo, nue amen e debido a que es e segundo cua imes e con aba con más iempo
lib e que el es o, me dediqué a o ece ayuda a mis compañe os en sus espec i as a eas,
además de e isa código y memo ia en busca de posibles e o es.
Ignacio O y Alonso:
Siguiendo un o den c onólogico, como ya han comen ado algunos de mis compañe os,
empezamos es e abajo in es igando y buscando odo ipo de in o mación sob e sis-
emas de pa idas mul ijugado , de o ma gené ica en un p ime momen o pa a luego
p o undiza en odo lo ela i o al sis ema de ma chmaking. En es e sen ido, yo me he
cen ado p incipalmen e en odo lo ela i o al Es ado del A e, con di e en es écnicas y
endencias elacionadas con las pa idas mul ijugado en di e en es juegos. Es o incluye
écnicas pa a ap o echa el compo amien o psicológico de los jugado es en elación al
p oceso de empa ejamien o (po ejemplo, que se ean ecompensados incluso aun cuando
pie den), así como elemen os p opiamen e ex e nos al p opio sis ema de empa ejamien o,
con mé odos empleados pa a que la espe a en e pa idas se haga más amena, po ejem-
89

G ado en Desa ollo de Videojuegos Facul ad de In o má ica
plo), así como espec o a los di e en es sis emas empleados en di e en es p oyec os, an o
en ocados al empa ejamien o indi idual (como Elo o Glicko) así como aquellos diseñados
de o ma exp esa pa a empa ejamien os po equipos.
A la pa que lle ábamos a cabo es e p oceso, íbamos c eando ambién un juego o iginal
c eado exp esamen e pa a se empleado como p ueba de uso pa a el sis ema de ma ch-
making a desa olla . Es e ha sido uno de los elemen os en los que más me he implicado
a ni el de desa ollo como al, an o a ni el de diseño, incluyendo di e en es mecánicas,
como los p opios pe sonaje, cada uno con un a ma y habilidad di e en e, así como la
es uc u a del mapa pa a da luga al es ilo de juego ené ico que buscábamos. Pasan-
do al e eno de la implemen ación, además de algunas de las habilidades p e iamen e
mencionadas, me he enca gado del sis ema de menús e in e az, además de añadi un
modo de p ác ica como he amien a an o pa a que los jugado es pudie an p oba los
pe sonajes en un en o no elajado, además de se i nos a ni el de desa ollo como ía
pa a comp oba que odos los nue os elemen os uncionaban de la mane a espe ada (y
pode balancea algunos aspec os de ca a al modo mul ijugado ).
Den o del apa ado de la in e az, ambién he pa icipado en p uebas con di e en es
usua ios ex e nos al desa ollo del p oyec o de ca a a asegu a que odos los elemen os
se pe cibían de la mane a deseada (en é minos de cla idad y amaño, pa a se su i-
cien emen e isibles pa a ansmi i la in o mación necesa ia, pe o sin ampoco llega a
agobia o moles a al jugado ), con los consiguien es análisis de comen a ios y opiniones
pa a sol en a algunos e o es de ec ados.
De la misma o ma, ambién me he enca gado de la adap ación e inclusión de di e en es
he amien as y plugins: Uni y Localiza ion pa a pode aduci y localiza el juego de
o ma p ác icamen e au omá ica (de ca a a pode amplia la base de usua ios po encial
que pudie a pa icipa en la ase de p uebas) haciendo uso de ablas de equi alencia
en e idiomas, FMOD pa a lo ela i o al sis ema de sonido, incluyendo la c eación de
e en os y bancos de sonidos con la he amien a complemen a ia FMOD S udio, así como
la in eg ación inicial de Mi o , plugin que hemos empleado pa a simpli ica la ges ión
de se ido es y clien es de Uni y pa a odo lo ela i o al co ec o uncionamien o del
juego.
Aunque no he llegado a en a de mane a an p o unda en la codi icación los sis emas de
se ido es y ma chmaking como sí han hecho algunos de mis compañe os, pa icipé jun o
al es o en el diseño gene al de nues o p opio sis ema de ma chmaking, lo cual incluía,
además de la elección de un elemen o base sob e la que abaja , oma decisiones de
diseño ace ca del peso de cada pa áme o en nues o ejemplo de uso (que son el esul ado
de cada onda, y el iempo de du ación de la misma) in en ando a la pa que ue a odo
lo pa ame izable posible, de ca a a un hipo é ico uso en o os p oyec os, sin que die a
luga a p oblemas es uc u ales de po si) y espec o a elemen os ex e nos que pueden
in lui an o en la expe iencia de juego como en el p oceso de empa ejamien o, como
son las desconexiones in encionadas (o in olun a ias) en medio de las pa idas, omando
como e e encia c i e ios u ilizados po juegos como League o Legends pa a equilib a el
cas igo a jugado es que in en an abusa del sis ema, pe o sin llega a pe judica en exceso
a aquellos que puedan su i un pe cance écnico de mane a pun ual.
Al ma gen de es o, de ca a a la elabo ación de la memo ia, he pa icipado en la edacción,
en meno o mayo medida, de p ác icamen e odos los capí ulos de la misma, además de
90
Ma chmaking sys em o a mul iplaye ideo game UCM
da le o ma o e i haciendo e isiones pe iódicas pa a sol en a di e encias de es ilo o
pequeñas e a as.
91
Índice de igu as
2.1. Función sigmoide desc i a po la ó mula 2.1 El eje 𝑦 ep esen a la p edic-
ción en e 0 y 1, y el eje 𝑥 ep esen a la di e encia de pun uaciones en e
los jugado es 𝑎y𝑏.............................. 12
3.1. Esquema de la a qui ec u a de un sis ema de ma chmaking, basado en el
desc i o en “Da a Analy ics Applica ions in Gaming and En e ainmen ”[19] 20
3.2. Esquema del p oceso de ma chmaking is o po el clien e. Se ealizan dos
comp obaciones: si le ha encon ado i al y si el i al ha sido empa ejado
con él. Las lechas bidi eccionales ep esen an espues as que no necesi an
p ocesado.................................... 21
3.3. Esquema del p oceso de ma chmaking is o po el se ido . . . . . . . . 22
4.1. Esquema de se ido es . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
4.2. G á ica que ep esen a las pun uaciones gene adas median e dis ibución
no mal. El eje X ep esen a angos de pun uaciones, el eje Y ep esen a la
p opo ción de elemen os en ese ango con espec o al o al. . . . . . . . . 36
4.3. G á ica que ep esen a las des iaciones gene adas median e dis ibución
no mal. El eje X ep esen a angos de des iaciones, el eje Y ep esen a la
p opo ción de elemen os en ese ango con espec o al o al. . . . . . . . . 36
4.4. Ejemplo del documen o de un jugado simulado en la base de da os. . . . 36
4.5. Ejemplo de la ac ualización de un jugado . T as es de o as, se puede
obse a la pun uación disminuyendo, y al se su p ime a ac ualización
ambién disminuye su des iación. . . . . . . . . . . . . . . . . . . . . . . 38
5.1. Logo del juego TeFeGe . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
5.2. El obje i o de es a p egun a e a de e mina el in e és del público alcanzado. 43
5.3. En es a p egun a pedimos a los encues ados que o dena an es pla a o -
mas según su p e e encia: And oid, Web y PC. . . . . . . . . . . . . . . . 44
5.4. F en e a la posibilidad de plan ea un desa ollo pa a And oid, e a nece-
sa io conoce cómo de impo an e se ía subi el juego a la Google Play
S o e. ..................................... 44
5.5. En caso de plan ea un desa ollo pa a Web, es necesa io conoce la e-
cuencia con la que juga án los usua ios. . . . . . . . . . . . . . . . . . . . 44
5.6. Es a p egun a in o ma sob e el mé odo de con ol p e e ido po el público. 45
5.7. Nuclea Th one................................ 45
5.8. En e TheGungeon.............................. 46
5.9. B awlS a s .................................. 46
5.10. Ejemplo de la in e az del pe sonaje. . . . . . . . . . . . . . . . . . . . . 47
93

Capí ulo 9
In oduc ion
9.1. Mo i a ion
In he pas ew yea s, he o ma o online mul iplaye ideo games has become e y
popula , and a lo o games ha e adap ed in o de o o e an online expe ience whe e
use s can measu e hei skills agains o he playe s. To his end, he e ha e been a many
di e en a emp s a designing, imp o ing o expanding ma chmaking sys ems (which
pai playe s) and classi ica ion sys ems (which classi y playe s) bo h in adi ional games
[1, 2, 3, 4] and online mul iplaye ideo games [5, 6, 7, 8, 9, 10, 11, 12].
One o he main challenges when looking o achie e a pleasan and un compe i i e
en i onmen o use s is o make ma chmaking sys ems ha allow playe s o ace o he s
wi h a simila le el o skill, o e ing a challenge sui able o hei own abili ies.
Due o his, a lo o s udies and app oaches ela ed o ma chmaking in mul iplaye ideo
games ha e a isen (de ailed in sec ion 2 Es ado Del A e), specially hose whose main
conce n is o o e a compe i i e expe ience. The as majo i y o hem a e c ea ed unde
he p emise ha each playe possesses a ce ain le el o skill which is ep esen ed as a
nume ical alue, o a ing. Colloquially known as Elo, e e encing he Elo sys em used
o pai playe s in chess which was slowly in oduced in o ideo games as a simple way o
pai online playe s. Slowly, new sys ems de i ed om Elo ha e su aced ha o e a mo e
in-dep h solu ion.
These sys ems ha e he main objec i e o es ablishing a way o measu e playe s’ ap i udes
conside ing di e en ac o s (such as he esul o a game o di e en beha iou s o ac ions
ha migh ha e aken place du ing he compe i ion). These ac o s hen allow he sys em
o ma ch hose playe s whose skills a e be e in he scope o a ce ain ideo game o
spo .
The e a e se e al design philosophies ha o e mul iple op ions when i comes o de e-
loping ma chmaking sys ems, all o which a e de i ed om he ones o iginally used in
chess. Mos o hese ex end he Elo sys em in o de o ob ain a mo e p ecise a ing and
and mo e p ecise pai ings. The main issue is ha hese implemen a ions a e no easily
accessible, ei he due o lack o open sou ce code ha is easy o euse, o due o he
complexi y o his opic. Thus, ou mo i a ion is o c ea e a sys em ha can be easily
101
G ado en Desa ollo de Videojuegos Facul ad de In o má ica
scaled and adap ed o he needs o a speci ic game and can be adjus ed as he de elope
needs.
9.2. Objec i es
Ou main objec i e is o design and de elop a ma chmaking sys em ha can be imple-
men ed in o an online ideo game. This sys em will wo k h ough a se e wi h access o
a use da abase and will use his in o ma ion in o de o make he pai ings. Sepa a ely,
i should be possible o upda e he a ing o each o hem acco ding o hei pe o mance
in p e ious games.
To design his sys em, we will s udy al eady exis ing sys ems ha a e al eady in use,
so we can design ou s om a s able ounda ion. We will also s udy di e en me hods o
a ing playe s, as his is an impo an pa o pai ing hem oge he .
We will also de elop an online mul iplaye ideo game o es his ma chmaking sys em,
as well as any o he es s we migh need o pe o m. This game will also be used in a ious
es s wi h eal playe s o de e mine i s pe o mance and quali y.
As an addi ional goal, we also wan o design his sys em in a way ha allows i o be
adap ed and used in any kind o online ideogame.
9.3. Wo k plan
Fo he de elopmen o his p ojec we will in e nally, and wi h ce ain libe ies, employ
Sc um as a amewo k, di iding wo k in o i ems ha can be mo e easily dis ibu ed
acco ding o a ailabili y, capaci y and knowledge.
To moni o p og ess we will ha e weekly mee ings o adap ou asks and es ablish new
goals. We ha e al eady used his amewo k in mul iple subjec s h oughou ou ca ee
wi h sa is ac o y esul s.
We will o ganise mee ings wi h ou u o s in o de o es ablish he di e en le els o
p io i y o ou pending asks, as well as o ask ques ions and que ies o a mo e echnical
na u e.
Fi s ly we will in es iga e di e en ma chmaking sys ems al eady used in o he ideo
games o use hem as an example o ollow when implemen ing ou own. A e wa ds,
we will design he basic a chi ec u e o his ma chmaking sys em, keeping in mind any
es ic ions ha may need o be applied depending on i s ocus. Once designed, his
a chi ec u e will be implemen ed, along wi h he connec ion be ween clien s and se e .
Fu he mo e, we will es his a chi ec u e in sea ch o e o , simula ing connec ions
be ween clien s and obse ing hey p oceed p ope ly.
Finally, e en hough i is no he main ocus o his p ojec , we will need o de elop a
ideogame as a use case, wi h he objec i e o using i o es he ma chmaking sys em.
Tes s wi h eal use s will be ca ied ou h ough his game, allowing hem o play eely
so as o s udy he sys em’s pe o mance and he da a collec ed om hese playe s.
102
Ma chmaking sys em o a mul iplaye ideo game UCM
9.4. Documen s uc u e
Chap e 2 Es ado Del A e de ails ou in es iga ion in o ma chmaking sys ems and he
conclusions d awn om hem, along wi h ou decisions as o which sys ems use as an
example and implemen . The design o ou sys em is explo ed in chap e 3 Diseño del
sis ema de ma chmaking. Chap e 4 Implemen ación ocuses on he implemen a ion o
his sys em, and he ini ial es s ca ied ou wi h i .
The game design documen o ou game can be ound in chap e 5 Caso de es udio, and
he es s ca ied ou wi h i a e de ailed in chap e 6 P ueba con usua ios.
URLs o he eposi o ies used o his p ojec :
Gene al eposi o y, which con ains he es as submodules:
• h ps://gi hub.com/Ho acioS udios/TFG
Ma chmaking Se e :
• h ps://gi hub.com/Ho acioS udios/Ma chmaking-Se e
Ra ing upda e sys em:
• h ps://gi hub.com/Ho acioS udios/Ranking-Upda e
Game se e con olle :
• h ps://gi hub.com/Ho acioS udios/Con olSe ido esTeFeGe
Game:
• h ps://gi hub.com/Ho acioS udios/TeFeGe
Dynamic lib a y o connec ing he game and he se e s:
• h ps://gi hub.com/Ho acioS udios/Clien Communica ion
Da abase connec ion:
• h ps://gi hub.com/Ho acioS udios/MongoJS
103
Capí ulo 10
Conclusions and Fu u e Wo k
The main objec i e o his p ojec has been o design and de elop a wo king ma chmaking
sys em wi h a se o es ic ions, which could hen be implemen ed o an online ideo-
game wi h hese same es ic ions. We belie e we ha e achie ed his: he sys em wo ks
h ough a se e , independen om he ac ual ideo game, wi h access o a da abase
whe e use s’ da a is s o ed and can be u ilised o answe ma chmaking pe i ions, pai ing
online playe s in a balanced ashion, while also accoun ing o he ime hey may ha e
spen sea ching o a ma ch, b oadening he sea ch acco dingly. In a sepa a e se e he
use s’ a ings a e upda ed acco ding o hei pe o mance in-game.
Fo his, we ha e s udied se e al ma chmaking sys ems o lea n how hey’ e s uc u ed,
and hen s udied di e en a ing sys ems un il we ound he one ha would be easies
o implemen , adap and expand: Glicko. Howe e , his p ojec is designed in such a way
ha de elope s can change his a ing sys em a will, p o ided hey edi he ele an
code.
To pu o h and es his p ojec we ha e de eloped an online mul iplaye ideo game
whe e we could implemen ou ma chmaking sys em, and i is his game ha we ha e
used o es he sys em wi h eal use s. A dynamic lib a y ha could handle connec ions
be ween he ma chmaking se e and he clien was also de eloped and, despi e a emp s
o make i comple ely gene ic and applicable o any game o p ojec , we ha en’ been
able o ix he issue p esen ed by how JSON objec s a e handled in C#.
In essence, his lib a y is almos comple ely independen om ou game and could heo-
e ically be used in any o he , bu in he case ha a de elope wan ed o change he
in o ma ion sen a he end o a ma ch hey would need o edi a single class om his
lib a y, he one ha is hen se ialised in o a JSON objec o hen send he ma ch da a
o he da abase, due o es ic ions imposed by C#.
S ill, we o e a gene ic e sion o his lib a y ha only sends he minimum equi ed ma ch
da a ( esul s and du a ion o each ound, an opponen ’s id and he ma ch’s id), and his
e sion can indeed be implemen ed in o any game ha mee s he ma chmaking sys em’s
equi emen s. We also o e inside he ma chmaking se e he op ion o ede ining a
unc ion o allow he p ocessing ma ch da a be o e i is sen o he da abase, in case his
da a needs o be analysed in some way.
105

G ado en Desa ollo de Videojuegos Facul ad de In o má ica
10.1. Fu u e Wo k
Al hough we a e sa is ied wi h how we ha e managed o comple e he objec i es se
o his p ojec , he e s ill exis ce ain a eas whe e he sys em can be imp o ed o
expanded.
Fi s ly, one o he mo e in e es ing challenges would be o include he op ion o pai
use s by eams. Al hough his is a p ocess ha could be done in a simpli ied ashion ( i s
c ea ing a eam and hen pai ing hose eams), his me hod would no ake in o accoun
a iables such as di e en deg ees o skill, playe s choosing o play oge he , o many
o he ac o s ha play in o he p ope o ma ion o a eam.
We sugges he inclusion o a se o p ede ined oles o plays yles which could hen ac o
in o he pai ing sys em: many games allow playe s o de ine (o assign o he playe s
au oma ically) hei p e e ed plays yles, be i in e ms o class (suppo , a ack, de ence)
o plays yles (agg essi e, de ensi e, s eal hy, e ce e a). These ac o s a e hen aken in o
accoun when pai ing playe s in he same eam so hey complemen eacho he , o playe s
wi h opposing plays yles so hey compe e.
Secondly, one also adjus he de aul pa ame e s used o calcula e a ings, which a he
momen only include he esul s o a ound o ma ch. We ha e no included any o he
paa me e s so as o keep he sys em gene ic.
One could include new pa ame e s like accu acy o he amoun o damage deal du ing a
ound, da a which is al eady collec ed om he game. This da a could be used o e lec
a playe ’s abili y mo e accu a ely and, o ie in o he las pa , i could help gene a e
playe p o iles ha could ac o in o pai ing a eam wi h playe s ha would complemen
eacho he , making he game no jus ai in e ms o aw skill, bu also when playing
wi h unknown playe s. ANo he pa ame e o in e es would be he du a ion o a ound
o ma ch, which could be used o ewa d playe s which manage o win in a quick ashion
and o lowe he punishmen o a loss in he case ha a playe manages o su i e o a
long ime.
When i comes o he mo e echnical aspec s, and hanks o he esul s ob ained om
ca ying ou es s wi h eal use s, we ha e lea ned ha he compu a ion o each ound’s
esul indi idually gene a es an impo an change in how a ings and de ia ions e ol e
o e ime. Simila ly, we ha e also de ec ed ha he de aul alues o e ed by Glicko could
be al e ed, specially when i comed o de ia ions.
As we canno eliably ecalcula e all a ings o ac o in changed o new alues, we mus
ins ead ecommend ca ying ou mo e es ing sessions o p ope ly s udy hese chan-
ges.
In he case ha a eliable and ac i e use base can be es ablished, ano he possible ex-
pansion would be o upg ade he sys em we cu en ly use o i s successo , Glicko-2, an
expanded e sion ha includes a pa ame e ep esen ing a ing ola ili y. This sys em
could be easily upg aded, as i al eady o e s a way o gene a e new Glicko-2 a ings om
egula Glicko a ings.
Las ly, we decided o design his sys em in a way such ha i would be independen
om ou game. Fo his pu pose we ha e designed a dynamic lib a y which handles
communica ion be ween clien and se e . Howe e , when i comes o sending da a o
106
Ma chmaking sys em o a mul iplaye ideo game UCM
he da abase, C# equi es speci ying a o ma o his da a, while he se e s and he
da abase a e designed o allow o lexibili y in his o ma . We ha e de eloped a e sion
o his lib a y ha only sends he minimum necessa y da a, and ano he ha adap s
o ou game’s needs. I is impo an o poin ou ha his dynamic lib a y is he only
obs acle p e en ing his sys em om being comple ely gene ic when used wi h C#, and
we ha e been able o es his gene ici y wi h languages ha allow sending da a wi h a
lexible o ma .
Thus, i would be in e es ing o ind a way o al e his dependency on he game and es
ha his ma chmaking sys em can be applied o di e en games made in C# wi hou
he need o modi y his lib a y, while also o e ing he lexibili y we wan ed o o e om
he ge -go. This should ake in o accoun any game, be hey simila o ou s o o di e en
gen es, as long as hey sha e he es ic ion o 1 s. 1 ma ches. in
107