Skip to content

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ICPUNO

ICPUNO is a decentralized, multiplayer UNO card game built on the Internet Computer (ICP), featuring a Rust-based backend and a modern frontend using Next.js and Tailwind CSS. With Internet Identity for secure authentication, ICPUNO provides a seamless, decentralized gaming experience entirely hosted on ICP. [Demo vide

Overview

ICPUNO brings the classic UNO card game to the decentralized web, utilizing the Internet Computer (ICP) for both backend and frontend components. This setup ensures high performance, scalability, and a user-friendly interface. Authentication is managed through Internet Identity, enabling secure, password-free login.

Watch the demo video

Key Technologies

  • Backend: Rust for high performance and reliability.
  • Frontend: Next.js and Tailwind CSS for a modern, responsive UI.
  • Authentication: Internet Identity, providing secure, decentralized login.

Technical Breakdown

Contracts

Game logic for card dealing, turn management, and action validation is handled through canisters written in Rust on ICP blockchain. Key aspects of this setup include:

  • Publicly Verifiable: All moves are visible on-chain, allowing players to verify game integrity.
  • Immutable: Game rules are tamper-proof once deployed.
  • Secure: Cryptographic security ensures each move and game state update is protected.

Game State Management

The game's state (player turns, remaining cards, state transitions) is fully managed on-chain, ensuring:

  • Consistency: Synchronized updates across all players.
  • Transparency: Real-time game progress visibility via blockchain queries.
  • Reliability: Decentralized management with no single point of failure.

Action Validation and Commit-Reveal Mechanism

To maintain fairness, critical actions (e.g., playing a card) follow a commit-reveal process:

  1. Commit Phase: Players submit a hashed version of their move, concealing it from others.
  2. Reveal Phase: After all players commit, they reveal their actions, verified against the original hashes.

This ensures no player can change their move based on others' actions, upholding fairness.

Privacy Layer

Sensitive information like player hands and deck state is protected through encryption:

  • Encryption: Only relevant players can view their private data.
  • Privacy-Preserving Elements: Sensitive information is managed off-chain while maintaining game integrity with cryptographic proofs.

Deck Shuffling and Cryptographic Operations

Deck handling relies on cryptographic operations to ensure fairness and randomness:

  • Deck Shuffling: Cryptographic algorithms guarantee a fair shuffle.
  • Card Draws: Drawn cards are individually decrypted for players, keeping remaining cards secure.

State Reconstruction and Verification

Private elements (like player hands) remain hidden, but the overall game state is verifiable through:

  • Cryptographic Commitments: Game state is reconstructed via commitments, letting players verify moves without exposing sensitive data.
  • Fairness Assurance: This system prevents cheating while safeguarding player privacy.

Frontend

The frontend employs an optimistic rollup architecture for efficiency:

  • Chain Interaction: The Game UI batches on-chain transactions, periodically sending them to enhance performance.
  • Optimistic Rollup Approach: This design speeds up game actions and improves transaction efficiency.

Why ICP for a Card Game like UNO?

ICP provides an ideal platform for ICPUNO due to its unique features:

  • Scalability: ICP’s canister model allows for scalable state management and concurrent game handling.
  • Security: Native authentication and decentralized structure offer enhanced privacy.
  • Cost Efficiency: Hosting frontend and backend on ICP reduces server costs.
  • Developer Experience: ICP supports complex logic development, such as card shuffling and state synchronization, with tools like Rust.

Benefits to the ICP Ecosystem

ICPUNO highlights the potential of the Internet Computer as a gaming platform:

  • Demonstrates Flexibility: Building a game like UNO illustrates ICP's versatility beyond traditional web apps.
  • Showcases Decentralized Gaming: A model for developing decentralized games with optimal performance and user experience.
  • Encourages Adoption: Familiar games like UNO can introduce users to the advantages of the ICP ecosystem.
  • Ecosystem Growth: Showcases ICP’s strengths for complex applications, encouraging innovation in decentralized gaming.

Roadmap

  • Integrate Websockets Canister: Enhance real-time gameplay with WebSocket support.
  • Improve Transaction Rollup Adherence: Refine transaction efficiency and bundling.
  • Implement Dispute Resolution: Add mechanisms for handling disputes.
  • Integrate ICP Tokens: Introduce ICP token functionality for in-game transactions.
  • Build a Leaderboard: Track player progress and top scores.

Enjoy a secure, fair, and engaging game of UNO with ICPUNO, powered by the Internet Computer! 🎉

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages