🌌 DIMENSION SMASH — Shatter Spacetime, One Dimension at a Time

"What if the rhythmic, glass-shattering satisfaction of Smash Hit met the shifting realities of the multiverse — powered by an enterprise-grade mobile monetization and retention engine?"


Inspiration

I grew up enamored by classic arcade rhythm runners like Smash Hit, where spatial awareness, projectile physics, and soothing destruction combined into pure flow state. But modern mobile gaming often leaves players feeling fatigued by repetitive environments and aggressive, uninspired paywalls.

I asked myself: How can I reinvent this classic arcade genre for 2026?

  1. Dynamic Visual Metamorphosis: Instead of static corridors, the world tears through spacetime every few hundred meters, completely re-skinning shaders, lighting, skyboxes, and physics rules in real-time.
  2. Respectful, Value-Driven Monetization: Using RevenueCat, I built a transparent economy where players get genuine utility—permanent ad-removal, high-score ammo boosts, and premium upgrades—without disruptive paywalls.
  3. Smart Player Re-engagement: Integrating OneSignal to trigger intelligent, milestone-based Journeys (daily ammo regeneration and dimension alerts) instead of generic spam.

What it does

DIMENSION SMASH is an adrenaline-fueled, first-person physics rail-shooter and infinite runner built in Unity 6 and URP:

  • Aim & Shatter: Tap the screen to launch high-velocity steel projectiles into low-poly crystalline structures, pillars, and moving barriers.
  • Ammo Conservation & Flow: Hitting obstacles refunds your sphere and stacks your combo streak. Miss, and you deplete your reserves and lose shields.
  • The Dimension Shift Engine: Every 500 points, reality shatters! A full-screen dissolve shader triggers, the global volume profile interpolates, and the world morphs into a brand-new biome with increased velocity:
    • 🌿 Emerald Forest: Golden dawn lighting, dense foliage, serene green mist.
    • 🏜️ Desert Ruins: Blazing midday sun, terracotta dust storms, ancient stone columns.
    • ❄️ Frozen Tundra: Sub-zero icy haze, crystalline glaciers, low-friction hazards.
    • 🌑 Neon Void: Synthwave deep-space void, reactive cyan/magenta emissive shaders.
    • ⚡ Storm Realm: Flickering electrical skies, turbulent fog, ambient lightning strikes.
    • 🔄 Singularity Inversion: Beyond 1,000 points, spacetime fractures—inverting gravity and flipping the player upside-down!

🧮 Mathematical Systems & Mechanics

1. Dynamic Scoring & Combo Multipliers

Every obstacle shattered computes dynamic rewards based on accuracy and combo chaining: $$M(\text{combo}) = \begin{cases} 5 & \text{if } \text{combo} \ge 15 \\ 3 & \text{if } \text{combo} \ge 10 \\ 2 & \text{if } \text{combo} \ge 5 \\ 1 & \text{otherwise} \end{cases}$$

The final points awarded per shattered structure are governed by: $$\text{Points} = \text{BaseValue} \times M(\text{combo}) \times (1 + \text{MultiplierBoost})$$

2. Distance Traveled Accumulator

Distance score increments steadily per interval: $$\text{Score}_{\text{dist}} = \left\lfloor \frac{\Delta d}{10} \right\rfloor$$


How I built it

1. Game Architecture & Rendering

  • Engine & Graphics: Unity 6 (6000.x) with Universal Render Pipeline (URP 17.4).
  • Procedural World Generation (ChunkSpawner.cs): Dynamic ground chunks and obstacle lanes pooled ahead of the player camera using modular Synty Studios POLYGON low-poly assets.
  • Physics & Shatter System (ShatterEffect.cs): Fast mesh breakdown that swaps static colliders into directional debris fragments upon projectile impact.
  • Zero-Allocation Memory Architecture: Utilized Unity's UnityEngine.Pool.ObjectPool<T> for balls, chunks, particles, and fragments—delivering a rock-solid 60 FPS on mobile.
  • Audio & Haptics (HapticManager.cs): Multi-tier Android vibration feedback coupled with rhythmic smash audio cues.
  • Leaderboards: Integrated Google Play Games Services (GPGSIds.cs) cloud leaderboards for global competitive smashes.

2. Monetization Architecture (Powered by RevenueCat)

I integrated the RevenueCat Unity SDK (com.revenuecat.purchases-unity v9.5.3) to power the entire in-game economy with zero server maintenance:

Product ID Type Price Description Entitlement Unlocked
no_ads Non-Consumable $2.99 Permanently strips AdMob banners and interstitials no_ads
ball_pack_50 Consumable $1.99 Grants +50 reserve ammunition for high-score runs Direct Balance Increment
  • Clean Singleton Wrapper (RevenueCatManager.cs): Manages runtime initialization, offering discovery, and real-time CustomerInfo state broadcasting across the game loop.
  • Paywall & In-Game Shop (PurchaseButton.cs): Dynamically updates localized pricing strings fetched directly from Google Play / RevenueCat Offerings ($2.99, ₹269, etc.), preventing hardcoded currency discrepancies.
  • Zero-Backdoor Security: All purchases validate cryptographically via Google Play receipts verified against RevenueCat servers.
  • Judge Access Ready: Implemented single-use Google Play Promo Codes that grant judges full, instantaneous entitlement unlocking without credit cards.

3. RevenueCat Ads Integration & Ad Revenue Tracking (Catvertising Bridge)

To achieve a true Hybrid Monetization Model (HAMM), DIMENSION SMASH integrates RevenueCat AdTracker directly with Google Mobile Ads:

  • Real-Time Ad Revenue Ingestion (RevenueCatManager.TrackAdRevenue): Every time an ad is displayed, AdManager.cs hooks into OnAdPaid and OnAdImpressionRecorded, forwarding exact micro-revenue to RevenueCat.AdRevenueData.
  • Live Placement-Level Tracking: Tracks specific placement telemetry across formats: MainMenu_Banner (Banner) and GameOver_Continue (Rewarded) alongside TrackAdDisplayed calls.
  • Unified Player LTV: RevenueCat aggregates ad revenue directly with in-app purchase revenue in a single dashboard, providing a complete 360-degree view of player Lifetime Value (LTV).
  • Entitlement-Driven Ad Suppression: When RevenueCat grants the no_ads entitlement, EntitlementChecker.cs immediately terminates and destroys the active banner, creating an instantaneous, seamless ad-free experience.

4. Player Retention & Engagement (Powered by OneSignal)

To compete for the Keep Them Coming Back Award, I paired RevenueCat with the OneSignal Unity SDK (v5.3.1):

  • Contextual Permission Prompts: Rather than requesting notification permissions on cold launch, DIMENSION SMASH waits until after the player's first game-over run, preserving trust and maximizing opt-in conversion.
  • Automated Data Tags: The game client automatically syncs real-time player telemetry to OneSignal: high_score, highest_dimension, has_no_ads, total_runs, and last_played_time.
  • Deployed Automated Journeys:
    1. Daily Energy Refill: An automated 24-hour retention journey scheduled for the player's local evening (6:00 PM), notifying them that their 10 bonus ammo spheres have regenerated.
    2. Dimension Shift Alert: A progression campaign triggered when players breach high-tier dimensions (highest_dimension >= 3), challenging them to conquer the final Singularity.

Challenges I ran into

  1. Mobile GC Spikes & Shatter Overhead: Spawning dozens of fragmented physics meshes per second caused noticeable garbage collection pauses on mobile. I solved this by creating a dedicated FragmentPool and BallPool system that recycles mesh renderers and rigidbodies without allocating memory during gameplay.
  2. Seamless Spacetime Dissolve Transitions: Switching skyboxes, fog colors, and volume profiles mid-sprint originally caused camera flashing and lighting pops. I authored a custom URP Fullscreen Dissolve Pass that cross-fades the screen buffer while volume weights smoothly interpolate.
  3. Cross-Platform IAP & Ad State Synchronization: Ensuring entitlements, ad suppression, and consumable balances seamlessly persist across restarts without client desynchronization. RevenueCat’s listeners made handling purchase restoration and offline caching rock solid.

Accomplishments that I'm proud of

  • ⚡ Silky Smooth 60 FPS: High-speed physics and dynamic particle destruction running effortlessly on mobile hardware.
  • 💎 Flawless RevenueCat Pipeline: Complete IAP flow with dynamic paywalls, promo codes, and real-time RevenueCat AdTracker impression attribution.
  • 🌌 Visual Splendor: 5 distinct dimension environments that make every run feel like a visual journey through the cosmos.

What I learned

  • The Value of RevenueCat: Handling receipt cryptographic validation, store subscriptions, and product offerings natively would have taken weeks. RevenueCat turned this into a clean, predictable workflow.
  • Unified LTV Measurement: Using RevenueCat's AdTracker to bridge impression-level ad revenue with IAP transactions reveals the true monetization value of every player session.
  • Segmentation Drives Delight: Using OneSignal tags tied directly to player progression makes notifications feel like personalized game achievements rather than intrusive marketing.

What's next for DIMENSION SMASH

  • 🌌 New Dimensions & Boss Singularities: Adding Cyberpunk Megacity and Volcanic Core dimensions with giant shifting obstacles.
  • 🍎 iOS Launch: Bringing DIMENSION SMASH to the Apple App Store with cross-platform RevenueCat entitlement syncing.

🎬 Official Gameplay Trailer and Demo

Watch DIMENSION SMASH Trailer on X

📺 Watch the gameplay trailer on X: https://x.com/nabil_aman_/status/2104457352359608678

📺 Watch Demo video on YouTube: https://youtu.be/ayXx2atJWR4


Built With

  • 3d
  • admob
  • android
  • c-sharp
  • edm4u
  • game-development
  • google-play
  • haptics
  • il2cpp
  • in-app-purchases
  • low-poly
  • mobile
  • mobile-game
  • object-pooling
  • onesignal
  • physics
  • revenuecat
  • revenuecat-ads
  • shader-graph
  • subscriptions
  • synty-studios
  • unity-6
  • universal-render-pipeline
  • urp
Share this project:

Updates

Submission history