Search Unity

Behind the scenes of Subway Surfers: A Q&A with SYBO

June 16, 2022 in Games | 11 min. read
Subway Surfer characters superimposed on famous landmarks
Subway Surfer characters superimposed on famous landmarks
Topics covered
Share

Is this article helpful for you?

Thank you for your feedback!

How do two students’ dreams become a three-billion-download reality? Ten years ago, SYBO released what grew to be the defining game of the endless runner genre: Subway Surfers. With a million downloads in its first three days and 100 million downloads in the eight months that followed, SYBO jumped onto a bullet train – and created one of the most popular mobile games ever.

We sat down with CEO Mathias Gredal Nørvig and Technical Director Murari Vasudevan to get a behind-the-scenes look at SYBO Games and Subway Surfers. In this short Q&A, they delve into the game’s origins and themes and provide insight on scaling, self-publishing, and rebuilding the game. 

 

What is the story behind the concept for Subway Surfers?

Mathias Gredal Nørvig: Founders Sylvester and Bodie both came from the subculture of graffiti, breakdancing, and street art. They met in animation school. At the time, Bodie had a clothing store selling streetwear and Sylvester had made a drawing for a magazine that was sold in the store. They connected over the fact that it was a small subculture 15 years ago. They ended up working on a graduation project together, “Trainbombing,” which can be seen on YouTube, that had a young rascal in it running from a guard after having painted graffiti on a train car. So the start of the game is the same as the start of the short-form animation piece. 

Their goal was to perfect the runner genre, where players follow our logic: an ever-skewing smooth horizon, no sharp turns, and that they can control with swipes. They wanted bright, vivid colors to evoke a positive and uplifting environment. It was also important to promote diversity and inclusivity. This is how the “World Tour” concept was created, so that the crew could go to any city, find a subway, and feel at home.

Three Subway Surfer characters standing in a yellow background

How has this concept been executed over the years?

Mathias: Since the beginning, the Subway Surfers crew has amassed several hundred characters and has traveled to almost 100 destinations. We treasure the fact that everyone can be a Subway Surfer, and have a full focus on diversity. We celebrate Pride and have partnered with Lady Gaga’s Born This Way Foundation on the #BeKind21 campaign. Our objective has also been to do as much good as we can with our platform, and that has inspired our green and impact projects.

Subway Surfer character with a backpack in a forest

What have been the biggest challenges with scaling up so fast?

Mathias: For a smaller studio to be supporting a game with 100 million players is an extreme task. It’s incomprehensible that there was a young team operating such a massive game. We, along with Unity, grew as the industry grew, so everything, including the parameters, were changing quickly. 

Our goal from the beginning was to give gamers the best possible feeling when playing Subway Surfers, and we keep this in mind with every step and decision we make.

We took over publishing for the mobile platforms in mid-2020. For the last 18 months, we’ve been speed learning how to self-publish. 

We’ve improved the game, but there’s always the potential to continue to grow and optimize. When we took over self-publishing, initially we were deactivated on the ad platform, because although we only started with 10% of our player base, it amounted to 10 million players, and they thought we were hackers.

 

How about the technical challenges?

Murari Vasudevan: On the technical side, for iOS and Android, the scale of the number of devices is enormous. For Android, there are more than 20,000 unique devices. When we took over publishing, we needed to ensure that the game ran smoothly on all devices that we targeted. 

We had issues with performance exceptions and crashes, and with the application not responding. We dealt with the scale of each of these issues happening live, as well as the need to diagnose it in real-time. In order to not put off our player base, we needed to look at the Unity Profiler, optimize, and work with the loading time. We needed to ensure that the loading time matched or improved upon the original. 

To ensure good gameplay on even the least-powerful smartphones, we devised a number of techniques, including batching level geometry to reduce draw calls, rotating coins using C# scripts running on the CPU rather than shaders running on the GPU to further minimize draw calls, minimizing UI redraws and ensuring optimal timing in level generation, and not generating more content than a user can see. The Unity Profiler and Frame Debugger make it much simpler to monitor exactly how all these techniques are working. We also use Unity’s different quality settings to optimize fps and refresh rates on low-end devices.

We spent a lot of time tweaking our bootstrapping funnel and optimizing our code to ensure that we were really efficient in our process. We had to have a lot of analytics in place to see what players were doing, how they were going through the various stages, and where they were dropping off. This was the flow that came with taking over so many devices and players, and it was an ongoing challenge we had to confront right from the start.

Subway Surfer character riding a dragon on train tracks

How was the process of rebuilding the game and ensuring that the special gameplay feel was maintained?

Mathias: It was quite an interesting process. We knew we wanted to solidify the codebase and optimize it. In some of the places where I think programmers would call spaghetti code, the optimized code actually performed worse because some of the intricacies of poorly written, but long, code brought issues. Part of it was that they felt it could be written in two lines because the logic was perfect, but in doing so, missed some of the aspects. We had to add lines of code to smoothen it out again. 

There were similar issues for the animators when it came to the touch and feel, the special sauce of the game. The more seasoned animators were suggesting a better manner to execute, but the results didn’t feel as good as the old version. Even currently, our biggest assets as a runner are the perfect touch and feel, and the smoothness of the animation. In order to solve the issues, it required the founders, some of the most seasoned members of the SYBO team, and some of our biggest fans to play and get involved for moment to moment feedback. One of the founder’s cousins played endlessly and came back and said that at certain high levels, it breaks the logic. The feedback was immensely helpful.

Murari: It was tweaked and eventually got back to where we were prior, but with a much stronger codebase. The code that we rewrote was much cleaner. I used data-driven patterns and Scriptable Objects, as well as events to pass messages between systems, with very little existing in the previous codebase. They were state machines that you could configure visually to go from one state to the other. 

Then, at the end of the day, there were about 100 different “if statements” that counted for a myriad of things that we learned that weren’t in the rewrite that we had to report back in. For example, if you were on a train and you swiped, the character wouldn’t transition fast enough off the train. In our internal test, we discovered that you would die a lot by not being able to get off the train quickly enough. This issue was in the range of a millisecond of a difference, but you really felt it.

Mathias: The same went for the generation of chunks, the level gen that followed an old logic which was flawed and full of charm. But then when it was optimized, people complained of missing elements from the original. Even the acceleration became an issue. Players found issues with what speed to start at and what’s the acceleration, as they were generated in two different ways. We realized that in the newer version, a player started slightly quicker and then got to the same beat, and it felt off to our most loyal and frequent players. All aspects of the game had to be looked at and reimagined for the purpose of maintaining the genuine look and feel of the 2012 version.

 

The big lesson to learn is not to mess with a classic, and after 10 years and 3 billion downloads, Subway Surfers most definitely qualifies. 

Want to know more? Read our new case study to learn how the partnership between SYBO and Unity helped Subway Surfers become one of the top mobile games of all time.

To learn more about SYBO’s sustainability and philanthropic efforts, watch our new video interview.

This content is hosted by a third party provider that does not allow video views without acceptance of Targeting Cookies. Please set your cookie preferences for Targeting Cookies to yes if you wish to view videos from these providers.

June 16, 2022 in Games | 11 min. read

Is this article helpful for you?

Thank you for your feedback!

Topics covered