question

zimmerlint avatar image
zimmerlint asked

Bigger User Data (e.g. saving recordings)

Small Project Outline:

Its a multiplayer project with a session system working on Photon.

Users can register sessions which might be days or weeks in the future and are not opened before that date and time. Each User can create levels with a level editor and these levels need to be saved in a cloud. Those levels should be accessible by all players. Levels are saved in serialised from. Object type, position, rotation, scale and custom parameters are needed.

How would we integrate playfab for data storage, player managemant etc. ?

1. We need to save sessions that are not opened but need to be listed

=> A database would be the best for that

2. We need to save data like screenshots or audio recordings per player (sizes can be restricted, compressed etc.)

=> A content storage system would be the best for that, but playfab's is not accessible by clients.

3. We need to save big jsons (might be several MB), several per player

=> Probably a combination of both, database or userdata to store all created level ids and content storage for bigger serialized json files containing level information.

Result:

We need custom data storage (might be too big for user data) and a way to upload custom content with client access.

Can you help with that ?

Player DatadataShared Group Data
10 |1200

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

1 Answer

·
brendan avatar image
brendan answered

I'm sorry, but you really don't want to do that. Allowing clients to directly write large data to a CDN (like our Content service) with open access is a guarantee that your title will wind up becoming a file share for pirated software and videos. That's specifically why the Content service only allows upload from Server API calls - so that you can have a dedicated server process that is the "gateway" to validate what can be uploaded.

Ultimately, that's what we would recommend - use a custom game server (dedicated server) to check the contents of what the clients want to push to the CDN, and only let things through that pass your tests. That way, you can control what content is posted there (and so, keep your costs down).

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.

zimmerlint avatar image zimmerlint commented ·

That doesn't sound bad. So if I use this api with a custom cloud script:
https://api.playfab.com/documentation/client/method/ExecuteCloudScript
Should I just add the file as a byte array ?

(We will try to make sure the official files (screenshots, audio recordings) are as small as possible on the client side)

Sorry I do not have much experience with server systems.

I just try to validate our featurelist.

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

Cloud Script can write to player data, but you need to use the Admin API to write to the Content service, so you'll need to use dedicated servers (custom game servers) to enable the kind of file uploads you're referring to.

0 Likes 0 ·

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.

Error rendering WebPanel (widgets/consolidation-widget.ftl): org.hibernate.hql.internal.ast.QuerySyntaxException: AvailableConsolidation is not mapped [from AvailableConsolidation up where up.node = :node]