Start a new topic

By far the worst bug

Unfortunately a lot of the bugs, hacking, and cheating all stem from a single, terrible design decision. The logic for the game lives in the clients rather than on the server. All of your dice rolls happen in your mobile device. This makes it possible for people to modify their app to adjust their odds. Also, when you move troops, the math is handled in the app rather than the server. This is what occasionally causes troops to change colors when you're having network issues. You can see this in action yourself. If you disconnect your network and attack a territory, you'll see that you can make a few moves, with final results, before your app realizes it's disconnected. Then when you reconnect, some of your moves never got sent to the server. This proves that the dice rng is in the app, which determines results and sends them to the server, which just obeys whatever the app tells it without verifying what the app sent makes any sense. This is incredibly poor design. What should happen is that the app tells the server that you want to attack a territory. The server runs the die rolls and reports back the results. Then the app says how many troops to move and the server verifies it's a legal move, then reports back the results. In addition, you can't force people to update their apps. That means there are old versions playing the game that have bugs and different die rngs. If the logic was on the server, then everyone would be forced to get logic and bugfix updates at exactly the same time. In short, the game rules and logic should be on the server, not in the app where cheaters can modify the rules. This design change would fix a lot of the "what just happened" bugs, eliminate an entire class of cheaters, and make the game much more stable.

2 people have this problem

Just to prove the point, I've now created a version of Risk that makes it so I always win whenever I attack.  It took me about two hours.  I tested it in a number of games in Global Domination.  My new character is essentially unstoppable.  Just because I don't want to mess up people's ratings, I always forfeit the game halfway through while testing.


The server hasn't flagged me as a cheater and I haven't been banned.  


This is the problem when you put the "die rolls" on the client instead of the server.  The software engineers who wrote this code will know why I put "die rolls" in quotes.


I'd like to see the SMG team fix this problem, or at least acknowledge it and tell us they have plans to fix it in the future.  Until they move the game logic to the server, there will be hackers and cheaters dominating the leaderboards.

I believe SMG does force updates to prevent mismatched versions. But you are right about the device running the show, it’s ridiculous. If you combine perfect dice with extra troops you could win 100% of games on the first turn. Thankfully those things aren’t widespread. Only once in well over a thousand games did I play against an opponent who drafted 100 troops “from trading in cards” on every turn and I’ve never played someone with perfect dice. The overwhelming majority of cheaters are just the multiple device variety since that doesn’t require any programming. I also wonder if you can’t artificially add rank points to your account so you could be number 1 without even having the bother of playing. I don’t really know if artificial rank change is possible since I use a non-jailbroken iPhone. Ryan I think the dice roll thread in feature requests would very much like to see the roll generation code that the game uses and code for keeping dice statistics.
Thanks. It will get more attention if shared on the dice roll thread though. If you are not planning to I’d like to repost there and credit you.
I'm posting it now.
Login or Signup to post a comment