Skip to content

Bingo game implemented using Blazor Web Assembly (WASM) and C#. The game uses WebRTC for peer-to-peer communication of up to hundreds of players; no server required!

Notifications You must be signed in to change notification settings

jasonmarckel/BlazorBingo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BlazorBingo

  • Blazor Web Assembly (WASM) / C# / .NET 8.0 / Progressive Web App (PWA)
  • PeerJS is used via JSInterop to establish peer-to-peer communication between the game host and the players. No server required!
  • The Web Speech API and SpeechSynthesisUtterance (text-to-speech) is used to announce the numbers called on the player instances.
  • Platform-native emoji characters are used for stamping the bingo cards.
  • Screen Wake Lock API is used to keep the screen from timing out / turning off on devices that have support for it.
  • Dynamically updates an inline SVG representing the game pattern by binding values from an array of bits (UInt32).
  • GitHub Actions is used to build and publish the Blazor WASM app to GitHub pages.

Play a game at https://jasonmarckel.github.io/BlazorBingo/.

Select 'Host' to start a new Bingo Hall and generate the game code for the session. Enter the game code in the other instances and select 'Join'.

BlazorBingo can be installed/pinned to the homescreen and launched as a full screen PWA web app without the browser's chome around it.

TODO:

  • Add special effects for winner (confetti, fireworks, etc.)
  • Create an app icon!
  • Implement best practice for PWA app to notify that a new version is available and self-update.
    • Currently for an installed/pinned PWA, it must be launched, wait a few seconds, killed, and re-opened for it to detect, install, and use the latest version.
  • Add statistics (games played, games won, minutes/hours/days played).