Microsoft Teams Dice App

Microsoft Teams is taking the world by storm with over 115 million daily active users (as of 2020). I decided it would be fun to build my very own Microsoft Teams app! Call it a COVID-19 side project.

Looking around it seems most Teams apps are geared towards business use cases. Where's the fun in that? I thought it was time to bring a little fun to Teams so I built a dice rolling app!

However, I took it a step further...I built something much more than a simple dice rolling bot. I really pushed the limits of the Microsoft Teams platform, the Bot Development Framework and Adaptive Cards to build an app capable of multiplayer interactive dice games completely inside of Teams! Basically I put Adaptive Cards and Bots on steriods to turn them into mini-applications that run inside of Teams. I used a number of creative and innovative techniques that I beleive are the first of their kind for a Teams app.

I started with a couple of well known dice games: "Pig" and "Midnight". I may add more games like "Poker Dice" (if I can find the time).
I also built a generic dice rolling game board and called it "Open Play". This is a flexible game board designed to allow a group of people to play any game that requires dice rolling.


Get the App

After a month long conversation with Microsoft to get the Dice App published into official Microsoft Teams App Store (called "AppSource"), it turns out they are not currently accepting apps with gaming functionality. Therefore, I’ve decided to distribute the Dice App directly from my website.

All you need to do is:


How to use the App

Overview

The Dice App for Microsoft Teams is a fun and versatile app that brings dice rolling and interactive games to Teams! Roll dice using dice notation. Play multiplayer dice games in a team or group chat with the power of interactive game boards that work completely within your chat!
It offers several features depending on your needs:

Note: The Dice app is designed to be used in a team or group chat context. It is not designed for the personal context or playing games vs. a bot.

The app supports three commands:

To invoke the Dice app, you need to "at mention" it using @Dice.
Examples:


Roll Command

The 'roll' command can be used to instruct the app to roll any dice based on dice notation.
The app will respond with a card showing the rolled dice. Also, the card has a button that allows any person in the team/group chat to roll again using the same dice notation.

Roll Command Examples: The app supports rolling up to 25 dice with up to 100 sides. The max modifier is +/-100000.

Here's an example card in response to @Dice roll 4d6
Here's an example card in response to @Dice roll 6d12-8

Play Command

The 'play' command can be used to instruct the app to start an interactive game.
Here's an example card in response to @Dice play

When starting the "Open Play" game, the app will go straight to the Open Play game board card. Since it is an "open" game, anyone in the team/group chat can interact with the card to participate in the game. There's no need to explicitly join the game.

For the Pig and Midnight games however, the app will need to control the game play. For example, the app controls player turn, ensures only the current player can click buttons, keeps track of score and chips, etc. For these games, the app must collect the list of players before constructing the game board and starting the game. Therefore you'll first see the "Join Game" card when starting these games. Anyone in the team/group chat can click the "Join" button to join the game. As people join, the "Join Game" card will automatically update with the list of players.

The person who originally started the game via the play command will be known as the "Game Manager". The Game Manager takes on the responsibility of "running" the game by having access to buttons that show up under the "Game Manager" section on various game cards.

For example, the Game Manager is responsible for clicking the "Start Game" button in the "Join Game" card once he/she is happy with the list of joined players.

Note that other players can see the buttons under the Game Manager section, but only the Game Manager can invoke action by clicking them. The Game Manager concept is necessary since everyone in a team/group chat can see the card, but the app needs to prevent multiple people from clicking buttons at the same time. So in a way, it's an approach to ensure buttons like "Start Game" is only clicked once. Also, it prevents a rouge player from clicking the "Delete" button if they're losing!

The "Delete" button completely deletes the card from the chat stream. It could be useful if you want to clean up your chat stream, or hide the fact that you're playing games while on the job from your boss!

Open Play

Open Play is flexible dice rolling game board designed to allow a group of people to play any game that requires dice rolling. For example, you could play Dungeons and Dragons, Yahtzee or Farkle dice games. Unlike the other games boards like Pig and Midnight, the Open Play game board doesn't enforce any rules but rather simply tracks a history of dice rolls. There are no constraints on who rolls, how many times a player rolls, how many dice can be rolled or the number of sides on the dice. Each roll can be customized, including selecting the number of dice, the number of sides, and the option of adding a total modifier. Open Play requires the players to coordinate who's turn it is as it does not protect against multiple players trying to roll at the same time. It also requires the players to keep track of game info (e.g. score, etc).

Note: You can also use the bot "roll" command to roll dice based on dice notation.

Open Play Game Board Screenshot



Pig

Objective

The object of the game is to score 100 points before your opponents. The Pig dice game comes from family of jeopardy dice games. Players are allowed to go for bigger gains by taking a risk which also can result in not making any gain at all!

Game Play

A player begins play by rolling two dice. After each roll the dice value is added to their score for that turn. After each roll the player can decide whether to stop rolling and claim the total turn score or continue rolling.

Winning

The first player to score 100 points wins the game.

Pig Game Board Screenshot



Midnight

Objective

The object of the game is to win the pot of chips by rolling the highest score compared to the other players. Players must roll a 1 and a 4 in order score. With a 1 and a 4, a player’s score is the total amount on the remaining four dice. The best score possible is 24 (all four dice are 6's).

Game Play

Each players starts the game with 3 chips and must ante 1 chip to in order to play each round. A player is out of the game when out of chips. A player begins play by rolling all six dice. After a roll, the player must keep at least one die but can keep more if wanted. After deciding the dice to keep, a player will roll the other dice. Again, a player must keep at least one die after a roll but can keep more. Once a player has kept all six dice, the player's score is calculated and recorded. Play moves to the next player who will begin by rolling all six dice.

Winning

The player with the highest score after all players have had their turn wins the round and all the chips in the pot. Rounds will continue until one player collects all the chips and wins the game!

Rules

The qualifying dice of 1 and 4 can be rolled and kept at any time during your turn. They do not need to be rolled and kept before the scoring dice. If the qualifying dice of 1 and 4 are not rolled by the end of a player’s turn, the player scores zero. Once a dice is kept it cannot be rolled again during that turn.

Midnight Game Board Screenshot



Help and Support

I've made this free to avoid creating a sense of obligation that I'll provide support. I don't guarentee it will work in every scenario or that I'll provide support when it doesn't work. With that said, if you do have a problem that you think I can help with shoot me an email and I'll reply if I can.

Also note that it cost money to run the web services to power the app. I pay for this myself...in other words, this is a money losing venture. Don't expect miracles or assume I'm getting rich off of this. I do accept donations which help offset the many hours put towards building, improving and supporting this software.


I can be reached at my support email address: support@gaiersoftware.com
Also see the Dice App Terms of Use

Release History


  1. Version 1.0 - 01/22/2021 - Initial Release