← Back to Home

Pls Give

Solana-based 3D multiplayer browser donation game

Problem

Many donation-based games rely on external payment processors or lack engaging social mechanics that incentivize giving. PLS GIVE addresses this by creating a crypto-native, 3D social environment where donations are gamified and transparent. The project explores how social status, visual feedback, and “skin-in-the-game” mechanics can drive generosity in a multiplayer setting.

Role

I served as a Full-Stack Developer and Game Designer, responsible for the end-to-end development of the project. My key contributions included:

  • Game Engine Integration: Implementing the 3D world and player interactions using PlayCanvas.
  • Multiplayer Networking: Architecting the real-time server using Colyseus to handle player movement, booth claiming, and chat.
  • Blockchain Integration: Integrating Solana Wallet Adapter for authentication and Helius RPCs for reliable on-chain transaction posting.
  • Backend Development: Building the API and database schema with Supabase and Cloudflare Workers to manage user data and game state.

Tech Stack

  • Game Engine: PlayCanvas (3D WebGL)
  • Networking: Colyseus (Real-time multiplayer)
  • Blockchain: Solana, Helius (RPCs), Gill (Web3.js replacement), Solana Wallet Adapter
  • Backend: Cloudflare Workers, Supabase (PostgreSQL)
  • Auth: Privy (planned), SIWS (Sign-In With Solana)

Outcome

The project has been highly successful in the Solana ecosystem hackathon circuit:

  • mtnDAO Residency: Selected for residency to iterate on UX and donation flows.
  • OnionDAO Winner: Recognized for innovative integration of Solana Pay and Gill.
  • Colosseum Hackathons: Successfully shipped prototypes and acquired initial users during the hackathon period.

Technical Deep-Dive

Architecture & Incentives

The core technical challenge was bridging the high-frequency updates of a real-time game with the finality of a blockchain.

  1. Hybrid State: Player positions and chat are handled via ephemeral state in Colyseus, while booth ownership and donation history are persisted in Supabase and verified on-chain.
  2. Incentive Design: We brainstormed several mechanisms to drive donations, such as:
    • Visual Feedback: VFX intensity scales with donation amount.
    • Social Signaling: Global announcements for large donations and “verified” status for KOLs.
    • Gamification: Donation streaks and multipliers to encourage continuous activity.
// Example: Handling a donation event (Simplified)
// The client listens for on-chain confirmation via Helius webhooks
// and triggers in-game effects.

// Server-side (Colyseus)
this.onMessage("donation_confirmed", (client, data) => {
  const { amount, donor, recipient } = data;
  
  // Broadcast visual effect to all nearby players
  this.broadcast("play_effect", {
    type: "donation_confetti",
    position: recipient.boothPosition,
    intensity: calculateIntensity(amount)
  });

  // Update leaderboard
  this.state.leaderboard.update(donor, amount);
});