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
Log in or sign up for Devpost to join the conversation.