Rive Blog
Building indie game Pay 2 Win with Rive and Unity
What a self-serve team learned in production.


Rive for Unity is now in the Unity Asset Store! Catch our full announcement here.
~
Most Rive and Unity stories come from Enterprise teams with direct support. This one doesn't.
When Roy Blackstone and Fredrik Johansson started building their indie game Pay 2 Win: The World Is Mine, they were a fully self-serve team determined to understand Rive’s Unity runtime on their own.
They wanted to explore what’s possible when a small studio blends design and development inside one workflow. “I’d seen what Rive could do in demos,” Roy says, “but I couldn’t find real examples of Unity games using it. We decided to learn it ourselves while in production.”
Eight months later, their satirical strategy deck-builder shipped on Steam, powered by nearly a hundred Rive artboards.
A small team chasing a feeling
Patriots Division — Roy in Italy, and Fredrik in Sweden — works like most indies: lean, remote, and improvisational. Roy handles story, design, and motion; Fredrik covers code and systems.
Their creative goal was emotional. “I wanted people to feel the fantasy,” Roy says. “If you’re a witch casting spells or a CEO making shady deals, it should move like that.”
In Pay 2 Win, players take over a failing game-studio as the new boss, working with two assistants — May, a gambler accountant, and Annie, a self-proclaimed witch — to rebuild the company. You cast spells, place facilities, combine cards, and hunt for endless synergies to grow your empire. The game mixes deck-building strategy, idle mechanics, and visual-novel storytelling, letting players choose between passive progress and active control.
Rive became the medium for all that feeling: an editor where art, timing, and logic could live side by side without re-implementation in Unity.

What lived in Rive and what stayed in Unity
Rive’s Unity runtime supports full production UI. That let the team keep complex logic in Unity while authoring nearly every surface-level interaction in Rive.
In Rive:
Main menu
Story and dialogue interfaces with branching text and animated reactions
Coins, spell effects, and animated backgrounds
Prototypes for new panels and transitions
Reusable UI components built with Lists
Interactive story cutscenes
Easter eggs and dynamic dialogue
Upgrade screens and progression screens entirely in rive
Mana bars and impact frames
Buff panels, event triggers, day and night cycle
In Unity:
The 2D tile-based “studio floor” where players place and upgrade facilities
Drag-and-drop systems and resource logic
Deck-building mechanics and data structures
This split let both creators move fast. “We do our setup once,” Roy says. “Then I can change anything, colors, layout, animation, and it just plugs into Fredrik’s system.”
That loop captures the essence of Rive’s Unity workflow: design and engineering stay decoupled but connected through shared variables and data binding.
The bridge between Rive and Unity
Technically, each major UI screen runs as a Rive Widget (Canvas-space component) connected to Unity’s serialized data model. Fredrik uses view-model bindings to drive parameters inside Rive’s state machines, things like progress, currency counts, or mission completion.
“We pass data to Rive through variables and triggers,” he explains. “Roy defines them in the Editor, and I bind them to my local variables. Once that link exists, everything else updates automatically at runtime.”
The result is a clean data flow: Rive handles all timing and presentation; Unity handles logic and game state.
Data Binding Lists: the turning point
When Rive’s Data Binding Lists feature became available in the Unity runtime earlier this year, it solved months of manual workarounds.
“I’d been waiting for Lists all summer,” Roy says. “Now I use them for everything: particle effects, spell effects, mission panels. They replaced all the weird workarounds we were doing before.”
Lists let designers spawn and destroy repeatable UI elements directly in Rive. Before that, they had to manually instantiate separate artboards in Unity. After switching, they rebuilt entire panels, like the facility and mission menus, cutting iteration time and file size.
That aligns with how we think of Lists: dynamic, data-driven structures that respond to runtime variables.
Performance and optimization
With over 100 artboards, optimization mattered. Roy learned to separate assets into smaller files and minimize texture imports. “Large view models with hundreds of variables can slow things down,” he says. “I split them into smaller logical groups. That helped a ton.”
Fredrik also noted rendering order as one of their trickier discoveries. Early on, the team ran into some layering surprises while learning how Unity’s Canvas renders textures and depth. “Once we understood how Rive’s pass sits in Unity’s render order, performance was solid,” Fredrik says.
Prototyping that becomes production
Early in development, Rive doubled as their prototyping space. “If we wanted to test how a panel slid in or how a button pulsed,” Roy says, “I’d gray-box it in Rive, share the link, and everyone could see it live.”
That immediacy turned discussions into experiments. “We could work separately but in the same direction,” Fredrik says. “It took complexity off the Unity side and gave Roy freedom to try ideas before they hit code.”
Because those same artboards shipped in-game, the prototypes weren’t throwaway — they simply gained data bindings and runtime logic.
Inside the runtime
Pay 2 Win follows best practices from Rive’s documentation: each major UI screen runs as a Rive component inside Unity’s Canvas system, with the runtime managing state-machine triggers and view-model variables.
Fredrik explains, “Unity’s built-in 2D animation tools can get heavy when you want detailed timing or layered motion. With Rive, we keep that expressive layer separate. It’s easier to maintain, and the game performs great.”
Since Roy keeps variable names consistent across artboards, Fredrik connects them once and trusts the future changes remain stable. It’s a concrete version of the designer-developer handshake Rive was built to enable.
Lessons from learning Rive
Roy freely admits he went Rive-wild. “Rive was my hammer, and everything was a nail. I wanted to see what it could really do.“ That experiment surfaced a few lessons for small Unity teams exploring the runtime:
Start early
Adding Rive midway means re-authoring assets. Beginning with it makes Rive part of the foundation.
Document variables and view models
A shared naming system keeps files aligned and prevents broken bindings
Prototype in motion
A rough Rive animation communicates intent faster than static mocks. Timing is design language.
Treat Rive as a production tool
The Unity runtime is made for shipping assets, not just previews.
Why this story matters to us
This is one of the first public examples of a self-serve Unity team taking Rive from prototype to shipping without Enterprise support. They worked from public documentation, YouTube videos, and Rive Community threads, discovering most answers through experimentation.
Their results show how approachable the Unity runtime has become:
Smaller teams move faster. Designers own polish without adding engineering overhead.
Developers keep logic clean. Visual complexity lives in Rive, not in code.
The workflow scales. State Machines and Lists behave the same in production as they do in the Editor.
Because Pay 2 Win blends deck-builder strategy, roguelike randomness, and idle progression, its UI has to serve both quick interactions and long sessions of passive play. Rive made it possible to author motion once and let it scale across both modes, something that would’ve been tedious to replicate by hand.
For Fredrik, that simplification mattered most. “It moved a lot of the complexity away from the functional part,” he says. “That’s huge when you’re a small team.”
Looking ahead
Both developers plan to keep Rive in their toolset. “It’s my favorite tool of the year,” Roy says. “If I can use it, I’ll use it anywhere.”
Rive gave them a way to keep design and development moving at the same speed.
Play the game
You can play Pay 2 Win: The World Is Mine on Steam to see Rive running inside Unity.
Building a Unity game of your own? We’re collecting more production stories from teams using Rive runtimes. Tell us what you’re shipping.
Rive for Unity is now in the Unity Asset Store! Catch our full announcement here.
~
Most Rive and Unity stories come from Enterprise teams with direct support. This one doesn't.
When Roy Blackstone and Fredrik Johansson started building their indie game Pay 2 Win: The World Is Mine, they were a fully self-serve team determined to understand Rive’s Unity runtime on their own.
They wanted to explore what’s possible when a small studio blends design and development inside one workflow. “I’d seen what Rive could do in demos,” Roy says, “but I couldn’t find real examples of Unity games using it. We decided to learn it ourselves while in production.”
Eight months later, their satirical strategy deck-builder shipped on Steam, powered by nearly a hundred Rive artboards.
A small team chasing a feeling
Patriots Division — Roy in Italy, and Fredrik in Sweden — works like most indies: lean, remote, and improvisational. Roy handles story, design, and motion; Fredrik covers code and systems.
Their creative goal was emotional. “I wanted people to feel the fantasy,” Roy says. “If you’re a witch casting spells or a CEO making shady deals, it should move like that.”
In Pay 2 Win, players take over a failing game-studio as the new boss, working with two assistants — May, a gambler accountant, and Annie, a self-proclaimed witch — to rebuild the company. You cast spells, place facilities, combine cards, and hunt for endless synergies to grow your empire. The game mixes deck-building strategy, idle mechanics, and visual-novel storytelling, letting players choose between passive progress and active control.
Rive became the medium for all that feeling: an editor where art, timing, and logic could live side by side without re-implementation in Unity.

What lived in Rive and what stayed in Unity
Rive’s Unity runtime supports full production UI. That let the team keep complex logic in Unity while authoring nearly every surface-level interaction in Rive.
In Rive:
Main menu
Story and dialogue interfaces with branching text and animated reactions
Coins, spell effects, and animated backgrounds
Prototypes for new panels and transitions
Reusable UI components built with Lists
Interactive story cutscenes
Easter eggs and dynamic dialogue
Upgrade screens and progression screens entirely in rive
Mana bars and impact frames
Buff panels, event triggers, day and night cycle
In Unity:
The 2D tile-based “studio floor” where players place and upgrade facilities
Drag-and-drop systems and resource logic
Deck-building mechanics and data structures
This split let both creators move fast. “We do our setup once,” Roy says. “Then I can change anything, colors, layout, animation, and it just plugs into Fredrik’s system.”
That loop captures the essence of Rive’s Unity workflow: design and engineering stay decoupled but connected through shared variables and data binding.
The bridge between Rive and Unity
Technically, each major UI screen runs as a Rive Widget (Canvas-space component) connected to Unity’s serialized data model. Fredrik uses view-model bindings to drive parameters inside Rive’s state machines, things like progress, currency counts, or mission completion.
“We pass data to Rive through variables and triggers,” he explains. “Roy defines them in the Editor, and I bind them to my local variables. Once that link exists, everything else updates automatically at runtime.”
The result is a clean data flow: Rive handles all timing and presentation; Unity handles logic and game state.
Data Binding Lists: the turning point
When Rive’s Data Binding Lists feature became available in the Unity runtime earlier this year, it solved months of manual workarounds.
“I’d been waiting for Lists all summer,” Roy says. “Now I use them for everything: particle effects, spell effects, mission panels. They replaced all the weird workarounds we were doing before.”
Lists let designers spawn and destroy repeatable UI elements directly in Rive. Before that, they had to manually instantiate separate artboards in Unity. After switching, they rebuilt entire panels, like the facility and mission menus, cutting iteration time and file size.
That aligns with how we think of Lists: dynamic, data-driven structures that respond to runtime variables.
Performance and optimization
With over 100 artboards, optimization mattered. Roy learned to separate assets into smaller files and minimize texture imports. “Large view models with hundreds of variables can slow things down,” he says. “I split them into smaller logical groups. That helped a ton.”
Fredrik also noted rendering order as one of their trickier discoveries. Early on, the team ran into some layering surprises while learning how Unity’s Canvas renders textures and depth. “Once we understood how Rive’s pass sits in Unity’s render order, performance was solid,” Fredrik says.
Prototyping that becomes production
Early in development, Rive doubled as their prototyping space. “If we wanted to test how a panel slid in or how a button pulsed,” Roy says, “I’d gray-box it in Rive, share the link, and everyone could see it live.”
That immediacy turned discussions into experiments. “We could work separately but in the same direction,” Fredrik says. “It took complexity off the Unity side and gave Roy freedom to try ideas before they hit code.”
Because those same artboards shipped in-game, the prototypes weren’t throwaway — they simply gained data bindings and runtime logic.
Inside the runtime
Pay 2 Win follows best practices from Rive’s documentation: each major UI screen runs as a Rive component inside Unity’s Canvas system, with the runtime managing state-machine triggers and view-model variables.
Fredrik explains, “Unity’s built-in 2D animation tools can get heavy when you want detailed timing or layered motion. With Rive, we keep that expressive layer separate. It’s easier to maintain, and the game performs great.”
Since Roy keeps variable names consistent across artboards, Fredrik connects them once and trusts the future changes remain stable. It’s a concrete version of the designer-developer handshake Rive was built to enable.
Lessons from learning Rive
Roy freely admits he went Rive-wild. “Rive was my hammer, and everything was a nail. I wanted to see what it could really do.“ That experiment surfaced a few lessons for small Unity teams exploring the runtime:
Start early
Adding Rive midway means re-authoring assets. Beginning with it makes Rive part of the foundation.
Document variables and view models
A shared naming system keeps files aligned and prevents broken bindings
Prototype in motion
A rough Rive animation communicates intent faster than static mocks. Timing is design language.
Treat Rive as a production tool
The Unity runtime is made for shipping assets, not just previews.
Why this story matters to us
This is one of the first public examples of a self-serve Unity team taking Rive from prototype to shipping without Enterprise support. They worked from public documentation, YouTube videos, and Rive Community threads, discovering most answers through experimentation.
Their results show how approachable the Unity runtime has become:
Smaller teams move faster. Designers own polish without adding engineering overhead.
Developers keep logic clean. Visual complexity lives in Rive, not in code.
The workflow scales. State Machines and Lists behave the same in production as they do in the Editor.
Because Pay 2 Win blends deck-builder strategy, roguelike randomness, and idle progression, its UI has to serve both quick interactions and long sessions of passive play. Rive made it possible to author motion once and let it scale across both modes, something that would’ve been tedious to replicate by hand.
For Fredrik, that simplification mattered most. “It moved a lot of the complexity away from the functional part,” he says. “That’s huge when you’re a small team.”
Looking ahead
Both developers plan to keep Rive in their toolset. “It’s my favorite tool of the year,” Roy says. “If I can use it, I’ll use it anywhere.”
Rive gave them a way to keep design and development moving at the same speed.
Play the game
You can play Pay 2 Win: The World Is Mine on Steam to see Rive running inside Unity.
Building a Unity game of your own? We’re collecting more production stories from teams using Rive runtimes. Tell us what you’re shipping.
Rive for Unity is now in the Unity Asset Store! Catch our full announcement here.
~
Most Rive and Unity stories come from Enterprise teams with direct support. This one doesn't.
When Roy Blackstone and Fredrik Johansson started building their indie game Pay 2 Win: The World Is Mine, they were a fully self-serve team determined to understand Rive’s Unity runtime on their own.
They wanted to explore what’s possible when a small studio blends design and development inside one workflow. “I’d seen what Rive could do in demos,” Roy says, “but I couldn’t find real examples of Unity games using it. We decided to learn it ourselves while in production.”
Eight months later, their satirical strategy deck-builder shipped on Steam, powered by nearly a hundred Rive artboards.
A small team chasing a feeling
Patriots Division — Roy in Italy, and Fredrik in Sweden — works like most indies: lean, remote, and improvisational. Roy handles story, design, and motion; Fredrik covers code and systems.
Their creative goal was emotional. “I wanted people to feel the fantasy,” Roy says. “If you’re a witch casting spells or a CEO making shady deals, it should move like that.”
In Pay 2 Win, players take over a failing game-studio as the new boss, working with two assistants — May, a gambler accountant, and Annie, a self-proclaimed witch — to rebuild the company. You cast spells, place facilities, combine cards, and hunt for endless synergies to grow your empire. The game mixes deck-building strategy, idle mechanics, and visual-novel storytelling, letting players choose between passive progress and active control.
Rive became the medium for all that feeling: an editor where art, timing, and logic could live side by side without re-implementation in Unity.

What lived in Rive and what stayed in Unity
Rive’s Unity runtime supports full production UI. That let the team keep complex logic in Unity while authoring nearly every surface-level interaction in Rive.
In Rive:
Main menu
Story and dialogue interfaces with branching text and animated reactions
Coins, spell effects, and animated backgrounds
Prototypes for new panels and transitions
Reusable UI components built with Lists
Interactive story cutscenes
Easter eggs and dynamic dialogue
Upgrade screens and progression screens entirely in rive
Mana bars and impact frames
Buff panels, event triggers, day and night cycle
In Unity:
The 2D tile-based “studio floor” where players place and upgrade facilities
Drag-and-drop systems and resource logic
Deck-building mechanics and data structures
This split let both creators move fast. “We do our setup once,” Roy says. “Then I can change anything, colors, layout, animation, and it just plugs into Fredrik’s system.”
That loop captures the essence of Rive’s Unity workflow: design and engineering stay decoupled but connected through shared variables and data binding.
The bridge between Rive and Unity
Technically, each major UI screen runs as a Rive Widget (Canvas-space component) connected to Unity’s serialized data model. Fredrik uses view-model bindings to drive parameters inside Rive’s state machines, things like progress, currency counts, or mission completion.
“We pass data to Rive through variables and triggers,” he explains. “Roy defines them in the Editor, and I bind them to my local variables. Once that link exists, everything else updates automatically at runtime.”
The result is a clean data flow: Rive handles all timing and presentation; Unity handles logic and game state.
Data Binding Lists: the turning point
When Rive’s Data Binding Lists feature became available in the Unity runtime earlier this year, it solved months of manual workarounds.
“I’d been waiting for Lists all summer,” Roy says. “Now I use them for everything: particle effects, spell effects, mission panels. They replaced all the weird workarounds we were doing before.”
Lists let designers spawn and destroy repeatable UI elements directly in Rive. Before that, they had to manually instantiate separate artboards in Unity. After switching, they rebuilt entire panels, like the facility and mission menus, cutting iteration time and file size.
That aligns with how we think of Lists: dynamic, data-driven structures that respond to runtime variables.
Performance and optimization
With over 100 artboards, optimization mattered. Roy learned to separate assets into smaller files and minimize texture imports. “Large view models with hundreds of variables can slow things down,” he says. “I split them into smaller logical groups. That helped a ton.”
Fredrik also noted rendering order as one of their trickier discoveries. Early on, the team ran into some layering surprises while learning how Unity’s Canvas renders textures and depth. “Once we understood how Rive’s pass sits in Unity’s render order, performance was solid,” Fredrik says.
Prototyping that becomes production
Early in development, Rive doubled as their prototyping space. “If we wanted to test how a panel slid in or how a button pulsed,” Roy says, “I’d gray-box it in Rive, share the link, and everyone could see it live.”
That immediacy turned discussions into experiments. “We could work separately but in the same direction,” Fredrik says. “It took complexity off the Unity side and gave Roy freedom to try ideas before they hit code.”
Because those same artboards shipped in-game, the prototypes weren’t throwaway — they simply gained data bindings and runtime logic.
Inside the runtime
Pay 2 Win follows best practices from Rive’s documentation: each major UI screen runs as a Rive component inside Unity’s Canvas system, with the runtime managing state-machine triggers and view-model variables.
Fredrik explains, “Unity’s built-in 2D animation tools can get heavy when you want detailed timing or layered motion. With Rive, we keep that expressive layer separate. It’s easier to maintain, and the game performs great.”
Since Roy keeps variable names consistent across artboards, Fredrik connects them once and trusts the future changes remain stable. It’s a concrete version of the designer-developer handshake Rive was built to enable.
Lessons from learning Rive
Roy freely admits he went Rive-wild. “Rive was my hammer, and everything was a nail. I wanted to see what it could really do.“ That experiment surfaced a few lessons for small Unity teams exploring the runtime:
Start early
Adding Rive midway means re-authoring assets. Beginning with it makes Rive part of the foundation.
Document variables and view models
A shared naming system keeps files aligned and prevents broken bindings
Prototype in motion
A rough Rive animation communicates intent faster than static mocks. Timing is design language.
Treat Rive as a production tool
The Unity runtime is made for shipping assets, not just previews.
Why this story matters to us
This is one of the first public examples of a self-serve Unity team taking Rive from prototype to shipping without Enterprise support. They worked from public documentation, YouTube videos, and Rive Community threads, discovering most answers through experimentation.
Their results show how approachable the Unity runtime has become:
Smaller teams move faster. Designers own polish without adding engineering overhead.
Developers keep logic clean. Visual complexity lives in Rive, not in code.
The workflow scales. State Machines and Lists behave the same in production as they do in the Editor.
Because Pay 2 Win blends deck-builder strategy, roguelike randomness, and idle progression, its UI has to serve both quick interactions and long sessions of passive play. Rive made it possible to author motion once and let it scale across both modes, something that would’ve been tedious to replicate by hand.
For Fredrik, that simplification mattered most. “It moved a lot of the complexity away from the functional part,” he says. “That’s huge when you’re a small team.”
Looking ahead
Both developers plan to keep Rive in their toolset. “It’s my favorite tool of the year,” Roy says. “If I can use it, I’ll use it anywhere.”
Rive gave them a way to keep design and development moving at the same speed.
Play the game
You can play Pay 2 Win: The World Is Mine on Steam to see Rive running inside Unity.
Building a Unity game of your own? We’re collecting more production stories from teams using Rive runtimes. Tell us what you’re shipping.
Join our newsletter
Get all the latest Rive news delivered to your inbox.