Aplicación web altamente escalable para un xogo de dedución social

Use this link to cite
http://hdl.handle.net/2183/28648
Except where otherwise noted, this item's license is described as Atribución-NoComercial-CompartirIgual 3.0 España
Collections
Metadata
Show full item recordTitle
Aplicación web altamente escalable para un xogo de dedución socialAuthor(s)
Directors
Castro, Laura M.Date
2021Center/Dept./Entity
Enxeñaría informática, Grao enDescription
Traballo fin de grao. Enxeñaría Informática. Curso 2020/021Abstract
[Resumo] A interacción social a través da tecnoloxía está vivindo un grande aumento en usuarios activos, tanto por motivos laborais como de ocio. Porén, entretementos clásicos e “analóxicos”como os xogos de mesa poden atopar o seu lugar neste contexto e acomodar as novas persoasusuarias de xeito máis accesible. Neste proxecto impleméntase unha versión do xogo dededución social Mafia nunha aplicación web.
Mafia é un xogo de dedución social onde os participantes están divididos en dous grupos:o campesiñado e a mafia. A mafia é un subconxunto reducido con coñecemento e habilidadesespeciais, que tenta eliminar ao campesiñado, desinformado malia constituír a maioría. Oxogo transcorre por quendas consecutivas e repetitivas (día e noite), durante as que se realizanun certo número de accións (por exemplo, xulgar a alguén sospeitoso polo día ou eliminarinocentes pola noite).
O produto final deste traballo é unha aplicación desenvolvida en Elixir, que implementaa lóxica do xogo, e unha aplicación web feita usando o marco de desenvolvemento web dalinguaxe, Phoenix. O sistema resultante adapta as regras de Mafia e facilita a creación de partidas para xogar cun grupo de coñecidos, de forma sinxela e sen obstáculos. O seu deseñoestá orientado a conseguir unha alta escalabilidade e tolerancia a fallos. Ademais, faise un usointensivo de probas baseadas en propiedades para conseguir unha validación da lóxica máisexhaustiva da que se podería obter cos métodos de probas máis tradicionais. [Abstract] Technology-enabled social interaction is growing in active users, for reasons both professional and personal. We argue that classic, “analog” entertainment elements such as board games can find their space in this new context and welcome new users in a more accessible way. In this project, we implement a web version of the social deduction game Mafia.
Mafia is a social deduction game where players are divided into two groups: the town and the mafia. The mafia is a small subset with wide knowledge and special abilities, trying to wipe out the uninformed, larger crowd of the town. The game is a sequence of repeating play phases (day and night), during which and a set of different actions can be carried out (such as, putting a player on trial during the day, or removing them during the night).
The end product of this project is an Elixir application that implements the game logic and a web application developed using the Phoenix framework. The resulting product adapts the rules of Mafia and enables a group of players to easily create and run games. System design is focused on high availability and fault tolerance. In addition, we leverage the power of property-based testing to prove the correctness of the game logic to an extent not achievable by more traditional testing methods.
Keywords
Elixir
Phoenix Framework
Aplicación web
Probas baseadas en propiedades
Mafia
Phoenix Framework
Aplicación web
Probas baseadas en propiedades
Mafia
Rights
Atribución-NoComercial-CompartirIgual 3.0 España