The video game industry remains one of the fastest-growing markets in the world due to the proliferation of home consoles and the popularisation of mobile games. According to Gartner, global video game sales will have reached $111.1 billion as of the end of 2015.
Increasingly, modern video games focus on interactive multiplayer experiences and in-game purchasing. Developers are designing their products with this in mind, ensuring they have implemented the correct infrastructure and chosen the right data platform before starting a project.
We spoke to Manu Marchal, MD EMEA at Basho, a NoSQL solution provider, to get his perspective.
1. The video games industry has developed at a phenomenal pace in the past decade. How has this impacted its requirements from an IT infrastructure standpoint?
The industry has been completely transformed by the Internet, as well as smartphones. Games used to be mostly single player offline games. But now, the Internet has enabled games to be played across the globe by tens of millions of players in real time. These players communicate with each other on their team’s progress and strategy (in titles such as Leagues of Legends, Clash of Clans) and availability of the service is more critical than ever.
To support such games, massively distributed architectures that can easily be scaled and can replicate the data across the globe are needed to not only ensure the ability to cope with the huge number of players, but also provide low latency access to all players no matter where they play from around the planet.
2. What challenges does the video games industry pose to developers of global video game releases such as Electronic Arts and Nintendo?
For game developers, it is critical that they can work on a solid IT foundation that can easily scale, has very high availability characteristics, is inherently fault tolerant, and most importantly simple to operate. The industry’s biggest brands have failed on launch day, making millions of fans angry when they buy a new game, but are unable to connect to the online servers which couldn’t cope with the load.
Such failures have a big impact on missed revenues and the brand’s image as a whole. As a result, the non-functional requirements of scale, availability, fault tolerance and operational simplicity are now widely accepted as a de-facto standard part of the minimum viable product (MVP) for any online game.
3. Are smaller ‘indie’ developers such as mobile app developers facing different problems to the large studios?
Most mobile games nowadays tend to be developed by small teams, whether in indie/startups or large gaming studios. However, large studios also have ops teams that can create development and productions platforms to enable the game teams to be productive. Small studios don’t have this luxury and must also be cost savvy. They need to maximise their dev time over ops time and cost and often do so by turning to IaaS (e.g. AWS, Azure), PaaS (e.g. CleverCloud, Heroku) or even GamingPaaS (eg Hatch from Rovio, AppWarp S2 Game Server) to run their games.
The challenge they then face as their game grows in popularity is that the cost of these ‘aaS’ solutions can severely impact their bottom line. Finding the right balance between cost, agility and reduced ops is one to be carefully considered at design time, taking into consideration future potential growth, and can dictate where to run 100 per cent on platforms, go 100 per cent hosted or a mixed (i.e. run your own database and platform on IaaS).
4. How is NoSQL as a technology positioned to solve these challenges in a way that traditional relational database solutions may not be?
NoSQL database technologies have made a big difference in solving these challenges compared to what traditional relational databases could do. Traditional databases are limited in their ability to handle very large numbers of users whilst ensuring low latency access around the world and remaining available at low cost (both monetary and ops time). The relational data structure is also often poorly suited to the typical use cases seen in games such as caching, session management and logging. Databases in the NoSQL category aren’t all the same but each have their pros and cons making them much better choices for these use cases.
5. What aspects of everyday video games need to be supported by a NoSQL database solution?
Aside from the non-functional requirements better suited by NoSQL databases such as scale, availability and operational simplicity leading to lower TCO, it is also important to consider the type of data use cases encountered in the gaming industry.
Managing user profiles or game states, handling micropayments, supporting in-game messaging, all these are typically session management or session cache type use cases, ideally suited for key-value or document databases offering very low latency access to data. These data structures offer great simplicity and ability to scale compared to the relational ones. NoSQL databases like key value Riak KV and Redis or document databases like MongoDB or Couchbase are often selected for these use cases.
Time Series databases optimised for very high ingest rate of time-stamped data like logs are also becoming more in demand due to the need for real-time monitoring of the very large infrastructure the games now require. These time series databases, like Riak TS or Cassandra can easily handle thousands to millions of writes per second whilst delivering low latency range query reads and aggregation/roll ups.
Graph databases such as Neo4J have carved a nice niche for use cases including graph search, fraud detection and social networks providing great querying flexibility to traverse graphs.
Overall, NoSQL databases are often the prime choice for large gaming studios but also smaller studios as developers can now choose the right database for the right use case whilst keeping costs and operational effort to a minimum, even at scale.
6. Could you give a real-world example of NoSQL supporting a global video game?
The list of gaming companies having adopted NoSQL is long. Some are proactive in sharing their experience through their engineering blogs and they provide a great source of information to guide other developers in their selection of the right architecture and NoSQL databases. For example, Riot Games, the company which produced the hugely popular Leagues of Legends (over 70 million players) explains in great details their journey from MS SQL to distributed architecture and Riak KV for building their chat service system).
7. As games are becoming more sophisticated with the emergence of new technologies such as virtual reality, what challenges do you see for the future?
Predicting the future is always an interesting exercise. Virtual reality is certainly one area that is going to see a lot of development, providing an even more immersive and interactive experience with a greater emphasis on real-time data feeds. One can be sure that the pace of innovation in online gaming won’t stop and whilst the new trends and features are challenging to predict, there are some fundamentals that should remain valid whether in the next month or in the next five years. These are the need for global availability, scale and low latency access to data.
Those organisations putting their strategic efforts into building platforms that will enable their developers to innovate in the future rather than simply adopting the latest gizmo are best placed, in my opinion, to succeed.
Image Credit: Mclek / Shutterstock