It’s a tough decision, whether to make or buy a game analytics system. There are lots of things to contemplate before you make the big decision. I’ve been through the process; firstly, when building the deltaDNA platform to support the company’s consultancy activities, and then continuing to extend the platforms capabilities.
So what should you consider before taking the plunge?
1. Building your own - There are three main reasons why you would want to build a platform yourself. The first is price and keeping costs down, the second is security and ensuring the data is under your control, and the most important reason is if you are looking to be very specific to the game you have developed and are looking to tailor it to exact specifications. Regarding cost, you need to look at the database technology you are going to use to build this, infrastructure costs and hosting; the software engineers and the people you need to build it and add to it. And there is also the cost of running it and making sure it is always available, which is expensive to do. Once you start, it is very hard to back out, as you have to keep it running.
2. Compromises - There are really always compromises in any decision you take. If you are going to build your own then you have to look at the total cost of ownership, the cost of building and running it, and the return on investment. Understanding that, and knowing exactly what you are trying to build, and why you are trying to build it is crucial. Are you building it for one specific game, or are you going to use it across a whole set of games? If so what are the effects of that going to be? You have to really take the long view and factor in what you are going to use it for. Are you going to use it for marketing purposes as well as analytics? For changing game behaviours? Putting adverts into the game? Changing in-game offers? So there are a whole set of objectives to consider when building your own system.
3. Core database technologies - There are two different kinds of database technologies you need to look at depending on what you are building. From an analytics point of view you really need to look at the data warehouse, so how data flows in and what you can do with it. Are you simply going to collect the data, store it and run aggregates against it? Do you want to have charts to look at your revenue and your daily active users? Or do you want to put it into something that can do detailed data mining. If so, you will need some kind of column store, something that allows you to pull that data in, so you can undertake detailed analysis, such as HP Vertica or Amazon’s Redshift.
If you are looking to do real-time marketing, then you will need something that allows you to make decisions rapidly such as a memory database. Something like VoltDB, but there are different kinds available. You need to decide exactly what you are trying to build, and what purpose you are planning to use your data for, to inform your database decision.
4. Data storage - You will need a type of data lake, which could simply be S3 or you could put it into some kind of sequel database. If you are going to do analysis on it then you will need to have something quicker – a column store like Vertica or Redshift. It really depends on what you want to do with that data. If you are not going to recover it or look at it often, then storing it in a nice cheap simple storage like S3 may well be perfectly practical. If you want to analyze data continuously, then you will need to keep it in an active database that allows you to do real time analysis against that data and data mine it.
5. Validated data - For data capture, keep it as simple as possible, as you will be collecting large amounts of data. Most companies start with a simple key values style. If you need something more complex, you can start to build Json structures that allows you to have more complicated events. You need to get it into your system as quickly and efficiently as possible. We do quite a lot of processing as the data flows through and we validate it. We believe that validation is imperative. Making sure that the data is clean is probably one of the most crucial things in your data warehouse. So putting that up front, controlling the schemas and making sure that you validate the data coming through, are important things to consider as garbage in = garbage out.
6. Security considerations - You need to make sure all the data is secure and that you have a cohesive understanding of data protection. Bear in mind data protection legislation also differs between the US and Europe. You need to understand how people can access it and if there are any loopholes in your system. If you are collecting data, there is always the danger of hacking. To counter this, have an external security company validate your data and do penetration tests against your system to make sure there is no way an unauthorized external party can access it, attain passwords and get at the encrypted data. Making sure you have the data in a secure place and that it is encrypted when at rest is important.
7. Extension and third party tools - Make sure when buying an analytics system, that you can extend the platform, that you can plug third party tools into it and use whatever tools you want, to give flexibility. You can use the platform as a data warehouse, as well as an analytics tool. For instance, deltaDNA’s Direct Access, gives you that capability, and allows you to extend. Clients use the base platform, the core functionality, but then they extend it with third party tools that allow them to do exactly what they want.
8. Indies – There are free systems out there for Indies so every budget can be catered for. However, if you want to spend a small amount of money, then a lot of companies, including ourselves, will do Indie licences to make it cheap and affordable. The great thing about Indies is that they now have access to an incredible set of technologies. They have access to engines and analytics platforms that used to cost hundreds of thousands of dollars, which are now easily accessible (either free or very low cost), which means they can get on with what’s really important and exciting, which is creating original games.