Setting Game Center achievements to non integer values

Is it possible to set an achievement progress to numbers like 0.5% or 50.1%?

The fact that achievement progress is reported via a double suggests that it should be possible, but when I try doing it only the integer part seems to be saved.

Replies

You observation is correct.

After much debugging, I'm seeing that if you report partial percentage progress within 10-15 seconds, GameCenter will cache the previous progress and things will work. However, if you let too much time expire prior to calling ReportProgress again, GameCenter will "forget" the partial percentage progress and reset to ~~zero ~~ the previous whole integer percent value.

This caused inconsistent issues between achievements where I was reporting progress very frequently vs. only occasionally.

GameCenter will "forget" the partial percentage progress and reset to zero.

Correction: I meant that progress percentage will reset to the last rounded WHOLE INTEGER.

As an example:

  • starting with progress 10%, if you report .25% within a short period of time, you will successfully update the progress to 11%.
  • again with the same example of 10%, if you report .25% only every minute, the progress of the achievement will be reset by GameCenter to 10% and will be reported back as such at those intervals.