How to "fix" the Arena from cheaters

Home Forums Angry Birds Epic Forum How to "fix" the Arena from cheaters

  • I was brainstorming a bit about this for a while and even though Rovio have made improvements to clean up the arena there are still some cheaters pestering the rest of the honest players of Angry Birds Epic.

    Make note that I have no insight in how Rovio have programmed the arena as of today so this is just some ideas I have formed by myself as an outsider. Also the numbers used in the examples are purely made up and does not reflect the numbers in the actual game.

    First: Fix it so even though the daily objectives gets reset you can not get any more points from them (might be obsolete now):

    1) In the database for Epic create a table (or add fields in an already existing table) for the daily objectives (only the row for a single player is shown in the example):

    Player_ID  |  1000  |  1500  |  3000  |    Date
    1012578    |    N   |    N   |    N   | 

    When the player fulfills an objective a function in the database makes note of that and changes the fields accordingly:

    Player_ID  |  1000  |  1500  |  3000  |    Date
    1012578    |    N   |    J   |    N   | 2015-02-25

    In the example above the player have fulfilled the objective for 1500 points but not the others. Also a date have been added for when that objective was fulfilled. This way even if the objectives gets reset the database is keeping track if they were already fulfilled on the current day. When the global reset occurs the fields gets updated to the first state described above.

    Second: Stop players from manipulating the score:

    Two tables in the database are created. One for the the reward wheel:

    Position  |  Base_Value  |  Type
     1        |    10        |  Points
     2        |    15        |  Snoutlings
     3        |    25        |  Pints 
    and so on for all 8 positions.

    That table have base values for all the positions on the wheel and what type of reward the position have. The base values are the values that are shown on the wheel in Stone League.

    The second table keeps track of the value for each League:

    League  |  Value
     1      |  1
     2      |  1.25
     3      |  1.5
    for all Leagues (1 is Stone, 2 is Wood and so on)

    When a spin of the wheel occurs and the player are happy with the rewards and exits the battle the position of the reward(s) are sent to the database that gets the value for each position and the type of the reward from table Reward_Wheel. Then it multiplies the reward with the number from table League_Values depending on what League the player are in. Finally it adds the rewards to the players totals (points and/or snoutlings).

    When the players comes back to the main arena screen the new totals are sent from the database to the game.

    Make note that no actual values from the players totals are sent TO the database, all values are gotten FROM the database.

    Question: What does this actually change?
    Answer: It makes it much harder for players to manipulate the database by changing the data created within the game and its saves.

    Question: Why get the point values from a table in the database, can you not just send the values from the game to the database?
    Answer: By sending the values directly to the database they can be manipulated. For example; by normal means you are only suppose to gain max 100 points by the wheel in silver league but that could be manipulated to be 500, 1000 or even a million. If you send the wheel position(s) instead those values can as best be manipulated to have the max value of that wheel (100).

    Question: Why make the calculation in the database, why not make them in the game and then send the total to the database?
    Answer: This is actually what is happening today and what cheaters are abusing. By sending the already calculated total to the database they are manipulating that so the total is much higher than what has actually been earned by playing the arena. If the calculations are made in the database instead the totals are more accurate and harder to manipulate.

    Question: This is all stupid and have too much text so I didn’t read it.
    Answer: Well that is not a question but we are all entitled to our own opinions. I was just brainstorming a bit and thought I should share and maybe get some feedback if my thinking is all wrong or if my ideas can be improved in some way(s).

    So what do you think?

Viewing 16 replies - 1 through 16 (of 16 total)
  • Replies
  • t_russell

    @angryjohnny — While the Objective tracking method seems like a no brainer and should have been there from the very beginning you need to consider the server side loading when it comes to the wheel calculations. I’m sure Rovio tested both configurations and found the load too high so they decided to offload it to the clients. Client side hackers were by far the lowest percentage of cheaters. 99.9% of all complaints would have stopped had there never been a way to reset the objectives.

    Angry Johnny

    @tigerussell I was actually thinking about that. The calculations are not very difficult and should not be very hard on the database but the response time might be suffering.

    A solution to that would be to make the calculation both in the database and in the game. The database would in that case be the main source for the totals and would only update when you actually start up the Arena (not while you are in the arena itself).

    That way a player can cheat all he/she wants and the numbers would show as major in the game until they come back to the arena and the REAL numbers are gotten from the database.

    @tigerussell, @angryjohnny, the problem with this kind of stuff is that the infrastructure in place is based on the regular client-side gaming. It was never meant for this type of pvp play. I believe Rovio never even anticipated cheating in the first place (which is kind of stupid).

    Now they are trying to implement solutions based on an infrastructure which was never designed for PvP playing. To do it right, they would have to change way too much.

    A possible intermediate approach could be not to do everything server side, but do some basic checksums client side. So, instead of only transmitting numbers, do a checksum on the data of the birds and the prizes. This can easily be incorporated in the client device.

    Something like the checksum of the XP level, Rank and gear in relation to health and damage which ends up with a 1 or 0. 1 for correct and 0 for incorrect. Any modified birds would end up with 0 while normal birds would end up with 1. The same can be done for the prize wheel.

    Then the score which would be submitted for a diamond 175+35+50 score should be formulated as 1*1*(175+35+50) with normal birds and correct prizes. In case of modified prizes, the checksum reaches 0 and the submitted score would become (1*0*(175+35+50)). In that way the scores end up as 0.

    There is another problem though. I’ve tested the method used for the hacked scores and I am able to simply alter the total score on the local device (i added the insane amount of 15 points to my score! Oh yeah, and removed it again…). Remember the players with -1 being on top of the board? This is something which should not be possible. Letting the server add scores incrementally should not create a large amount of additional server load on Rovio’s side. Therefore that is something which should be changed in the infrastructure.

    I think the current strategy on the last topic is that these people are banned or something, since I haven’t seen any of these anymore, at least not on my board. In the cheaters thread there is one reported so far, but I would not be surprised if that one would disappear.


    Rovio can limit an account to finish one set of objective in 24 hours using their time (or 0000 GMT) regardless the timezone.
    If an account attempts to finish more than one set of objective, the account is flagged, and if the account violated three times, the account will be banned.


    At this point, I am pretty happy with how the arena league I am in is working. Sure there might be a few cheaters out there, but I am sure they will get tired of this soon and will move on to a new challenge. One thing that has not been mentioned here, is that Rovio needs to be sensitive to the data volumes being transmitted to and from the mobile devices. They do not want to create a data hog that will drive users who have to pay for usage amounts away.

    @burbman, good point. That doesn’t go very well with the network requirements of epic in general though…

    Angry Johnny

    From experience I can say that pure values that are sent to and from a database are very small in size, we are talking bytes.

    The most data heavy transmissions that Epic does today are the stats and checks that the game does at loading up and loading battles/places in Epic. That is of course if you do not count the ads that are the most data heavy transmissions of all.


    I think maybe graphing scores could catch score cheats. For example, the data is sent from the devices (date, time, points earned, total points, league) after a PvP battle and then recorded on servers, which are checked very frequently. Any seperate increases that exceed the largest possible amount for the league would result in an instant flagging. If it works how I would imagine, only succesful hacking of the servers and/or databases would make cheating possible.


    I think there would be a loophole here that would make blocking the sending of data to the server a viable counterstrategy. The solution to this is to make your score incremented only when the server sends back the results, so if you happen to block the data send so it would look like you didn’t play at all, you wouldn’t gain any points.

    Officially Rovio states they will ban people but they are responding to support requests that they cannot “remove” cheaters (context: edited scores) from the boards.

    *Really* pushing an open door: Perhaps *implement* a ban system…


    It has been about a month since the last reply here, but still, I don’t understand Rovio’s lack of action concerning cheaters. Cheaters are now no longer a secret, and yet Rovio doesn’t even demote the majority of them down even ONE league (yet this would be incredibly futile anyways). The banhammer was long due, and Rovio will eventually have to use it if they want to keep their game afloat. In the days before PvP, or even invasions existed, Wi-Fi was still mandatory, even while just playing the first level of the game. Ignoring ads, the game would prevent you from playing if your Wi-Fi malfunctioned. WHY would Wi-Fi be needed just to play an ordinary Epic level?? Plus, if internet wasn’t a must-have in Epic, so much more people would be more advanced in the game. And right now, the scores are STILL being kept on players’ devices, rather than on a Rovio server. All of what we know about ghosts, cheaters and Rovio in Epic in these past few months are highly ironic (NOT banning upsets the balance of the game, logically)…


    My guess about the wifi requirement, is so they can bombard you with constantly changing ads, without needing to push a game update for new ads.


    The only way to me to avoid cheaters would be, when a new event starts, to have a tab popping up (like level up one or many others in the game) and asking :
    “Do you want to :
    – generate a ghost leaderboard
    – compete with friends
    – generate random leaderboard

    As your friends presumably won’t cheat and ghosts neither will do, that would make it more fair and 100% cheater-free for options 1 and 2.

    Option 1 makes it more fair for people like me who don’t like/want/support/whatever…/ Facebook.

    Option 2 would make it 100% at the same time more fun and secure than the actual system, and very suitable for FB users. A good way to achieve that would be, if you choose this option, to either randomize friends or tick-and-pick the ones you want. Whether or not they accept, their actual scores would be in your leaderboard even if they did not pick you in theirs. If you don’t have enough friends or don’t pick enough then the rest of the leaderboard would be ghosts.

    Option 3 is the current system, meaning for the sake of thrill and challenge you can take the risk to compete with cheaters, but as well with ghosts or friends or random people like it’s the case now.

    Well that’s my point of view at least ;)


    The problem with Option 2 existing is that many players would fill their entire list with low level players so they would be guaranteed to advance in every event with no effort, and it would discourage them from having quality players on my list for fear of making the competition unbeatable.


    I was talking about the leaderboard not the opponents ;)
    So you can be level 45 and one of your friend level 12, you would compete on the score not against your friend as an opponent.
    all three options would not require the current opponent system to change (randomized more or less based on your points), which is quite fair I think as you can roughly say if you have a chance in the battle or not.
    I was just talking about the cheaters with millions of medals in your leaderboard, that you have to deal with, whereas overpowered opponents in a fight you can skip them easily ;)


    I was talking about the boards too. If a player is active I would delete them from my Facebook (I have a special Facebook for this game) so I wouldn’t have to deal with them in the future.

Home Forums Angry Birds Epic Forum How to "fix" the Arena from cheaters

Viewing 16 replies - 1 through 16 (of 16 total)
  • You must be logged in to reply to this topic.