Inspiration

Classic rhythm and tile-tapping arcade games have always been captivating because of their pure focus on timing, reflexes, and musical flow. For this hackathon, I set out to prove that you don't need a heavy, bloated game engine like Unity or Unreal to create a fast, ultra-responsive, and visually striking arcade experience. I wanted to build TileRush completely from scratch in native Android using pure Java, delivering silky-smooth 60+ FPS performance, zero-latency touch response, and an electrifying neon cyberpunk aesthetic.

What it does

TileRush is a fast-paced, 4-lane mobile rhythm game inspired by arcade classics like Magic Tiles:

  • Dynamic 4-Lane Action & Hold Mechanics: Tap falling notes and sustain long hold tiles where the active note head dynamically tracks your finger position as the tail streams in with energetic plasma bursts and bubble pops.
  • Interactive Jukebox with Live Previews: Listen to track previews before selecting your song. Features popular tracks including On The Dance Floor, Midnight Kisses, Faded, Chanel, Don't Blame Me, and At My Worst.
  • 3-Tier Dynamic Mode Progression:
    • Level 1 (Groove / Normal): A balanced tempo to get into the flow state.
    • Level 2 (Rush / Speed Up): Reaching score 30 triggers an animated screen flash, sound chime, and a glowing "⚡ SPEED UP! ⚡" transition banner as the tempo accelerates.
    • Level 3 (Overdrive / Hard): Reaching score 70 unleashes "🔥 OVERDRIVE! 🔥" mode with lightning-fast speeds.
  • Zigzag Tile Storms: In Overdrive mode, the game unleashes rapid 7-tile staircase waves sweeping across adjacent lanes, challenging players' peak reflexes.
  • Polished Neon Visuals & HUD: Beveled glowing tiles with neon border rims, bursting bubble particles, floating ambient dust motes, and real-time HUD mode badges.
  • Local High Score Tracking: Automatically records and persists personal bests locally on device.

How I built it

  • Native Architecture: Developed 100% in pure Java using Android Studio and native Android SDK APIs (API 26+).
  • Zero-Engine 60 FPS Canvas: Built a custom SurfaceView/Canvas 2D rendering pipeline and game loop that handles frame updates and particle animations without relying on heavy external game engines.
  • Continuous Multi-Touch Dispatcher: Handled ACTION_DOWN, ACTION_MOVE, and ACTION_UP motion events to ensure hold tiles maintain responsive touch tracking under the player's finger in real time.
  • Dual Audio Engine: Integrated MediaPlayer for seamless background music streaming and preview playback, paired with SoundPool for instantaneous, zero-latency tap SFX and transition chimes.

Challenges I ran into

  • Hold Tile Visual Synchronization: In initial iterations, the hold tile's head block would slide down off-screen even while the user was pressing it. We solved this by dynamically clamping the rendered track to activeBottom = Math.min(bottom, touchY), anchoring the note head directly under the player's finger while the tail drains smoothly into it.
  • Procedural Zigzag Generation: Generating fast staircase patterns across adjacent lanes without overlapping or colliding with standard random tiles required creating a dedicated priority spawn queue (zigzagQueue) specifically for Level 3.
  • Audio Lifecycle & Previews: Ensuring track previews played seamlessly when tapping different songs without overlapping audio tracks or causing memory leaks required strict state management of MediaPlayer instances.

Accomplishments that I'm proud of

  • Achieving fluid 60 FPS rendering and arcade-grade visual polish purely through native Android Java and Custom Canvas drawing.
  • Building a high-energy difficulty curve with dramatic screen flashes, banner announcements, and zigzag waves that feel just like commercial rhythm games.
  • Creating an ultra-responsive, zero-latency touch and hold system.

What I learned

  • Deep optimization of low-level 2D Android Canvas drawing and object reuse to minimize garbage collection pauses.
  • Precision motion event tracking for continuous multi-touch gestures.
  • Procedural rhythm game wave mechanics and game state architecture.

What's next for TileRush

  • Custom Beatmap Generator: Allowing players to import any personal MP3 track and automatically generate playable tiles using audio onset detection.
  • Multiplayer Versus Mode: Real-time 1v1 battle mode to compete against friends online.
  • Global Leaderboards: Cloud high-score integration and community rankings.

Built With

Share this project:

Updates

Submission history