question

brendan avatar image
brendan asked

Key system to verify players

Question from a developer:

I plan to ship on Steam, but have concerns about their DRM system. What I would like to do is have a "key" that players are required to use to enable their accounts in the game. Is there a way I can do this with PlayFab?

Account Management
10 |1200

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

brendan avatar image
brendan answered

While we obviously can't prevent a hacked client from running your game, what you could do is distribute Coupon Codes to purchasers of your game, and have those be for an item in your game's catalog which you use as an "entitlement check". So, on login, have a Cloud Script run which checks the player inventory for the entitlement item, and then only provides some required data or server-side functionality required by the game if they have it.

2 comments
10 |1200

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Robert avatar image Robert commented ·

How would this be automated then? It seems I allow everyone to create an account and have a webservice generate and send out a coupon code to redeem. How then would I get it into playfab? Otherwise I'd have to manually distribute them.

0 Likes 0 ·
brendan avatar image brendan Robert commented ·

There's nothing to add to PlayFab - the codes are generated in your title, so the distribution is the only question. Since we're not the point of purchase, there wouldn't be a secure way for us to send them out to your customers.

One thing that others have done is to have a free version of their game (often with a subset of features) which is monetized by in-game ads, and to sell an upgrade to the full version in an in-game store. That way, there would be a purchase validation required to get the entitlement item into the player inventory.

0 Likes 0 ·
Montana Tuska avatar image
Montana Tuska answered

If you're going to be releasing via Steam's platform, I'd suggest using the Client/LoginWithSteam API call. This would seem the most logical. Now, when a player account is created via this call(this is all assuming your implementations) you can do a cloudscript function from the playstream event and give the players that coupon/item. Now users can login via whatever means, and if they have this item, they are a legitimate user. Again though, this is without an understanding of your implementations so, more information equals better explainations...

4 comments
10 |1200

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Robert avatar image Robert commented ·

Well as I was discussing this with Brendan I came to the conclusion a combination of things would be best. Having an in-game create account (because if you use LoginWithSteam and flag the request to create the account you can't add-in the email) that way a login with steam can be done when the account create is passed and use LoginWithSteam as the first step. So I believe that, AccountNotFound would be returned, if there's no PF account tied to the steam login, thus creating the PF account with the tied in Steam info.

This way when a player goes to log in, it's an account that's already verified with steam online, rather than just the local steam DLL. I've always believe online-account based systems work best, because there isn't a DRM to this day that can't be broken.

0 Likes 0 ·
Montana Tuska avatar image Montana Tuska Robert commented ·

I was saying use the PlayFab Steam Login which would use the "online-account based systems". This may be a misunderstanding on my part, but, I believe PlayFab sends the steam ticket to Steam servers, and thus using online systems will authenticate players via Steam. From there, you can create the additional account authorizations and setup other information.

1 Like 1 ·
Robert avatar image Robert Montana Tuska commented ·

Yes I was agreeing with you actually, sorry for the lack of specificity in my comment; but I simply believe it's the best way to go. All I was saying was a 2 part of login with steam, plus then using a client request to create a playfab account with returned steam ticket, would be best. That way you get a playfab with an email and custom password but having authenticated through steam first.

1 Like 1 ·
Show more comments

Write an Answer

Hint: Notify or tag a user in this post by typing @username.

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.