Portfolio
Mobile Game / Unity / CasualMobile Gaming / Self-published2025

Fruit Shooter - Mobile Game

A casual 3D mobile game featuring dynamic level progression, monetization pipelines, and player progression tracking.

Project overview

A production-ready casual mobile game with full monetization and progression systems.

Fruit Shooter is a casual 2D mobile game featuring engaging fruit-throwing mechanics and bowl-matching gameplay. Players shoot fruits onto a rotating table with colored bowls, earning points for correct matches and progressing through level-based challenges. The game includes a full monetization pipeline (AdMob ads + in-app purchases), progression tracking with recovery mechanics, and optimized performance for mobile devices.

What it does

A casual 3D mobile game where players shoot/throw fruits onto a rotating table with bowls, matching fruits to colored bowls to score points and complete level-based progression.

Problem solved

Delivers an engaging, easy-to-learn casual game experience with monetization (AdMob ads + IAP), progression systems, and retention mechanics for mobile gamers.

Main goal

Create a production-ready mobile game with full monetization pipeline, player progression, daily rewards, and recovery mechanics for sustainable user engagement.

Tech stack

Practical tools chosen for reliability and speed.

Engine

  • Unity 6 (6000.3.10f1)
  • C# (.NET Standard 2.1)
  • Universal Render Pipeline (URP)
  • Physics 2D

Gameplay

  • Module-based architecture
  • Event-driven communication
  • Singleton pattern
  • State machine (GameManager)

Monetization

  • Google Mobile Ads (AdMob)
  • Banner/Interstitial/Rewarded ads
  • In-app purchases (Shop)
  • Currency system (Coins/Keys)

Progression

  • PlayerProgress system
  • PlayerPrefs persistence
  • Recovery key mechanics
  • Daily ad rewards

UI/UX

  • Unity UI (uGUI)
  • TextMeshPro
  • Level selection map
  • HUD & Pause system

Data

  • ScriptableObjects (LevelData)
  • Dynamic bowl spawning
  • Wave-based level design
  • Fruit/bowl configurations

Build process

A focused delivery path from problem mapping to launch.

1

Discovery

Analyzed casual mobile gaming trends, player retention mechanics, and monetization best practices for app store.

2

Planning

Designed level progression, bowl/fruit mechanics, ad integration points, and revenue streams (ads + IAP).

3

Core Build

Built GameManager state machine, LevelController, PlayerHand throwing mechanics, Table rotation, Bowl collision detection.

4

Progression System

Implemented ProgressionSystem with scoring (% thresholds), lives system (3 lives), stars (0-3), wrong attempt penalties.

5

Monetization

Integrated AdMob (banner/interstitial/rewarded), Shop system (coins purchase), Recovery keys (watch 2 ads = 1 key), Exchange system.

6

Level Design

Created 10+ levels via ScriptableObjects, wave-based spawning, dynamic bowl configurations, time-limited levels.

7

Testing & Deployment

Built production pipeline (Android AAB), R8 obfuscation, testing, signed builds (v1.0.2, v1.0.3), app store submission.

Challenges and solutions

The important problems solved for the business.

Problem

Dynamic Bowl Positioning

Solution

Levels required flexible bowl configurations (required + trap bowls) with circular rotating table placement.

Impact

Solved with trigonometry-based positioning, LookAt center, and dynamic spawning from wave data.

Problem

State Synchronization

Solution

Coordinating GameManager, ProgressionSystem, LevelController, and PlayerProgressRepository across transitions and retries.

Impact

Event-driven architecture with clear subscription model ensures consistent state without tight coupling.

Problem

Monetization Integration

Solution

Integrating AdMob rewarded/interstitial ads with recovery key system, shop exchanges, and editor simulation for testing.

Impact

Abstraction layer using preprocessor directives (#if GOOGLE_MOBILE_ADS) handles device vs editor fallback behavior.

Problem

Player Retention

Solution

Designing mechanics to encourage daily logins and continued play without making game pay-to-win.

Impact

Recovery keys (limited daily earned), daily login rewards (1 key per 2 ad watches), progression unlock gates, and reasonable difficulty curve.

Problem

Performance Optimization

Solution

Managing Object pooling, physics calculations, and UI updates on mobile devices with varying specs.

Impact

Efficient 2D physics, UI pooling, minimal garbage generation, R8 obfuscation, and proactive memory management.

Results and outcome

A complete SaaS foundation with measurable operational gains.

10+

fully designed and balanced levels

3x

lives system with recovery mechanics

5

dynamic fruit types with collision

7+

monetization integration points

4

game states (Menu/Playing/Pause/Complete)

100+

ScriptableObject configurations

Next case study

Vaibhav Cattle Feed Stock Management

Browse Portfolio