Con los compañeros que habitualmente juego al pádel lo días de lluvia ante la imposibilidad de jugar outdoor solemos quedar igualmente y echar alguna partida de mus que es un juego de naipes muy jugado en españa.
El 2020 debido a la pandemia y al consiguiente confinamiento nos encontramos con la imposibilidad de jugar al pádel e intentamos jugar al mus online. Las opciones que existían no nos satisfacían y en una conversación por videoconferencia decidí intentar crear un juego de mus que pudiéramos utilizar los amigos durante las tardes de relajo en el confinamiento.
Un par de conocidos se vieron afectados por el covid-19 y me pareció una manera de que todos saliéramos de ese ambiente plomizo en el que nos encontrábamos (mentalmente hablando).
En el mús existen numerosas variantes de las reglas dependiendo de la zona geográfica donde se juegue. En principio iba a desarrollar la aplicación con las reglas con las que jugábamos habitualmente pero dejando la aplicación abierta en los puntos donde se pueda cambiar alguna regla y así personalizar las partidas. Esto esta aún en fase de desarrollo futuro (cuando haya tiempo). 🙈
Estas reglas del juego se pueden considerar los requisitos de la aplicación.
Otro requisito era que se pudiera jugar en varias mesas virtuales a la vez por si compartíamos partidas con más amigos.
En principio otro requisito importante era vernos las caras y oírnos durante las partidas cosa que de momento solucionábamos via zoom o jitsi
Otra cosa necesaria para incrementar la diversión era añadir algún tipo de sistema para llevar las estadísticas de las partidas y así poder compararnos entre nosotros con los piques oportunos. 🤣
Me planteé hacer un juego para que fuera una webapp usando WebSockets ya que era algo que no había utilizado nunca y así podría aprender algo nuevo mientras creaba la aplicación. Ademas ese tipo de comunicación me parecía adecuada para la aplicación en cuestión.
Para el back-end utilizaría Node.js, como base de datos MongoDB y como lenguaje de programación tanto para el front-end como para el back-end utilizaría TypeScript (TS) ya que el tipado fuerte me recuerda a mi amado C++ y me pone bastante menos nervioso que utilizar vaillaJS. TS se puede transpilar a JS en cualquier versión para conseguir compatibilidad con navegadores antiguos.
La webapp quedaría finalmente debidamente contenerizada en docker y servida en un VPS que tengo contratado para mi uso personal. Del deploy ya hablaré mas adelante.
Si has llegado hasta aquí en la lectura y te gustaría echar una partida algún día, enviame un email a dev AT enredado.net y gustosamente seras invitado a participar y probar la aplicación. De momento no esta abierta al público y es necesario un código de invitación.