Inspiration

As gamers, we all experience this exact scenario: you are scrolling through TikTok, Instagram Reels, YouTube Shorts, Twitch, or Reddit, and an incredible 15-second gameplay clip stops you in your tracks. You want to play it, but:

  1. The creator didn't put the title in the caption or pinned comment, or
  2. You save the video to a cluttered bookmark folder where it is forgotten forever.

Meanwhile, our gaming backlogs are scattered across Steam, PlayStation 5, Xbox Series X, Nintendo Switch, and retro handhelds, making backlog management feel like an endless, sterile spreadsheet of guilt.

Inspired directly by the vision shared by Mr Lewis Blogs Gaming, we built ObsidianPlay: a frictionless gaming companion designed to capture games at the exact moment of discovery and transform backlog management from a boring chore into an exciting, rewarding adventure.


What it does

  • ⚡ Instant Social Video Game Discovery (Save at the Moment of Discovery): Whenever you spot a gameplay clip on TikTok, Instagram Reels, YouTube Shorts, Twitch, Reddit, X (Twitter), or Steam, tap the native mobile "Share" button to ObsidianPlay. Our smart parser strips away noisy hashtags and creator clickbait, identifies the authentic title, and fetches high-res cover art, screenshots, critic ratings, and platform tags from IGDB with query latency: $$\text{Latency}_{\text{Discovery}} < 1.0\text{ s}$$
  • 📚 Enjoyable Backlog Management: Seamlessly organize your gaming journey across Playing, Backlog, Completed, and Dropped with personal ratings and completion notes.
  • 🎲 Interactive Backlog Roulette: Suffer from choice paralysis on Friday game night? Spin the built-in Backlog Roulette wheel to randomly select your next adventure from your queue in $O(1)$ time.
  • 🏆 Victory Celebrations: Marking a game as "Completed" triggers an animated celebration sequence with personal rating prompts and achievement confetti.
  • 📊 Gamer DNA & Wrapped: Visual completion statistics, genre breakdowns, and shareable gamer identity cards to celebrate your milestones: $$\text{Completion Rate} = \left( \frac{\text{Completed Games}}{\text{Total Library Games}} \right) \times 100\%$$
  • 🔒 Offline-First & Ultra-Fast: Powered by a local SQLite database (SQLDelight). Your entire library loads with instant local reads, even on a plane or offline handheld device.
  • 👑 Obsidian PRO (Powered by RevenueCat): Seamless in-app subscription and lifetime pass management featuring an Annual Pass with a 7-day free trial, Monthly Pass, and Lifetime VIP Pass, plus built-in promo code support (JUDGE, SHIPATHON2026) for frictionless evaluation.

How we built it

  • Cross-Platform UI: Compose Multiplatform (Jetpack Compose for Android & iOS) with a custom Obsidian dark theme, neon cyan accents, and fluid animations.
  • Shared Business Logic: 100% shared Kotlin Multiplatform (KMP) code for state management utilizing Clean Architecture, Kotlin Coroutines, and reactive StateFlow.
  • Local Persistence: Multiplatform SQLite with SQLDelight with reactive flow queries for resilient offline storage.
  • Networking: Ktor HTTP Client with kotlinx.serialization for consuming the Twitch/IGDB API securely.
  • Monetization: RevenueCat Purchases SDK managing Google Play Billing and Apple StoreKit subscriptions under a single unified repository.
  • Production Hardening: Hardened release builds with R8 code obfuscation and resource shrinking, reducing the APK bundle size: $$\Delta \text{Size} = \frac{15.0\text{ MB} - 7.8\text{ MB}}{15.0\text{ MB}} \approx 48\% \text{ reduction}$$

Challenges we ran into

  1. Intelligent Social Noise Stripping: Social media video captions are filled with emojis, hashtag spam, and creator phrases (e.g. "Wait till the end! #gaming #fyp"). We developed a multi-stage regex sanitizer with fuzzy matching and confidence scoring to reliably isolate the true game title.
  2. Predictive Multiplatform Back Navigation: Designing a seamless navigation experience where pressing the Android system back button or iOS swipe gestures intelligently prioritizes bottom sheet dismissals, traverses a multi-tab backstack ($\text{Home} \leftarrow \text{Library} \leftarrow \text{Profile}$), and avoids accidental app closures.
  3. Cross-Platform Billing Architecture: Designing an abstract repository layer (ProSubscriptionRepository) that unifies Google Play Billing, Apple StoreKit, and instant judge promo codes without leaking platform-specific billing logic into shared UI.

Accomplishments that we're proud of

  • True Code Sharing: Achieved over $90\%$ shared code across Android, iOS, and Web: $$\text{Code Sharing Ratio} \ge 90\%$$
  • Sub-Second Discovery Flow: Sharing a video clip from TikTok or Instagram to viewing the full IGDB game details in ObsidianPlay takes less than one second.
  • Production Shipped: Successfully approved for Google Play Production Access and published as an optimized $7.8\text{ MB}$ release bundle!

What we learned

  • Building resilient, offline-first reactive architectures using Compose Multiplatform 1.7+ and SQLDelight.
  • Integrating RevenueCat Paywalls and handling complex subscription lifecycles across mobile operating systems.
  • Structuring native OS Intent filters (ACTION_SEND) to create seamless inbound sharing experiences.

What's next for ObsidianPlay

  • 🔄 Auto-Sync with Steam, PSN & Xbox: Direct integration to automatically import owned games, playtime, and unlocked trophies.
  • 👥 Social Backlog & Co-op Feeds: Connect with friends to see what they are currently playing and share recommendations.
  • 🤖 AI-Powered Playtime Estimates: Personalized machine learning predictions estimating how many hours a game will take you to beat based on your past gaming habits: $$\text{Estimated Hours} = f(\text{Genre}, \text{Historical Pacing}, \text{HLTB Dataset})$$

Built With

Share this project:

Updates

Submission history