Multiplayer Card Game

Real-Time Multiplayer • Android • Photon PUN2 + Socket.IO • Firebase-Enabled

Unity C# Photon PUN2 Socket.IO Node.js Firebase Auth FCM Push Social Invites Real-Time Multiplayer State Synchronization

Project Overview

Multiplayer Card Game is a real-time online card game built for Android, using Photon PUN2 for room, lobby, and matchmaking, paired with a custom Socket.IO client–server layer for turn-based state synchronization.

The project integrates Firebase Authentication for secure user login, Firebase Cloud Messaging for real-time notifications, and social invite flows to improve player engagement and retention.

My Role & Responsibilities

Engineering & System Design

Client–Server Multiplayer Architecture

The game uses Photon PUN2 for room creation, lobby management, and matchmaking, while a custom Node.js + Socket.IO backend acts as the single source of truth for turn-based game state, ensuring consistency and fairness.

Firebase Authentication & Player Identity

Firebase Authentication was used to provide secure and frictionless login using Google and social providers, allowing players to persist identity across sessions and devices.

Push Notifications & Social Invites

Firebase Cloud Messaging enables push notifications for game events such as match invites, turn reminders, and re-engagement prompts.

Network Optimization

Reduced unnecessary data transmission by sending only essential state updates instead of full game state snapshots on every action.

Challenges & Solutions

Challenge: Secure multiplayer access and identity management

Multiplayer games require trusted player identity to prevent impersonation and abuse.

Solution: Integrated Firebase Authentication and validated authenticated user tokens on the backend before allowing multiplayer actions.

Challenge: Maintaining game state consistency in real-time

With multiple players performing actions concurrently, maintaining a single, authoritative game state was critical.

Solution: Implemented server-authoritative logic where the backend validates every move and emits synchronized events to all clients.

Impact & Results

Media

🎥 Gameplay Video