Git Product home page Git Product logo

jasonmarckel / blazorbingo Goto Github PK

View Code? Open in Web Editor NEW
3.0 1.0 1.0 76.54 MB

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!

Home Page: https://jasonmarckel.github.io/BlazorBingo/

HTML 24.62% CSS 13.51% C# 45.55% JavaScript 16.33%
bingo blazor blazor-webassembly game p2p peer-to-peer peerjs speech-synthesis webrtc-data csharp

blazorbingo's Introduction

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).

blazorbingo's People

Contributors

jasonmarckel avatar lz-jason-marckel avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

Forkers

weektree

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.