Skip to content
ProgrammerXD edited this page Nov 29, 2023 · 6 revisions

Whispers of Deception - Mute & Pursuit

Overview

Project Name: Whispers of Deception - Mute & Pursuit

Development Tools:

  • IDE: Android Studio
  • Programming Language: Java
  • Backend: Firebase (Authentication and Realtime Database)
  • Voice SDK Agora Voice SDK

Development Duration: 4 Weeks

Description

Whispers of Deception revolutionizes mobile gaming, seamlessly blending voice-based interactions with captivating social deduction gameplay. The app immerses upto 10 players users in a single room with 5 distinctive radio servers, setting the stage for an engaging and dynamic experience.

At its core, one player becomes the imposter, tasked with eliminating others through vocal 'kill PlayerName' declarations. Players strategically navigate between radio servers, utilizing real-time voice chat to decipher the imposter's identity from spoken clues. The game's brilliance extends beyond navigation, fostering alliances, strategic planning, and outsmarting the imposter through voice-based interactions.

Whispers of Deception transforms communication into a survival strategy, creating an immersive environment where players must unravel the imposter's identity. More than a mobile game, it represents a social experiment, intertwining communication, strategy, and deduction to redefine gaming. The user-friendly interface and dynamic voice chat invite players to fully immerse themselves in a world of intriguing deception and deduction, embarking on a suspenseful journey of strategy and camaraderie.

Key Features:

  1. User Signup (playerData.java):

    • Facilitates user signup with a minimum 4-character username requirement.
    • Validates input and checks for internet connectivity.
    • Utilizes Firebase Authentication for seamless anonymous user signup.
  2. Home Screen (home.java):

    • Offers hosting/joining room options and settings modification.
    • Authenticates users via Firebase.
    • Initiates background music through AudioService for an immersive experience.
  3. Room Selection (rooms.java):

    • Displays multiple rooms for user selection.
    • Manages rooms and players using Firebase Realtime Database.
    • Implements token builder (app.java) for generating unique access tokens.
  4. Playground (Playground.java):

    • Represents the core gameplay area.
    • Implements engaging social deduction mechanics with voice chat within 5 radio servers.
  5. Token Builder (app.java):

    • Generates vital voice chat tokens during the room hosting process.
  6. Background Music (audioservice.java):

    • Utilizes Android Service for background execution, enhancing gameplay with seamless music.

Additional Key Features:

  1. Radio Servers:

    • Incorporates five distinct radio servers in all hosted rooms for enhanced navigation and gameplay diversity.
  2. Voice-Based Interactions:

    • Integrates Agora Voice SDK for fluid voice chat functionality.
    • Includes mute and unmute mic buttons, granting players control over their audio.
  3. Social Deduction Mechanics:

    • Implements the imposter's ability to eliminate others through vocal commands.
    • Challenges players to identify the imposter based on voice recognition.
  4. Minimalistic Design:

    • Streamlines the gaming experience.
    • Focuses on radio server navigation, minimizing intricate player movements.

Firebase Integration

  • Authentication:

    • Utilizes Firebase Authentication for user signup.
    • Implements anonymous user signup for a seamless gaming experience.
  • Realtime Database:

    • Manages rooms and player information.
    • Supports dynamic room creation and player interaction.

Project Architecture

Development Timeline

  • Week 1 & 2: Project Setup and Design

    • Setup Android Studio project.
    • Design app layout and UI components and other Game assets.
    • Implement user authentication with Firebase.
  • Week 3 & 4: Gameplay Mechanics and Optimization

    • Develop the core gameplay mechanics.
    • Integrate voice chat functionality.
    • Optimize code for performance.
  • End of Week 4: In-game Role distributions and Project documentation

    • Develop the in-game role mechanics for users (imposter , crewmate & dead).
    • Further optimization of overall project
    • Prepare Documentation.

Source Code

Database Structure

broadcastingInformation //root - 1

├── didImposterLeft: false

└── isEmergencyMeetingTriggered: true

users //root - 2

└── "Player uid"

├── username: "value"

verifyAvailableRooms //root - 3

└── room1

    ├── isRoomStarted: boolean

    ├── players
    │   └── "player uid"
    │       ├── role: "player role"
    │       └── username: "value"
    
    ├── rs (Radio Servers)
    │   ├── rs1
    │   │   └── key: "channel_key_for_agora_voice"
    │   ├── rs2
    │   │   └── key: "channel_key_for_agora_voice"
    │   ├── rs3
    │   │   └── key: "channel_key_for_agora_voice"
    │   ├── rs4
    │   │   └── key: "channel_key_for_agora_voice"
    │   └── rs5
    │       └── key: "channel_key_for_agora_voice"
    │
    └── [nothing]

Conclusion

Whispers of Deception offers an engaging and interactive gaming experience with a focus on voice-based interactions and social deduction gameplay. The combination of Android Studio, Java, Firebase, and Agora Voice SDK ensures a smooth and immersive gaming environment. The project successfully reached completion within a tight timeframe of 4 weeks, delivering a unique and enjoyable gaming app for Android users.

Feel free to explore the source code for more details on the implementation.