Improving Time to Market through Centralized Infrastructure

Oliver Seifert
Pocket Gems Tech Blog
5 min readJun 15, 2020

Pocket Gems prides itself on listening to and caring for our players. With millions of players across the world, ensuring we hear the voices of all players though can be a challenge. That’s where the Pocket Gems Data Infrastructure team comes in. We have created a data pipeline that allows us to collect game event data from players across the globe in near real-time (see one of our engineer’s articles on how). Additionally, we have designed various visualization tools that give our developers a lens through which they can understand our players’ behavior.

However, the impact of Data Infrastructure goes beyond just data collection and presentation. As a team, we can actually affect the company’s time to market for our newest games. In this post I discuss a newly launched product that does just that.

Until recently, there were several steps involved at Pocket Gems before a new game could effectively record and analyze its data:

1) Create a new game server that integrates with our data pipeline

2) Send all key game events to the game server

3) Verify that all data is sent correctly

4) Analyze the data post-launch

This process was repeated for every new game and, given the breadth of the tasks, required people from multiple functions to work together. It was a lengthy and costly process, but was critical for a game to be able to launch. This is where the Data Infrastructure team decided to help.

Our solution

Seeing the problem at hand, we set two primary goals for ourselves: 1) reduce the amount of duplicate work that is done for each new game and 2) simplify the process to the point where a single person without prior SQL experience can complete all necessary tasks. Completing these goals would mean saving significant development time and resources, thereby increasing our iteration speed and reducing our time to market.

Creating a Centralized Server

Our first step was to tackle the issue of having to create a new game server for every new prototype. Although our live games each have a robust server, they have grown to support the games’ size and specific requirements over the years. For prototypes we needed something both nimbler and more widely applicable. We solved this by creating a new centralized game server, built to support all future game prototypes. The server is fully integrated with our data pipeline and handles all data manipulations needed for storage in our data warehouse. Game teams are able to easily send their key game events to the server via a simple API. This new system removes the need for games to set up their own server, one of the most painful aspects of getting your game up and running.

Data Verification

Next, we looked to address the issue of data verification. Though sending data from the game to the pipeline was now easy, game teams still had to ensure that they sent the data correctly. This generally meant writing several SQL queries to comb through the data and verify various data entries and data types among other things. The process was manual and extremely error-prone. To combat this, we created a set of new data verification features that allow developers to quickly review their data without writing a single SQL query. For example, one feature allows them to see a timeline of events for a specific user in near real-time; enabling game teams to play the game on their own device while simultaneously observing how the data is being stored. This has proven to be one of the most effective ways of verifying their data logging.

A developer follows a user’s journey to verify their data logging

An Automated Dashboarding System

Lastly, we wanted to give game developers without prior SQL knowledge the power to analyze the key metrics of their games. Our solution for this was an automated dashboarding system that presents critical business metrics for any new game as soon as data is recorded. Game teams can utilize this to better understand user retention, install rates, and session behavior for example. The previously mentioned centralized server was key for this system to work as it ensured standardized data storage across games. In the future, we will be enhancing the dashboarding system to provide more flexibility and to include additional metrics to further increase the self-sufficiency of game teams.

A sneak-peak at the dashboarding system (showing test data for illustrative purposes)

Conclusion

With this project, we were able to significantly reduce the amount of redundant work required by our game teams, speed up their development process, and enable them to easily assess their prototypes’ metrics. As an added benefit, all games are now logging their data in a standardized format, and use the same metric definitions when evaluating their data. This creates greater transparency and consistency across the company and empowers us in our day-to-day discussions. Most importantly, we were able to improve our games’ time to market.

It’s easy to think that only changes to the development process of the product itself could have such an impact. However, in this case we proved the benefits of centralized infrastructure in an environment where iteration speed is critical. The next step is for us to continue iterating on this new solution as well as expanding it. Games have a lot more in common than just data. So we’re looking to further automate the prototype process, which will allow our teams to focus on what’s truly important: building the best gaming experience.

Join our team! Pocket Gems is hiring!

--

--