question

Brent Batas (Lisk) avatar image
Brent Batas (Lisk) asked

Entity Groups - How to pull Player Profile information for all group members?

I'm trying to construct something like the below "Guild Members" view. For each player, I'd like to pull their avatar, their role, as well as some statistics like ratings as you can see in the screenshot.

I would like to support up to 100 players per Guild.

What is the recommended way to do this?

Edit: fixed picture, just realized it didn't upload for some reason

entities
1 comment
10 |1200

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

naeem avatar image naeem commented ·

@Brendan Thanks for the prompt response. What is the ETA for the new group features? We've started a new project and need to make a decision if we can wait for this feature or need to build it using the caching workaround which will involve quite a bit of effort?

0 Likes 0 ·

1 Answer

·
JayZuo avatar image
JayZuo answered

Right now, there is no way to get all the info for all the players in a Group, to provide the rich display as you are describing. But this is a feature will be added to the service, and PlayFab do have a backlog item to do that. Please keep an eye on the blog site for latest news.

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

Brent Batas (Lisk) avatar image Brent Batas (Lisk) commented ·

Any rough timeline on this feature? Is there any way we could do it using the current technology?

0 Likes 0 ·
brendan avatar image brendan Brent Batas (Lisk) commented ·

The issue is that the Group membership response contains the Entity ID, but not the additional info you're looking for, to create a rich display. And having every call to get the membership iterate across every player in it to get data isn't supportable (and could cause your title to the throttled or blocked). We have a backlog item to allow for profile data to be returned in the Group membership info, but we don't have a date for that yet. One way to implement something right now would be to have a server where you're caching that data about players and do throttled reads from it to populate information about players in groups, so that you can provide that info to connected clients as you retrieve it. That way, you could have a source of truth for group members which effectively throttles the calls to coming from one source, and at a controlled rate.

0 Likes 0 ·
Brent Batas (Lisk) avatar image Brent Batas (Lisk) brendan commented ·

Thanks for the reply. I'm thinking of spinning up a Redis cache for player info, and write to it via cloudscript when a player logs on. Would that be viable?

Also, I'm curious if you can give some transparency on why it's difficult to provide a list of Group member info? isn't it the same type of code as GetFriendList or GetFriendLeaderboard, which are essentially an arbitrary list of players? Just called with the group list instead?

It feels weird to me to spend potentially 40-80 hours implementing a Redis-based solution for something that could be a very easy and much more robust implementation from PlayFab.

0 Likes 0 ·
Show more comments
Brent Batas (Lisk) avatar image Brent Batas (Lisk) commented ·

In the meantime, is there any way to at least get the *display names* of all these players? That seems like such a basic requirement for groups to me.

0 Likes 0 ·
brendan avatar image brendan Brent Batas (Lisk) commented ·

Believe me, if we could quickly make a change that returned that, we would have already done it. But we're trying to prioritize getting this into the Group logic, as it is definitely needed.

1 Like 1 ·
naeem avatar image naeem brendan commented ·

Hi, any update on this feature?

I checked the blog site but no mention of this feature.

0 Likes 0 ·
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.