// the find
southworks/playfab-samples
This repository contains complete working samples that demonstrate best-practice usage patterns for PlayFab features.
A collection of PlayFab integration samples from Southworks covering Unity multiplayer games (Tic-Tac-Toe with matchmaking and Party networking), Azure B2C auth flows, and a full-stack fantasy soccer web app with economy and inventory. Aimed at game developers evaluating or onboarding to PlayFab who want working reference code rather than toy snippets.
- The fantasy soccer sample is unusually complete for a reference project: it has a layered ASP.NET Core MVC app, Azure Functions for score calculation, CosmosDB integration, and actual unit tests with fake service implementations.
- Two variants of the Tic-Tac-Toe sample (Shared Group vs PlayFab Party) let you directly compare the relay-server and P2P networking approaches against the same game logic, which is genuinely useful for architecture decisions.
- The B2C samples cover both the custom policy XML approach and the ASP.NET Core Identity approach, which are meaningfully different integration paths — having both avoids the usual 'pick one and hope' situation.
- The code calls out known PlayFab limitations inline (e.g., the SharedGroupData warning about group size limits), which is more honest than most vendor samples.
- Last commit is January 2021. PlayFab's Economy v2 has shipped since then with breaking catalog/inventory changes, so the fantasy soccer inventory code is likely targeting a deprecated API surface.
- No CI pipeline config is included despite a pipelines.md doc that references one — whatever Azure DevOps setup was used internally was never committed, so the 'complete working sample' claim requires manual setup guesswork.
- The Unity projects for Tic-Tac-Toe are absent from the repository tree shown; only Azure Functions and some docs are present, meaning you'd need to track down the Unity client side elsewhere or build it yourself.
- Setup documentation is spread across multiple markdown files (configuration-and-starting-up.md, dataseeder.md, simulation.md, pipelines.md) with no single runbook, making cold-start time for a new developer higher than it needs to be.