question

HDUmi avatar image
HDUmi asked

Performance PlayStream, CloudScript in Professional plan

Hi PlayFab Team,

I am building my game and when launching the game will come with PlayFab professional plan. However, my game needs to record player data for analysis. Therefore, I need you to help me understand some of the following things I need to know:

1. PlayStream: Player performs recording of PlayerWrireEvent 1 time every 20 seconds during the game they join. If the system has 10,000 - 50,000 CCU, Playerwriteevent will be executed with high capacity. Can it meet?

2. I need to use the data written through PlayerwriteEvent from PlayStream in real time to another service like Azure to handle. Can I use the Webhooks to get these data? If possible, with such a high record capacity, can Webhooks be processed?

3. Cloud Script: I need to write in the client 1 and every 20 seconds in their game via ExecuteCloudScript, Cloudscript will process the data sent from the player and save to Player Data Read Only. If the system has 10,000 - 50,000 CCU, ExecuteCloudScripts will be executed with high capacity. Can it meet?

In Professional Planning and Enterprise, What is the maximum Player Data (Title) and Player Data (Character) data?

- Maximum number of Key / Value for standard plan (PLAYER DATA, READ ONLY DATA, INTERNAL DATA).

- Can I extend Key / Value beyond the standard plan?

- Maximum size for Key / Value.

- For Key / Value (value is json): My Json data has about 1000 lines. I need to perform an update in one line via CloudScript enabled from the client. Is it slow?

I look forward to receiving your prompt response. Thank you

CloudScriptPlayer DataPlayStream
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.

HDUmi avatar image HDUmi commented ·

@Brendan Can you hepl me?

0 Likes 0 ·
brendan avatar image brendan ♦♦ HDUmi commented ·

We'll really need you to explain the actual gameplay you're trying to enable, to be able to effectively advise on the best approach. Can you do that?

1 Like 1 ·
HDUmi avatar image HDUmi brendan ♦♦ commented ·

Hi @Brendan

My game is turn-based.
I need to record data for each player's turn every 20 seconds while they play, for example:
- The time the player plays their turn.
- What results do players choose?
- Player match ID.
- The result of the match.
I need the above data of the player, to calculate and analyze. How many matches they play a day, they choose their turn times.
I think I can use:
- PlayerwriteEvent to send data to Playstream. There, I can store this data. And it is accessible if you allow it. If I use this way. One question is: Player performs recording of PlayerWrireEvent 1 time every 20 seconds during the game they join. If the system has 10,000 - 50,000 CCU, Playerwriteevent will be executed with high capacity. Can it meet?
- Use Azure Event Hub to send event data each time their turn.
0 Likes 0 ·
Show more comments

1 Answer

·
brendan avatar image
brendan answered

Three events per minute, per client, is easily supportable - the number of players is irrelevant. Our CCU has been in the millions for quite some time.

What's not clear is what you mean concerning access to the event data. Events aren't data that can be queried by the client. So the reason I'm asking you to describe the actual gameplay and how you're trying to use data is so that we can make sure that what you're trying to do is supported.

If you just mean you want to have the data available for analytics, and you're not actually using it in PlayStream directly (to drive Rules or Segmentation), you should just use WriteTelemetryEvents.

But you also mentioned Cloud Script. So more detail on how you're trying to use those systems is really going to be needed to understand how to advise you.

8 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.

HDUmi avatar image HDUmi commented ·

Hi @Brendan

For simplicity. My play is Quiz Game.

Players will answer each question every 20 or 30 seconds, I will record:

- Time to answer questions. - The answer of the player.

- Question code.

I refer to Cloudscript, I will use rules to confirm or reject invalid events. In 200 seconds, users are allowed to send up to 10 events. If sending more than 10 events, they are interfering with the system to send many events that distort their data.

0 Likes 0 ·
brendan avatar image brendan ♦♦ HDUmi commented ·

Let me rephrase: I get that you want statistics for the players based on the actions they take. How are those to be used in the game? How real-time does that data need to be? Taking two extremes:

In one model, maybe you're just running a job to aggregate statistics on players once a day and posting that to a site or similar. You could just use telemetry events for that.

At the other extreme (though taking into account your statement about every 20 seconds), you might want to have each player update the data for their answers every 20 seconds and have that immediately available to all other players. In that case, events are completely irrelevant for the gameplay. You could use Cloud Script to update a Group Object or File to track the data on the player's answers, so that all the other players have access.

0 Likes 0 ·
HDUmi avatar image HDUmi brendan ♦♦ commented ·

Hi @Brendan

You analyze it right.

I am implementing method 1.

I took the player's data to save and analyze user behavior. Players will send data every 20 seconds or 30 seconds, after they answer that question.

0 Likes 0 ·
Show more comments
HDUmi avatar image HDUmi commented ·

Hi @Brendan

sorry. I want to ask another question.

WriteTelemetryEvents is in the beta right? I am using PlayerwriteEvent, you say that can be replaced with WriteTelemetryEvents. Is it called by the client?

0 Likes 0 ·
brendan avatar image brendan ♦♦ HDUmi commented ·

WriteTelemetryEvents will be in General Availability soon - you can find the docs for it here: https://docs.microsoft.com/en-us/rest/api/playfab/events/playstream-events/writetelemetryevents?view=playfab-rest (and technically, the endpoint works now, if you want to try it out - it's just not supported for live titles yet). If you need to send events in the immediate, then yes, please use WriteEvents or WritePlayerEvent.

1 Like 1 ·

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.