I am working on a game and I have decided to implement network functionality including gamesparks as a backend service. Now this works great if the internet connection is good, however if the connection is not it can cause the game to become unresponsive. I was wondering generally how designers have gotten around connection issues, and what design decisions I can make that can work around having a poor internet connection.
This has been discussed a couple of times recently. Here’s a recent example:
https://forums.coronalabs.com/topic/69687-advertising-request-with-internet-off/
The gist of this is that you can do actions to test a device to see if it’s connected to a network. Is WiFi on? Are you getting a cellular signal? These questions are completely different than “Do you have a connection to your server that works?”
The first question is pretty much a black and white question. Either you’re connected or not. There are various plugins and API calls that can check that. But once you know that, you need to know if you have a connection to the service your on.
Many people do a quick check to see if they can connect to Google’s web servers and there are various methods for that. But what does that really tell you? Not much really. GameSparks isn’t Google. Connectivity to Google isn’t connectivity to GameSparks. It’s also an atomic test. You knew you had a connection. But that in no way means you’re next connection “will be good”. All connections are not equal. Google has a zillions servers highly tuned to make a very quick first connection. Downloading an expansion pack from Google is still google, but its a big file.
I can’t speak for GameSparks and their preferred way to test if they are available. You can reach out to this directly and ask. They may have a fast-responding connection to test against.
Generally speaking, you can always show a busy indicator when you make a network request or call a third-party networking API and give them a cancel button if you have to wait for the results or build your user interface in a way that waiting doesn’t hurt.
Rob
This has been discussed a couple of times recently. Here’s a recent example:
https://forums.coronalabs.com/topic/69687-advertising-request-with-internet-off/
The gist of this is that you can do actions to test a device to see if it’s connected to a network. Is WiFi on? Are you getting a cellular signal? These questions are completely different than “Do you have a connection to your server that works?”
The first question is pretty much a black and white question. Either you’re connected or not. There are various plugins and API calls that can check that. But once you know that, you need to know if you have a connection to the service your on.
Many people do a quick check to see if they can connect to Google’s web servers and there are various methods for that. But what does that really tell you? Not much really. GameSparks isn’t Google. Connectivity to Google isn’t connectivity to GameSparks. It’s also an atomic test. You knew you had a connection. But that in no way means you’re next connection “will be good”. All connections are not equal. Google has a zillions servers highly tuned to make a very quick first connection. Downloading an expansion pack from Google is still google, but its a big file.
I can’t speak for GameSparks and their preferred way to test if they are available. You can reach out to this directly and ask. They may have a fast-responding connection to test against.
Generally speaking, you can always show a busy indicator when you make a network request or call a third-party networking API and give them a cancel button if you have to wait for the results or build your user interface in a way that waiting doesn’t hurt.
Rob