Scoreloop

Thought I’d mention this one if it hasn’t been already. I’ve been getting a lot of requests to add leader boards into my game (and by a lot I mean my brother asked me, and my buddy at work). It seemed a natural fit b/c after you’ve played a few rounds of my word game and compared your score against your wife’s best. There’s really not much reason to keep playing. So I needed a leader board.

I’ve seen this implemented in many games and most of the time I never use them b/c they’re horribly annoying. You need to create accounts and annoyed with more ads, and the leaderboard often requires the oddest permissions, and is a pain to navigate. I saw reiti talk about this one in another thread, and Cut the Rope uses it too, so I spent the wknd integrating it. And I have to say. I like it. Was a relative cinch to plug in. All you need for creating an account is a display name and an email, and if you’re not interested you click the “no thanks” button and it doesn’t bug u for 7 days. And the only ads I’ve seen from it are when you click the other games button you see other games using Scoreloop, which isn’t even an ad, really.

What I also really like is it’s more than just a leaderboard. You can have achievements and challenges as well. And they give u an easy method to upload a score to facebook. You know where you see on someone’s wall “I just got 165 points in Word Miner!” and a link to your game? Which is why I’m posting this in Marketing Methods. That part is also entirely optional. They have to click the “Upload to facebook” button.

But anyway, I thought I’d pass it along. If anyone is looking for a way to do leaderboards, achievements and facebook posting. Scoreloop is an easy way to do all 3 at once.

I agree.

Scoreloop is doing very well. It is very unintrusive. You get a scoreloop screen at the first start (you can even handle that by yourself, if you want to do different) and user say yes/no to use it.

If user wants to use it, just enter name and email, thats it - even if you do not accept in the first place, scoreloop does maintain a local highscorelist which gets submitted as soon as user accepts to join scoreloop.

It does handle offline scores as well. 1 Drawback: there is only 1 user possible. once created, every user of the device submits score under that user.

Unfortunately it is not a 5 click implementation and docs can be a bit confusing at the beginning but overall it can be implemented very fast while you still have the possibility to make a 100% integration in your app.

One thing to mention: If you built in scoreloop, test everything and before(!) releasing, modify your scoreloop-app-account to “live” and delete the scores in advance. (i have forgotten that)

Changing the score ordering BEFORE going live - existing scores will not get reordered… confused me a bit :slight_smile:

I’m trying to integrate scoreloop into my latest app and am running into problems building the release version with proguard obfuscation. It seems proguard is obfuscating some of the scoreloop classes, I get this error when running on a device the release version:

07-25 03:54:47.467 29124 29124 E AndroidRuntime: java.lang.RuntimeException: Unable to create application xdebugx.wordSearch.wordSearch: jav
a.lang.IllegalStateException: ScoreloopManagerSingleton.init() failed to instantiate ScoreloopManager implementation: java.lang.NoSuchMethod
Exception: NullTermsOfServiceManager(Session)

I tried adding some lines to my proguard.cfg so that it wouldn’t obfuscate the scoreloop libraries:

-keep public class com.scoreloop.client.android.core.* { public protected *; }
-keep class com.a.a. { *; }
-keep class com.scoreloop.client.android.core. { *; }
-keep class com.scoreloop.client.android.core.ui. { *; }
-keep class com.facebook.android. { *; }

-keep class com.scoreloop.client.android.ui.component.base.RoundCornerImageView

But now I am getting a warning when trying to build for release, that:

[proguard] Warning: com.scoreloop.client.android.core.ui.WebViewDialog: can’t find referenced method ‘android.view.View getZoomControls()’ in class android.webkit.WebView

Reiti, were you able to build your project with proguard obfuscation? Any ideas would help, thanks :wink:

hm … getZoomControls is deprecated and I think is removed from the latest android sdk…

so if scoreloop uses a fallback for older sdk versions (which is legal) proguard will not be able to find the method.

Unfortunately I am not a proguard crack and don’t know in the moment how you can set an exclusion for proguard to not check this method :slight_smile:

In that case I can use
-dontwarn com.scoreloop.client.android.core.ui.WebViewDialog

But I’m still getting error with classes not being found when running the app. Did you use obfuscation in Worm Puncher? If so could you share your proguard config file?

No, Worm Puncher is not obfuscated yet, so I can get any bug reports easy to read.

But I remember having a hard time with some other apps and proguard driving me crazy … some of them were solved by restarting eclipse … xD

just implemented scoreloop in Tablet Tower Defense yesterday.

some hours later, I received the first 1-star because the game needs the READ_CONTACTS permission :slight_smile: (needed by scoreloop)

so you may be aware of that - paranoia is everywhere :slight_smile:

http://www.reiti.net/tablet-tower-defense/blog/133/readcontacts-permission

http://support.scoreloop.com/discussions/questions/78-read_contacts-permission-for-android
So simply just remove it :wink: Personally I wouldn’t install any game that needs a permission to my contacts

AAAH! :slight_smile: thx for pointing me, that should be disabled per default …

Ya, I was worried about that. I put at the top of my version revision notes what it’s for. But, I went and tried to add a friend from my address book and it didn’t even work anyway! So I think I’ll just take it out.

What about the read phone state permission? Any way around that?

I didn’t think that one is invasive. Isn’t it commonly used to detect the phone’s state like being idle or paused?

Yeah, I guess it’s not so bad. I think they may use it to get a unqiue identifier for the the phone for their user accounts.

Ahh ya, that would make sense.

hmm … anyone knows what happens, when that permission is missing … ? there is no error… I have not given that permission on tablet tower defense, and it seems to work so far …

maybe I should add it … xD

edit: just found out:

READ_PHONE_STATE is optional but recommended. If it is missing scoreloop uses android_id for identification (which must not be unique).

If you have different apps - one with and one without READ_PHONE_STATE - scoreloop may count that games as different users.

I haven’t experienced that for me it was given the same ID - not sure if that is supposed to be …