Inspiración

Queriamos poder jugar a juegos de mesa sencillos mientras hablamos por discord. Además, nunca habiamos programado un juego antes y queriamos aprender a programar a guiado por eventos.

Que hace?

Utiliza la interficie proporcionada por discord para jugar a un juego de cartas llamado "Diamond!" (https://tinyurl.com/y2jlgx56) via un canal de un servidor e interaccionando con el por susurro para que los otros jugadores no sepan tus decisiones.

Como funciona?

Programado en python, dispone de dos procesos independientes: el propio bot que interacciona con los usuarios que es único y el proceso que ejecuta una instancia de la lógica de juego para cada canal. Además, está desplegado en docker e integrado con la plataforma app.buddy.works donde automaticamente se hace un build del docker a cada push.

Desafios encontrados y superados

En python nos ha costado comunicar el bot con los procesos así que al final hemos optado por usar Threads y un dicionario de locks para hacer la ejecucion. También ha sido un reto el programar guiado a eventos y la integración continua con docker.

Aviso

Por bajas médicas, no hemos podido terminar la integracion del motor de juego con la interficie del Bot. El archivo game_engine.py contiene una versión del juego totalmente funcional donde los jugadores podrian introducir las decisiones via cli. El arxivo bot.py contiene todas las funciones necesarias para hacer lobbys del juego y comunicar con el usuario pero solo hemos conseguido integrar la función que inicia el proceso de juego de manera asincrona.

Built With

  • app.buddy
  • discord
  • dockerfile
  • python
Share this project:

Updates