gambirstudio avatar image
gambirstudio asked

Timed quest and semi online machmaking

Hello Guys,

So, i want to create a fashion game like covet fashion, which is in my opinion is a semi-online game. Here is some feature i wanted to know if playfab can handle:

1. Daily Challenge
In covet fashion, there's a timed quest which will be expired after several days or hour. also, the game will generate new challenge, daily. I dont know which one i should use, is it title data, internal title data, or maybe there's a feature for this on playfab?

2. Timed Challenge Result
After player finishing challenge ( in this case, dress up npc and submit ). The result will be available after sometime, depend on the time needed before the challenge expired, as i said in point 1. Should i use playfab time and request time per seconds, so the game will show accurate time duration before the challenge completed?

3. Matchmaking
There's a feature, a player can vote other player fashion style, depend on the challenge. i know that playfab have a tournament feature ( leaderboard + statistics ). but i think i cannot use leaderbord system in playfab because i dont want prize for rank 1, 2, 3..etc, because i want a prize player will get wil only depend on the average vote in respected challenge.

4. Inbox System
There will be a message player get everyday ( for daily coin, and daily diamond ), also if a challenge i mention in point 2 is completed, and player already submit for that challenge, player will get a notification to look at the result of his dress style.

Is playfab capable on doing this. If yes, can you mention some of the feature needed to do it?

Thank you

Title DataLeaderboards and StatisticsIn-Game EconomyTitle News
10 |1200

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

Sarah Zhang avatar image
Sarah Zhang answered

1. Daily Challenge. You can use Title data, Player Read-Only Data, Segments, Cloud Script and Schedule tasks to implement a “Daily Challenge” feature. Title data can use to store the challenge items’ configure. Player Read-Only Data can be used to store every player’s challenge completion status. And Scheduled tasks can be used for the scheduled execution of Cloud Scripts. If you want to use this solution, you should define a “reset challenge status” function in your CloudScript and scheduled execute it to the All Players Segments every day. You can search the doc for the detailed info on the use of these features.

2. Timed Challenge Result. I haven’t played covet fashion yet. Do you mean today's result can be got only in the next day? A possible solution is creating two K/V pairs in Player Data to store temp results and archived results. After the player finishing challenge, you can update the temp result's value. And when you reset the challenge completion status you can update the archived result's value as the temp result. You can let your players only request the archived results. Actually, we shouldn't use PlayFab API for the "timer" feature. It may over the limit. About the limit, you can navigate to [Game Manager] ->[Settings]->[Limits] to check them.

3. Matchmaking. This “matchmaking” is quite different from the PlayFab Matchmaking. About this feature, could you please tell us which main feature would you like to implement? A “vote” feature or a “Give rewards based on votes” feature? Would you like to give the same reward to a player segment? How would you like to calculate the average? In addition, even if you use the leaderboard, you can give rewards depend on the statistics values, not only can depend on the rank.

4. Inbox System. Currently, there is no built-in inbox system for public customers on PlayFab. But we have a new feature in Private Preview. It’s PlayFab PubSub. If you are Pro and Enterprise tier, you can contact us to try it. If you are essentials or indie tier. You can wait for the Public Preview. Click the link to check the doc for more.

10 |1200

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

gambirstudio avatar image
gambirstudio answered

Hello @Sarah Zhang

1. If there's a change in some data in playfab, for example, player data, can the client ( in my case, Unity ) automatically get the data? maybe there's some event listener or something or should i fetch it manually ?

2. Yeah, each challenge have different time limit, and different reward tier. After the time limit is exceed, player will get a result from the challenge, which is in this case, vote result ( see point no. 3 ). And player will get reward based on vote result ( range from 1 star to 5 star), for example 1star will get you 100 Diamond, 2 Star will get you Exclusive Item, etc..

So, we cannot repeatedly call playfab API, because that will exceed the limit ?

3. Lets say, there's challenge A, and a player take that challenge, do some styling for the in game character, and then submit. In this step, there should be some group, lets say, group A, which collect all the player who take challenge A.

And also, the item that the player use for styling should be submitted, and saved to some database. I thought to use leaderboard for group, and maybe player data to save item that used for the challenge. how about it?

For vote system, this just my idea, the game should get that group A which i mention earlier, and get random 2 people from there, except the player. After that, i take the those 2 player style data for challenge A, and let player choose which best from those 2, and then those choice will update the leaderboard score for those 2 players ( the score calculation will be made in Unity ).

After the challenge A time limit complete, all the player whom participate in challenge A will get a vote result. And then get a reward based on the challenge A reward tier.

I mean, i get the idea, but i dont know what feature should i use in playfab.

4. Okay, will read more about it later.

Thanks for your response

10 |1200

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

Sarah Zhang avatar image
Sarah Zhang answered
  1. Currently, you should fetch it manually.
    1. Currently, a possible workaround is webhook. Whenever a new event is emitted, it can be forwarded to your server by making a POST request to your custom web endpoint. The event data is then passed as the JSON body of the request. You can check the doc for more info. If you want to use it, you need to learn about PlayStream firstly.
    2. PlayFab PubSub is a flexible system for pushing information in real-time between services and clients. It is still in active development and will be changing over time. We will strive to avoid breaking changes, but such changes may turn out to be necessary during the preview in order to deliver the optimal experience for customers in the general release. We do not recommend shipping a game to the public which relies on this feature until it is more stable. And only Pro and Enterprise can access its Private Preview, I mentioned it in the answer above
  2. You can repeatedly call PlayFab API, but can't do it too frequently. For some detailed information, you can refer to this thread. A better solution may be a custom web server or some external message push service.
  3. Your ideas sound good.
    1. It sounds no problem. You can try it. If you meet some questions when you test it, you can ask a question in the forum.
    2. The vote and score calculation can be made on PlayFab CloudScript. It allows client code to request execution of any custom server-side functionality you can implement. And if you use it, you need to notice the limits too.
10 |1200

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

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.