There are different dimensions of a high-quality gaming experience, one would be high-quality animation, what matters is the animation is smooth or not in the front end. It is very frustrating if you are pressing the button on the app, or the game in the context, and the game doesn’t react automatically. In today’s world, people expect things to happen immediately, it’s not like the early 2000s. Another aspect of high quality is that if I take a certain action and the action does happen, that is the stability of it. So the first one is, it should happen immediately, and the second, it should happen, and the third too, let us say, if I had gameplay and I won, the money should get credited to my account. If I tried entering the game, was I able to enter the game or not, did the money get deducted and did I lose the money because there was some network fluctuation, all of these are packaged in high-quality art, high-quality design. That sort of improves the experience of playing the game. Those are the several aspects of quality and other variables that make or break. For example, can your system manage the scale if we had a 10x increase in concurring users, which does happen. There are times we suddenly see 10x spikes, can the system handle it gracefully, automatically scale to handle those concurrent users, those are the other variables. The whole point is that if we have to solve it, we have to solve it in an automatic fashion as can. So if you’re still relying on manual scaling up, it’s not going to work.
Obviously, scaling mechanisms are there, we have posted on Google cloud and use scaling mechanisms that automatically kicks in and scale up. We are also working on predictive scaling so that we can even start scaling up before the traffic scaling actually happens. For the gameplay quality; obviously, they do a lot of testing in every game to ensure is it high-quality because games are very complex stake machines. Apps have certain sets of complexity, but in gameplay, the inputs are so variable and the combination is so high that testing out a game is extremely hard, so we spend a lot of time testing it out and we have variables to standardize it to different format of a game. Now, we are not just testing, we have automated a lot of those standardized testing mechanisms so that it can be easy to test on an ongoing basis. The choice of technology framework, for example, we do all games of unity or native, so the animation rate is extremely high. If you use another tech like HTML files etc. that might be faster to build, but it cannot animate at a high pace. So, the choice of the technology stack, and on the backend, we started with the gaming engine, now we are building our own gaming stack at the backend; so that we can find a two-way communication with the user and the app. For example, if the user goes out of the context of the game, the two-way communication can break, but we are thinking of how even if the user goes out of the context, maybe there is a backed-up two-way communication channel so that we will get the user back to the context of the game even if there is a network fluctuation. So how can we build a high-quality backend stack to build a high-quality game? A lot of machine learning as well goes into play, for example, the network fluctuations automatically do a refund, if the money was deducted. There are times when customers are unhappy about something and can we respond back to the customers in less than a minute, that is something that we haven’t solved yet, but in our mind in terms of solving it and machine learning will solve a lot of these problems, so that immediately we can solve the problem and we don’t lose the trust of our customer.
All of these layers, starting from front end to backend to machine learning, contributes to building a high-quality experience. High-quality is not the game that you see, it is a lot more beyond that.
Watch Suvesh’s full session: