Playfab - Backend as a service for Unity developers

I haven’t seen much mentioned on the forums about this, but has anybody used PlayFab?

It seems like a powerful API with loads of hosted backend services that can make the whole experience of development on the server side of your game a lot easier.

It has everything from data storage (including JSON support), to social account linking and leaderboards, analytics, stats etc, pretty powerful stuff, and I’ve only been signed up to their newsletter for a month and already they’ve posted a huge chunk of new features and improvements in that time.

I’ve started integrating this into my game, and so far the experience has been pretty good.

Has anyone else used it? Not sure about you but I think the Unity world has been needing something like this for a while…

I fully integrated it, then I released that if my game even gets slightly popular I was up for some serious cash. However I could have interpreted their pricing scheme wrong, but if I understood it correctly, if I got to 2000 active users/day, I was up for $2/day, $60/ month. Granted I may never reach those numbers.

The positive I took from integrating it however, was it gave me a push into rolling my own. Since I have proper web hosting for my site, I took advantage of the mysql server included. Now I have full control over my leaderboards and can capture other useful information through a few php scripts (it took me about 3 days to roll my own)

Granted my solution doesnt integrate all that other stuff (however integrating with social media/google play etc requires you to provide session tokens - which they dont have API for generating (which I assume means you need to hook up facebook/google play api into your game in addition to their service to make those features useful)

If you only want leaderboards and have access to mysql, rolling your own aint too hard.

On a side note, if you decide to continue on with it, you can support windows phones using the android api, its all just tied in to the system identifier.

1 Like

Thanks for the feedback, I will ask them about the facebook access token, perhaps they can’t automatically generate access tokens for your app due to security restrictions or something? Perhaps it is something they are working on.

But what about scalability? Rolling your own custom solution to fit your specific needs is all good and fine, but what happens if you get a massive spike and say 500 000 people all try to sign in at once? Will your server you’re hosted on and your database be able to handle that? I’m sure we know as developers the last thing you’d need when your game DOES get a massive exposure spike is for your backend infrastructure to fall over.

I think what they’re trying to do here is stop people from re-writing code which is mostly boilerplate stuff, from what I can see it takes little effort to get all the leaderboards and social friends stuff working using their API, instead of spending hours coding stuff that’s already been done.

I asked them about the token stuff and didnt get a reply… didnt worry me too much, but didnt get them my business either. Its not an access token, its a session token, which I gather means you have to handle the login to facebook.

Scalability is an interesting one… tbh… not sure. The servers hosting my webpage/mysql are out of my hands, but I assume (dangerous) that they should be able to handle the load. Again, making assumptions here, that if my game really rockets in success that I could look at upgraded hosting plans. Whether that would resolve any issues I might have I cant say, but im sure the guys running webhosting services know more about it than I do and would be willing to help me get it streamlined.

Since I have control over my php scripts, I can tweak the sql queries that are being used if the need arises as well. This also gives me the flexibility to capture the information I want, and at some point, ill be able to make changes to the game by using data retrieved (thinking changing ad providers, tweaking other minor settings). At some point I want to be able to extend my game level through the same means which will be awesome as I wont need to release app updates to offer users extensions to my game (granted the code has to be in place within my game to support this).

If I had 500,000 users right now, it wont cost me a cent. Get the same on playfab and youre up for a $1000/day. Maybe that will be nothing if im creaming it with ad revenue, but on the opposite end of the scale, if i got 2000 daily users I would be up for $2/day, which aint much, however if im making zero profit, thats a big cost.

On initial integration, playfab was awesome, but after using it for a short while there were short comings I didnt like. Not being able to view score boards, delete users, etc.

Another benefit of rolling my own is I can integrate the leaderboards into my own website easily.

eg. http://www.fingerbait.com/hardkour/hardkour_landscape_scores.php

What do they use at MM for their WP leaderboards? I actually intended to ask you this at one point because I was curious.

But that’s not true, there is no ways your host is serving 500 000 users and your database serving all those requests, and its not costing you a cent. If you’re on a cheap hosting plan, its most likely going to fall over. Do you have your own server or a shared hosting solution?
It would be interesting to hear what your host responds to a question you posted to them about traffic/concurrency limits etc. If they didn’t have these limitations any Fortune 500 company could just sign up for a $4.99 hosting plan.

Hmm, from what I’ve read in their API these features are very well supported. Scoreboards = Leaderboards right?
I think in the latest newsletter they mention you can delete users.

They do support this, it’s listed at the bottom of their features section. You can get any data out using their RESTful API’s.
But of course, yes, you will have more flexibility rolling your own, but with it’s own disadvantages.

We use the publishers built in API’s and servers which host all their titles, we don’t need to roll our own.

1 Like

Well, not costing me a cent isnt correct as you pointed out, there is obviously a yearly hosting cost (which is about $100). Currently using. http://www.ixwebhosting.com/hosting-plans

I couldnt see any restrictions that might affect me. Unlimited bandwidth/diskspace. Looked through the control panel and couldnt see anything that might indicate a restriction on mysql access, so cant confirm. However, like I said, should the need arise to upgrade my services, the cost will be significantly lower than using playfab.

Yes they do have a scoreboard/leaderboard system and yes you can integrate it as you mentioned, but it still took a lot of control out of my hands, which now after rolling my own I have. I can run custom queries against my data and analyse it as I want. I can see daily how many new users I’ve got, what they score, etc. I can see the user list through their dashboard, and have some control/information on each user when I click on them, but its obviously still a WIP on their end, as some function doesnt exist, or doesnt work.

The real clincher for me however, was that apple wont support purchases outside of their own store system. As soon as I found this out, the benefit of using playfab over creating my own was lost as I would only be using their system to store leaderboards.

1 Like

One other thing to note, their unity sdk wont build for Windows Phone, but removing the code that saves preferences using a binarywriter got me past this problem and didnt seem to affect using the service.

And for interest sake, I used this link to get me started.

http://wiki.unity3d.com/index.php?title=Server_Side_Highscores

1 Like

PlayFab seems very cool and it is something we consider for our small indie steam title.

For a free mobile game i am not sure i would do it. The cost could be too much. But for a PC game like our own with paying customers playing it, its really nice (it got an account linked to steam feature).

If you get 5$ yourself for your game per purchase, well then divide that with 0.002/0.006 dollar and you see how many days they have to be active before you lose money!

If people are paying for the game, no problem! Its cheap.

We decided to use it for our project after some discussion today :slight_smile:

Interesting, would be good to hear about your experiences on this thread as you integrate it :slight_smile:
Perhaps if there is anything lacking we can raise it with their support and get it added in quickly.

The way I see it, is the more people who start using it, will lead to more functionality that we will need, that they might not have yet, and thus more people asking for it, means MOAR functionality at a quicker rate.

Well to being with we only need a really simple system so dont think we find missing features for the next couple of months hehe :smile:

Hi all, James Gwertzman here, I’m the CEO of PlayFab. I’m really glad to hear you’re trying us out – that makes us happy. I’ve been in the game industry for 15 years, most recently at PopCap, but before PopCap I ran my own indie game studio (Sprout Games) for several years, and so I know what it’s like to be small. We had just 3 full-time employees, all co-founders, and out motto back then was “spend no money”.

That said, I still think PlayFab is a great deal, especially if you consider all the hidden costs. I would absolutely have used PlayFab back at Sprout if it had existed back then.

The biggest cost savings is for all the up-front engineering work we’ve already done. You can implement a basic leaderboard with PHP in a few days, but duplicating everything we provide would take you several years worth of work – and by then we would have already built a ton more features since this is all we do.

We have 12 people who do nothing but focus on building the most complete game operations platform in the world. And 100% of that platform is available to you immediately, without paying anything until your game goes live. And that right there is pretty huge — it means you can start using all these features from the very first day of prototyping your new game, and focus all your energy on your game.

This matters because designing and building services that scale is really hard. We wrote this blog post about just this topic. A simple PHP script on a $100/year server using mySql can certainly handle some traffic, maybe even 2,000 DAU, but probably not much more than that. The problem with storing a leaderboard in a relational database is that most databases are designed for many more reads than writes — writes are typically very expensive, because they often need to lock the table. But games are the opposite – they do many more writes than reads, usually. So even a tiny amount of traffic can quickly thrash your performance and even crash your server.

And users don’t like it when your game crashes – they may never come back. And with the high cost of acquiring customers, if you’re paying $2/user to acquire customers (that’s a pretty typical cost-to-acquire a new user), then suddenly paying $0.002 per day to keep that user happy with a rock-solid platform starts to seem pretty attractive :slight_smile:

Also there’s the cost of managing the server… What % of your time is spent reviewing server logs, backing up data, tuning performance, adding more servers as your game scales up, etc. That can quickly become a full-time job once your game is live, and that’s time you’re not spending on your game itself.

Finally there’s the cost of the tools… that’s actually where we are spending most of our time these days, building better tools for actually operating your game once it goes live. The Game Manager that’s live on PlayFab today is version 1… version 2 is coming soon and it’s a huge improvement. It’s got features people are asking for like permissions and roles, full editing of player profiles, full audit logs (so you know what changed in your game), real-time in-game-item catalog editing, and much more.

Building great tools takes time, and if you don’t have good tools then when someone calls you up with a customer service problem you’re going to have to do a manual SQL query to resolve their issue – and that’s more time you’re not spending on your game :slight_smile:

Also, it’s not true that you can’t use our in-game item-purchase system with games on iOS. It’s true that you have to use Apple’s system for real-money transactions, but that just means you need to sell your bag of 10,000 gold coins for $5 through Apple. Once that transaction goes through, you give us the receipt from Apple, we verify the receipt to make sure it’s not a fraud (that’s another feature that you’d have to build yourself – receipt verification), we credit the player’s account with the 10,000 gold coins, and then from that point forward all their in-game transactions happen using the PlayFab system.

And with our system, you have full control to manage the in-game items after the game is already live, without having to re-submit anything to Apple. You can add items, remove items, change item properties, change item prices, etc. That sort of live updates are at the heart of live game operations.

Also we have a pretty decent analytics system built-in that doesn’t require any additional work to use – and we make it really easy to generate custom events. Today our built-in reporting tools are pretty basic, but we have a pretty awesome new analytics system coming soon that does all the operations most live games need, such as segmentation, cohorts, funnel analysis, custom queries, and more. And we’re thinking about what sort of stock reports we can provide out-of-the-box that actually help you operate your game more efficiently. Knowing your DAU is not actually that helpful. Seeing that your in-game revenue by 10AM is only 20% of where it was at 10AM exactly 7 days ago is much more helpful :slight_smile:

Anyway… enough from me. We’re really, really passionate about building awesome technologies and tools for all of you, and we’re committed to building the best game operations platform. I want to hear from you – please email us at “devrel@playfab.com” – I read all mails we get on that alias, and so do most of our engineers.

6 Likes

Its nice to hear from the developers. Could you give more details on how you will collaborate with Exit Games?
We will ship our game through steam using both PlayFab and PUN.

Also when will you change the free 1000 DAU to free overall 30K DAU? And why not keep the free daily 1000 DAU? (well i guess most dont go over that so its bad for business).

I’m not sure if it will takes years to develop that. You are probably using mongodb or couchbase, unless you consider the years developing the nosql database from scratch and learning c++.

One thing I didn’t see was server side scripting. I haven’t signed up to explore more.

I’m considering Gamespark, worthy competitor.

http://www.gamesparks.com/

1 Like

Thanks for coming into this thread James, nice to see you here answering questions about your product :slight_smile:

They have a server SDK. So in most cases if you want 100% custom functionality, you can still host your own servers and interface with the PlayFab servers, server to server.

https://api.playfab.com/Documentation/Server

Hmm gamespakes also seems nice :slight_smile:

Yes, I’d include Gamesparks as a competitor. One difference is that they’re coming at this space from a TV background, whereas we’re coming at it from a games background and have deeper ties to the game community. I’ve talked to several developers who have compared us head-to-head, and at least in the cases that we’ve heard about, they’ve picked us.

The server-side scripting is not yet live – we should be announcing it in early December. Same for our new Game Manager tool, better analytics, and a few other pretty nice new features.

I say it would take years to build, because it’s taken us years to build, and we have a pretty amazing back-end team – and that’s not including all the benefit we get from sitting on top of DynamoDB, RedShift, and other such services.

1 Like

Can someone link to an explanation what a dau is? German google is useless in this case as it is a common abbreviation for “stupidest possible user” here.

1 Like