Personal Project

Personal Project

Personal Project

Curling Game in Rive

Exploring Rive as a Lightweight Game Engine through Interactive Motion

Motion Design
Motion Design
Motion Design
Rive
Rive
Rive

Overview

This project is a fully playable curling game built entirely inside Rive, using its newly released scripting feature. The goal was to explore how far Rive can be pushed beyond micro-interactions and UI motion, and whether it can support more complex, logic-driven experiences such as a small game.

The final result weighs in at ~2 MB, making it a lot lighter than a comparable build created in a traditional game engine like Unity.


The Challenge


Rive is most commonly used for interactive UI elements and animations. With scripting now available, I wanted to challenge that perception by asking:

Can Rive handle full game logic without relying on external code or heavy runtimes?

The core challenge was to implement:

  • Physics-like behavior

  • Collision detection

  • Player input affecting motion in real time

  • A clear scoring system

All while keeping performance high, file size low, and the experience responsive across platforms.



Solution


The entire game was built 100% inside Rive, with no external logic, frameworks, or game engines.

Key systems implemented:

  • Stone throwing mechanic
    Player input controls the force and direction of the throw.

  • Sweeping system
    Sweeping dynamically alters the stone’s trajectory, mimicking real curling mechanics.

  • Collision detection
    Stones interact with each other and the environment in real time.

  • Scoring logic
    Points are calculated based on stone position at the end of each round.

All logic, animation, and interaction live inside a single Rive file (~2 MB), a fraction of the size you’d typically expect when using engines like Unity, even for simple games.



Performance & File Size

One of the most interesting outcomes of this project was the extremely small footprint.

  • Final file size: ~2 MB

  • No runtime overhead from a traditional game engine

  • Fast load times and smooth performance

  • Ideal for mobile apps, web experiences, and embedded interactions

This highlights Rive’s potential as a lightweight alternative for interactive experiences where performance, download size, and maintainability matter.

Outcome

A fully playable curling game running entirely inside a single Rive file

  • Proof of concept that Rive can support complex, logic-driven experiences

  • A performant, lightweight build that would be significantly larger if implemented in a traditional game engine

  • Deeper understanding of scripting, state management, and interaction-led motion design.