scieee Open visual document viewer

Sistema de matchmaking para un videojuego multijugador

Martín Serrano, José; García Grossi, Pablo; Arias González, Javier; Ory Alonso, Ignacio

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.

Full text

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