🌌 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?
- 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.
- 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.
- 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-timeCustomerInfostate 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.cshooks intoOnAdPaidandOnAdImpressionRecorded, forwarding exact micro-revenue toRevenueCat.AdRevenueData. - Live Placement-Level Tracking: Tracks specific placement telemetry across formats:
MainMenu_Banner(Banner) andGameOver_Continue(Rewarded) alongsideTrackAdDisplayedcalls. - 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_adsentitlement,EntitlementChecker.csimmediately 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, andlast_played_time. - Deployed Automated Journeys:
- 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.
- 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
- 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
FragmentPoolandBallPoolsystem that recycles mesh renderers and rigidbodies without allocating memory during gameplay. - 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.
- 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 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
Log in or sign up for Devpost to join the conversation.