Inline Games
A Telegram bot that provides real-time multiplayer games that can be played in any chat.
You can see the bot in action by messaging @inlinegamesbot.
Currently available games:
- Tic-Tac-Toe
- Tic-Tac-Four (@DO97)
- Elephant XO (@DO97)
- Connect Four
- Rock-Paper-Scissors
- Rock-Paper-Scissors-Lizard-Spock (@DO97)
- Russian Roulette
- Checkers
- Pool Checkers
Deploying
Heroku
Instructions
Use this button to begin deployment:
[![Deploy](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy?template=https://github.com/jacklul/inlinegamesbot)
Assuming everything was entered correctly your bot should be instantly working - if it's not you should try running `php bin/console post-install` inside the app.
You will also want to add **Heroku Scheduler** addon and set up a hourly task to run the following command to clean up expired games from the database:
- `php bin/console cron`
_If this command times out too fast try using something like this instead: `php -d max_execution_time=2700 bin/console cron`_
Google Cloud Platform
Instructions
- Install dependencies with `composer install`
- Copy `env_variables.example.yaml` into `env_variables.yaml` and fill out the details
- Run the deployment command: `gcloud app deploy --project YOUR-PROJECT-NAME-HERE app.yaml cron.yaml`
- Visit `https://YOUR-PROJECT-NAME-HERE.appspot.com/admin?a=post-install` to perform post-install tasks
Fly.io
Instructions
- `flyctl apps create`
- `flyctl volumes create data --size=1`
- `flyctl secrets set BOT_TOKEN=`
- `flyctl secrets set BOT_USERNAME=`
- `flyctl secrets set BOT_WEBHOOK=YOUR-APP-NAME.fly.dev`
- `flyctl secrets set BOT_SECRET=`
- If you want to use web+worker setup you have to replace `web:` line in `Procfile`
- `flyctl deploy`
Note on translations
Translations support is implemented but it is not used mainly because translated text would be displayed to both players - this could be problematic in "gaming" groups - people setting language that other player can't understand!
Contributing
See CONTRIBUTING for more information.
License
See LICENSE.