Curling Game in Rive
Exploring Rive as a Lightweight Game Engine through Interactive Motion
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.
