Top 5 things you need to consider
Games have been using real-world data to enhance the gaming experience for a long time now – it is not a new concept. It does, however, seem to go in and out of fashion and rather than simply being a function of popularity, it seems the trends are more directly linked to how easy real data integration is to implement and that is dependent on the platform the game runs on or, more specifically, how connected the platform is. Real-world data integration relies on the game being able to pull, or have data pushed, from a source.
The sports genre is where real-world data consumption in games happens most frequently. For years, sports club management games such as Championship Manager from Eidos, Football Manager from Sports Interactive and a variety of EA Sports titles, such as FIFA Soccer, have made use of real-world data to enhance the gaming experience and make the games feel more real. In these types of games, the data is generally pushed out to the game via updates, meaning the freshness of the data is dependent on the actions of the player.
Many fantasy sports games not only make use of real-world data, they aim to do so in real-time which poses a significantly bigger challenge. For this reason, most fantasy games have, to date, been browser based. However, as we move forward the assumption of a connected backend is valid for nearly all gaming platforms and so these games are becoming more and more popular on other platforms such as mobile.
Real-world data definitely adds to the gaming experience but processing it in real-time is challenging. Here, at GameSparks, we have been working with Flip Sports and Lemon Moose Games to create a new fantasy football game based on real-time in-game events. Essentially, players pick teams and then earn fantasy points that are derived from how the real-world players perform in the match. Fantasy points are awarded to players in near real-time and when the final whistle blows, the player with the most fantasy points wins the game.
This is a difficult requirement to meet. Thankfully, the data is readily available from OPTA but there is a lot of processing required in order to make this data consumable by the game.
To enable such an integration, GameSparks provides a SFTP interface for ingesting data into the GameSparks platform. When a new file is uploaded, we get an immediate kernel notification on the server to tell us to process the file, so there is no delay waiting for scheduled jobs to scan for new files. Files are then immediately loaded into Azure Blob Storage and Lemon Moose Games have attached GameSparks Cloud Code to the ‘File Delivered’ event on the platform, which triggers the required processing to make the data consumable in the game.
The processing required is not trivial. GameSparks allows Lemon Moose Games to ingest the data, load it into pre-defined structured storage on our Mongo DB cluster and then execute a wide range of functions to convert the data into Fantasy Points for the game to consume.
OPTA delivers the files in a specific pre-defined format. The data in these files needs to be re-structured so as to work for the Flip Sports game. It has to be error checked and exceptions have to be handled gracefully. In all, there are thousands of lines of cloud code to implement the logic necessary to process such complex data.
In speaking to Lemon Moose and some of our other customers who are processing data in real-time, there are 5 key things one needs to consider when adding real-time data integration to your game.
- Real-time vs non-real time. Real-time processing is significantly harder to do than non-real time. Any errors encountered within the data sources can have an immediate consequence to the game play experience and it is easy to under-estimate the amount of development required to minimize this and make the experience better for your players.
- The data needs to be well structured. Make sure that whomever provides the data can do so in a well structured format. Luckily, companies like OPTA, who specialize in providing data feeds to companies, do so in a well structured manner. Other data sources are not so well structured and this can lead to post-processing issues later down the line.
- You need to implement strong exception handling so that game play can cope with issues as they arise. The amount off errors you encounter will be directly related to how well the data was structured. Regardless of the structure, you need to plan for exceptions and handle them elegantly. Check with your data provider on their exception handling processes as if for some reason the files you receive are corrupt, you need to know you can get them re-delivered immediately and what the process is for doing that.
- Decide whether to push or pull the data. If data gets pushed then you want to make sure you reduce the time from when files are received to when processing is triggered. GameSparks handles this for you as described above. Pulling files is probably easier programmatically but it doesn’t work as well for event driven real-time data.
- Make sure you have some good debugging tools. When developing the server-side file processing you could end up with thousands of lines of server-side code and you will need access to a debugging tool that gives you the same level of debugging capability you have come to expect from the tools you use to build the front end. GameSparks provides a strong debugging tool and that is one of the reasons it was chosen for Flip Sports’ game.
Real-world data can be used to enhance game play significantly but it can also be challenging – particularly if you need to process it in real-time. GameSparks’ Games-as-a-Service platform, is a cloud-based platform for games developers to help them build the server-side features of their games and then manage their games as a service post launch. It provides developers with a full suite of functionality for processing real-world data in real-time and non-real time.