11-18-2012 08:07 AM
I have a couple of titles on PlayBook that use Scoreloop for leaderboards, I have brought both titles over to BB10 and are on the Eval App Store. I have been spending sometime improving the Scorelooop integration in terms of allowing buddies to be added/removed to the use profile. This has all gone in without any problems (it already existed on PlayBook, but on the initial BB10 beta NDK the native dialog boxes were broken in an EGL application so I removed them temporarily).
However, I have noticed an issue that when I query the buddy leader board, it doesn't always show the correct results. In an example case, I look at the leader board for one of races in my game, I tap on the top user, and am then prompted to add said user to my buddy list, and confirm, it goes ahead and adds said user and reports success. I then request the buddy list leaderboard for the same race, yet the user I just added does not appear.
I then shut down the game, and restart it, upon start up it grabs the buddy list from the Scoreloop server, which again confirms said user was indeed added to the buddy list. So I go back to the leaderboard, and again I can see said user at the top of the global leader board, however, once again, when switching to the buddy leaderboard, the user still isn't visible.
I was experiencing this same issue last night, however at some point after adding the user (maybe 1 hour later) the user started appearing in the buddy leaderboard (with no further intevention from me).
The code I use to get the buddy list leader board is slightly different to PlayBook, the code in question is:
hr = SC_Client_CreateScoresController( m_Client, &m_ScoresControllerBeingQueried, ScoresCompletionCallback, this );
SCORELOOP_RETURN_FALSE_ON_ERROR( hr, "SC_Client_CreateScoresController" );
// Set buddy hood only.
searchList.timeInterval = SC_TIME_INTERVAL_ALL;
searchList.countrySelector = SC_COUNTRY_SELECTOR_ALL;
searchList.country = NULL;
searchList.usersSelector = SC_USERS_SELECTOR_BUDDYHOOD;
searchList.buddyhoodUser = m_User;
SC_ScoresController_SetSearchList( m_ScoresControllerBeingQueried, searchList );
SC_ScoresController_SetBuddyhoodOnly( m_ScoresControllerBeingQueried, m_User );
The other code pertaining to the leader board request is identical between getting the buddy leader board and the global leader board, so the only code that I feel could be at fault is the above. I am sure that the users are indeed getting added to the buddy list (I can query the players buddies and sure enough said users appear), but for some reason they are then not always appearing in the buddy leader board.
Solved! Go to Solution.
11-19-2012 10:41 AM
It doesn't work on BB10.
I have an update to this issue, if I launch the 'Games' application on the BB10, and browse around the friends section (accepting pending requests, checking out users profiles, etc.) and then go back to Wacky Rapids, I find that Wacky Rapids does start showing the correct users on the leader board.
I just performed another test, I removed all the friends (from inside Wacky Rapids) checked the buddy leader board, and, as expected all users were gone. I then added a single buddy (from Wacky Rapids) however that single buddy did NOT appear on the friends leader board. I then switched to the 'Games' app, went to the Friends section, I could see the user I had just added, I just clicked on them to get their profile, then switched back into Wacky Rapids (still running) refreshed the buddy leader board, and hey presto the new user then showed up.
So I'm not sure what the exact pattern is, but it appears going into the Games application and browsing around has some sort of refreshing affect which fixes the games buddy leader board.
Feels like a bug somewhere on the Scoreloop side to me.
11-19-2012 11:03 AM
Same problem, repro:
1. Launch Wacky Rapids
2. Go to Rushings Rapids leader board
3. Go to buddies leader board, make a note what appears there (just me at the moment)
4. Go to all leader board, note the top user
5. Go to the games app, add the user noted in step 4
6. Go back to Wacky Rapids, refresh the buddies leader board (by going to all, then back to buddies) note the user just added isn't there
I have found a way to 'fix' this, is, after the steps above do the following:
7. Go back to games app
8. Add any random user as a friend
9. Remove the user added in 8 as friend
10. Go back to Wacky Rapids, refresh the buddies leader board (by going to all, then back to buddies) the user added in step 5 above is now in the leader board
Also, it is worth noting that you can add as many users as you like (either from Wacky Rapids, or from the Games app) but none of them appear until you remove one user from your friends list. What is more, when you remove the friend, you don't have to do it from the Games app, for example if you add two friends, then remove one, the first friend will then appear in the buddies leader board in Wacky Rapids. If you then add a bunch more users from Wacky Rapids, then go back to the buddies leader board none of the new users appear, but if you then remove the buddy that is on the list, that buddy disappears and at the same time all the new ones appear.
I hope that makes sense.
11-19-2012 11:00 PM
A bit off-topic. On both platforms PB/BB10 when I get buddys' scores I get my user (requesting user) score as well, is it normal behaviour? do you get the same?
11-20-2012 04:00 AM
Yes, this is the behaviour I experience. I feel it makes sense as you want to show the current users score relative to the users buddies. I don't think it would be particular useful it is just showed your friends scores but not yours.