Loading…
How We Built Shopify Party
2023-10-18
- Source
- Shopify
- Published
- Added to Yomu
Summary
Shopify Party is a browser-based internal tool designed to make virtual hangouts more social and reduce video fatigue after Shopify moved to remote work. Its 3D spaces favor non-prescriptive play, letting participants explore and manipulate objects, join or leave at any point, and use a small control set rather than follow prescribed rules or win conditions. The initial version was built in three months with Unity 2020 and the Universal Render Pipeline, exported to WebGL, while Normcore synchronizes game state, provides VoIP and networked physics, and uses room time to keep autonomous objects aligned across clients. Performance work included third-party assets, GPU instancing for repeated models, simpler materials, and adjustable render resolution. The launch exceeded expectations, with hundreds of games played each week, and the tool is positioned as an option alongside video conferencing rather than a replacement.
Context
Shopify’s move to remote work created a need for a break from video fatigue and a space designed for social interaction. The team also wanted joining virtual hangouts to be frictionless, with no installation required and no complex controls or lengthy tutorial.
Approach / What changed
The team built browser-based 3D environments in Unity 2020 using the Universal Render Pipeline and WebGL, with Normcore handling synchronized state, VoIP, and networked physics. Gameplay intentionally avoids prescribed rules and win conditions, while room time synchronizes autonomous objects. Development was accelerated with third-party assets, texture-based character outfits, GPU instancing, simpler materials, and adjustable render resolution.
Takeaways
- Normcore uses a client-driven model in which each player controls the state they own, while the framework propagates updates to connected clients and interpolates movement.
- Driving autonomous object movement from synchronized room time keeps deterministic animations, such as oscillating platforms, aligned for clients even when someone joins later.
- GPU instancing groups repeated models into fewer draw calls, and adjustable render resolution reduces the pixels rendered to improve performance on different devices.