Demolition Derby: A Unity for mobile games case study
Destruction Crew, a 3-man indie studio in the Netherlands have taken their love of demolition derby crashing, chaos and mayhem and turned it into a hit mobile game.
Demolition Derby, a real-time online multiplayer crash-racing arcade game
Create a great multiplayer experience that players embrace
iOS, Android, VR for Android (various headsets), Win Store Apps
Emmen, the Netherlands
A super-popular multiplayer
Thanks in part to Unity’s multiplayer functionality, the Asset Store, and multiplatform support, Demolition Derby is a smash success (no pun intended) with over 15 million downloads.
- Scaled between 200 to 5000 concurrent users with help of Unity Multiplayer
- Asset Store reduced time for creating cars from months to weeks
- Over 15 million downloads
- Featured at Made with Unity Showcase at Unite Europe 2017
Multiplayer was a no-brainer
When you create, they say you should start with what you know and love, and that is exactly what Destruction Crew did.
“We’ve always loved those super-fun, high-speed, derby destruction games, and we just really wanted to make our own game, give it our own twist, and see what we could do with it,” says Steven Derks, lead programmer and co-founder at Destruction Crew. “What can I say, we love to destroy stuff.”
Given the dynamic nature of their game, it seemed obvious to the Destruction Crew that playing online against others was something players would want to do.
“It’s really fun to play against bots, to play against Artificial Intelligence, but it’s much more fun to play against real players,” Derks says. “When you actually smash someone’s car in real-time, you’re like, ‘yeah, that’s it.’ And Unity Multiplayer made it easy for us to create that rich experience.”
However, issues such as network physics, concurrent user limits, and the need for a monetization plan presented challenges for a team of three with limited resources. Unity offered a number of features that helped them overcome these challenges.
Network physics make it a great user-experience
One thing that made it possible for Destruction Crew to offer a good online multiplayer experience was network physics via Unity’s API. This made it easy for them to simulate physics, so the experience was close enough alike on all clients to make it feel right.
Rather than using Unity's default, they built a custom NetworkTransform, which took about a month to design, code and test.
“Thanks to Unity's network serialization, we were able to easily transmit all the physics data required to simulate physics across all clients,” Derks says. “Through the very simple implementation of the Network API, you can implement network physics, no problem, and that was really important for our multiplayer mobile car game.”
Another multiplayer feature that Destruction Crew really appreciated was the ability to create private rooms.
“With Unity, you just set a password and you’re done, basically. When friends want to play together, they can just make a private room, password protect it if they want to, and they’re good to go,” says Derks.
Keeping up with their own success
Prior to release, Destruction Crew had hoped that players would embrace the multiplayer version, but they were nevertheless taken by surprise by the degree of popularity.
“In the beginning, we had 200 concurrent users (CCU), and we thought that should be enough, so just to be sure, we raised our CCU cap to 1000. But funnily enough, within a week, we were up to 5000 users. That was way more than our cap, but the Unity team always made it really easy for us to raise the bar. With the flexibility of the backend, we can go to 5000 CCU, no problem,” Derks says.
Fast and furiously adapting Asset Store cars
Players who love demolition derby are usually car lovers too, so it was important that they had a good selection of cool cars to choose from. For a small team like Destruction Crew, however, it would have been time-consuming to build all the cars from scratch.
“We wanted to give players lots of cars to choose from, but making them from scratch was so resource-demanding,” says Nick Timmer, game designer and co-founder at Destruction Crew.
The solution was to buy car packs from the Unity Asset Store and then adapt them to their own style changing the UV mapping texture, so they could apply their own custom texture and skins.
“The Asset Store was super important; I can’t even imagine what it would’ve been like to build cars from the ground up. It would have taken us months instead of weeks,” says Timmer.
Making the cars marketable
Because the cars are such an important part of the game, Destruction Crew decided to make it possible for players to customize them with new bumpers or wheels, for example. They then took it one step further and made this part of the game part of their monetization plan, too.
“Normally, players can only personalize their car if they have reached a certain level in the game. But we thought it would be a good idea to introduce what we call the black market, where players who haven’t reached that level can buy customization parts as an In-App Purchase (IAP).”
At first, Destruction Crew experienced some issues making IAPs work smoothly, which slowed them down, but as soon as they implemented Unity IAP, everything changed for the better.
“Previously we used other plugins, but they were difficult to use. It was always a little bit of a hassle. We would import per platform, but there were all kinds of problems. Unity IAP just makes it really easy. You just import it, hook up some functions, and you’re basically done. That’s it,” says Derks.
Continuous updates and community support
Destruction Crew have used the Unity Multiplayer solution from its first beta version. Although the early versions naturally were missing features here and there, they didn’t experience this as a problem as they developed their game because of the frequent updates that came with Unity Pro.
“Whenever we were missing a given feature, almost literally the next day, there would be an update of Unity that included it,” Derks says.
Features aside, the team still of course ran into some issues when they were building their game. In such cases, however, they invariably found help within the Unity community.
“The Unity community really helps us with fixing problems. And they were always really helpful. We always looked into Stack Overflow and the Unity Forums, and 9 out of 10 times we found a solution.”
Whatever platform or technology
Demolition Derby Multiplayer was initially released to iOS, Android and Win Store Apps, and Destruction Crew found that it was very easy to adapt it for each platform.
“We only had to change a few settings, like maybe texture or mesh compression settings, but it was mostly just build and play.”
With VR beginning to make its imprints on the market, it seemed like another great platform for their particular game. And in their case, it was really easy to make a VR version.
“We’d only made mobile games up until then, but one of the great things about Unity is that you know whatever great new technology comes along, they’ll support it. So to make a VR version of our mobile game, we just really had to add a few plugins, and it was good to go,” Timmer says.
How do you get started with Unity for Mobile?
Follow this practical guide with information and resources that will get you on your way, save you time, and help you gain the most value when developing mobile games using Unity.