CP Social’s ‘Unsupported platform’ is used as a fallback system. It it used when a player doesn’t give permission to allow for cloudsaving or access to their personal data.
When a player declines these permission CP Social switches the current platform implementation for the unsupported platform implementations. This causes all actions to be performed locally.
When the unsupported platform implementations are used the authentication services always shows as ‘Authenticated’, if any data about the player is requested like his name, email, id etc. the unsupported implementation will only return ‘unsupported’.
The unsupported platform can keep track of achievements. It does this by using the data for an achievement set in the CP Social Settings. By using this data CP Social is able to mock the a third parties behaviour, and will return valid values when trying to increment and unlock achievements.
To keep track of what achievements are unlocked and which aren’t the achievement services saves this information to a file stored in the filesystem on the current device.
This is done by using Unity’s persistent data path, this is a folder on a users device that will always be available to data to be read from and written to.
When trying to create a cloud save when the unsupported platform is active, CP Social will save all data to the local filesystem of the user device. The same as it does for achievements using the persistent data path Unity provides.
As soon as a third party service provider like Google, Apple or Steam become available, and CP Social has saved data to the local file system, CP Social will automatically sync it’s local data to the third party’s services.
What else is it used for?
The unsupported platform, as described in the requirements, was also needed for platforms that don’t have a services that provides services for achievements and cloudsaves like Google, Apple and Steam do.
For these platforms (itch.io for example), it’s possible to create a build that uses CP Socials Unsupported platform by default, without checking if a thrid party service provider exists.