As a developer, you encounter a seemingly endless number of tools and technologies popping up. It’s hard to determine what’s worth learning and what is just hype. In this article, you will learn about time-series databases and how some real-world companies are gaining value out of them in the video game industry.
Time-Series Databases for Game Development
Before getting into some specific use cases where time-series databases can be helpful for game development, let’s cover some of the basics about what TSDBs are as well as their strengths and weaknesses.
What Is a Time-Series Database?
As the name suggests, a time series database is a data store that is optimized for working with time-series data like metrics, events or any other data point that includes a timestamp as the primary field value.
There are two main benefits to using a time-series database. The first is pure performance in terms of both reading and writing data. Time-series databases can typically handle millions of data points being written per minute and are also able to efficiently query all data from within a specified period of time for analysis.
The second benefit beyond performance is developer productivity. A time-series database will provide built-in functionality for things like data transformations, aggregations, downsampling, retention policies, alerting and other common tasks seen when working with time-series data.
As a result of these benefits, time-series databases are the fastest-growing segment of the database industry over the past few years, according to DB-engines. More and more companies across numerous industries are beginning to see the value in using a specialized database for their time-series data.
On the other hand, time-series databases aren’t designed for all use cases. A prime example would be situations where you will be updating data frequently. Time-series databases are designed for writing new timestamped data points frequently and rarely, if ever, updating those data points. If your use case requires updating values regularly, it might make sense to use a more traditional relational database for that data and a time-series database for situations where it makes sense.
Game Development Use Cases for a Time-Series Database
Now let’s look at a few game development use cases and see why companies like Blizzard, EA, Unity and many others use dedicated time-series databases to improve the performance and reliability of their games.
User Activity Tracking
In addition to making sure your infrastructure is reliable, you can also use a time-series database to track user activity in your game to better understand and optimize your games. One example of this would be Playtech, one of the largest gaming software companies in the world.
Playtech’s performance requirements weren’t being met by out-of-the-box solutions, so they chose to build on InfluxDB. Event data is stored, then can be efficiently visualized and analyzed with various classic statistical models as well as machine learning models. Data stored weren’t just standard infrastructure metrics like CPU and memory usage, but also key business indicators such as logins, payments and in-app actions.
By using a separate time-series database, Playtech doesn’t have to worry about analysis potentially slowing its production servers. Queries are faster and can be run more frequently with a finer granularity. One major benefit Playtech cited in choosing this time-series datastore is the Flux scripting language. This language was designed from the ground up for working with time-series data and provides a number of developer-friendly features that improve developer productivity for tasks like combining data from multiple sources, transforming that data and then taking action based on the result. The combination of Flux and InfluxDB allows developers to create automated pipelines and tasks that can be set to run at specified intervals or dynamically based on external triggers.
As a result of this system, Playtech was able to create a predictive alerting system that resulted in being able to detect incidents on average 15 minutes faster than their previous off-the-shelf solution.
For online games, user experience is essential for success. Expectations are higher than ever, and even minor latency or downtime will have your players frustrated and leaving for the numerous alternative options. This type of monitoring is right in the wheelhouse for a time-series database and is applicable not just to game development, but to any other type of application monitoring as well.
Playtika is a game developer with over 34 million active users across its game portfolio. The majority of the games are social-based and highly interactive between players. Maintaining reliability, low latency and high uptime is essential for business success. To monitor their social gaming platform, Playtika relies on a system using Kafka and InfluxDB to implement dynamic monitoring and alerting for custom metrics. This system processes over nine terabytes of data per day and has resulted in improved reliability and insights across the entire platform.
Making a successful video game is a challenge, so it makes sense to do everything you can to stack the odds in your favor. One potential tool for that could be adding a time-series database to your development arsenal. Many large game development studios are investing and taking advantage of these specialized products to make their games more reliable and to get better insights into how their players are using their platforms and interacting with their games.
Featured image via Pixabay