Friendzone Update #8: Workshop #4: Performance, Optimization & VFXs
Workshop #4 wrapped up our Friendzone workshop series with a deep dive into performance, optimization and VFX for mobile.
Together with Manu and Kuruk, we looked at a unoptimized 36-room dungeon and worked through the changes that can turn a heavy scene into something much more mobile-friendly.
And importantly, everything was tested on a real Motorola Edge 60 Pro, not an emulator.
Key Takeaways
Mobile performance has different limits
Phones have to share memory between CPU and GPU, unstable connections are common, transparency is expensive and performance can drop further when the device heats up.
Reduce unnecessary assets and duplication
The first optimization pass removed 136 duplicate materials and mesh copies and compressed textures to a maximum of 1024x1024
This alone significantly reduced memory usage, geometry and texture counts.
Simplify geometry and code
The dungeon originally used around 2,500 meshes for walls, floors and ceilings.
By merging geometry per room, that dropped to around 70 meshes.
The team also:
- Removed unnecessary allocations inside loops
- Added frame skipping for systems that do not need to update every frame
- Rendered only the current room and nearby rooms
How you load matters
Instead of keeping the entire dungeon loaded, the optimized version only loads the nine-room area around the player.
As players move, old sections are unloaded and new ones stream in.
This means only a fraction of the full scene needs to stay in memory at once.
Keep collisions simple
Complex mesh colliders can destroy performance.
One tree with individual leaf colliders was enough to heavily impact the scene.
For most objects:
- Use simple Box Primitives where possible
- Remove collision from decorative objects
- Keep visual meshes and collision meshes separate
VFX still need a budget
Lights, particles, transparency and other effects all have a cost.
A few practical tips:
- Use material emission instead of extra lights where possible
- Keep particle counts controlled
- Use animated particles to create stronger effects with fewer particles
- Only add effects when they actually improve the experience
The Result
After the optimization passes on the test device:
- 70%+ fewer triangles
- 90%+ fewer entities
- FPS improved by more than 2x
A strong reminder that performance often comes from architecture and loading strategy, not just prettier or smaller assets.
Three Rules to Remember
Kuruk closed the workshop with three simple principles:
- Measure on a real device before trusting anything
- Mobile budgets are limits, not suggestions
- How you load your scene can matter more than how polished individual assets are
Homework
Open your Friendzone scene on mobile and check the Stats Panel.
Set the performance profile to High so you can see the real rendering cost of your experience and start identifying the biggest performance problems.
The build phase is still running, so there is time to optimize, test and improve before submission.
Workshop #4 Recording here
Questions or blockers? Join the Friendzone channel on the Decentraland Discord
Happy optimizing 