Is fighting done online or offline?
ArmandStar
Member Posts: 1,129 ★★★
after i pick my champ and go to fight, the game loads the fight. now we get to the fight. is this part done online or offline? because i've seen a few people here claiming that it's offline, but others claim it's online. so which is it?
0
Comments
Most likely offline. If you’re in a fight and your connection gets disconnected, you will stay in the fight until the end. But the victory/defeat won’t go through if you don’t get your connection back in a timely manner.
No. I've been kicked out of fights when my connection dropped. If the connection is unstable, it will show the pop-up at the bottom of the screen saying it has problems connecting. But if you lose the connection entirely, the fight will stop and it will say the connection was lost. Sometimes, the fight will be recovered and allow you to re-start the fight as if it didn't happen at all. Other times, you will lose 50% health and be returned to the quest map.
If the game was in constant communication with the servers about the fight and you were disconnected, you would be able to come back exactly where the disconnection occured. None of processing of the fight is done server side, all of it is done right there on your phone. In other words, it is not an "online" game like WoW or other real time MMO.
The actual combat takes place on your device. During combat there is some state information that goes between the game client and the game servers but this doesn't directly affect the fight. If the connection is temporarily lost the fight will continue on your device until the connection is reestablished. If the connection is lost for too long of a period of time the game client on your device will time out the fight and end it. Also, if the connection is reset the game client will immediately time out the fight and end it.
What you're seeing with the "session has timed out" message is that when you first log in, your game client connects with the MCOC authentication servers to validate your log in information and determine which user you are. The game client then connects with a game server which starts a session with your game client. All communication between your game client and the game server uses this session. However, if the game servers fail to hear from your game client for a certain period of time they assume you closed the app or some other problem happened and you aren't likely coming back. The game servers cannot hold those resources for you indefinitely because that would bog them down. So the servers terminate that session and free those resources. If you had just paused the game or switched away from it and then come back, the game client tries to continue on as it had been. It tries to talk to the game servers and say something like "its me, session id 768099346, I'm ready again" and the game server says "id 768099346? No idea who you are." The game client then tells you that your session timed out and the game client needs to create a new session with the game servers.
There's probably also an associated auth id that the game client gets from the authentication servers that also has a limited lifetime. At some point, you will probably see the session timed out message, and then when the game client tries to reconnect you'll get another error message that says the game logged you out and the game client needs to log you back in. That's the game servers telling the game client that their authorization id has expired or is no longer valid, and the game client needs to authenticate your user id again.