Skip to main content
Protokite Playtest is an optional Unity package that turns a build of your game into a playtest build. While a playtest runs, every launch of the game becomes one session on the playtest’s Sessions page, and the playtest decides what that session collects. It needs no code: install it, point it at your playtest, sign a player in, and press Play.

Get the package

The Flock SDK’s Playtesting tab installs it in one click. ProtokitePlaytest-<version>.unitypackage is also attached to every Flock Unity SDK release, at the same version.

What a playtest collects

Every one of them is switched on the playtest’s page in Protokite, so changing what a playtest collects needs no new build — and the player is asked first, so a launch collects only what they allowed. See Press Play. Each feature is described on What a playtest collects.

Before you start

  • The Flock SDK is set up and working in the project: Api Url, Api Key, Game Name and Game Version in Flock → Settings, with a Resolved Version ID filled in. See the Unity SDK page.
  • A playtest exists in Protokite. Creating one makes a Flock game version for it, named pt- followed by the test’s ID.
  • Video is recorded on 64-bit Windows and Android. Every other platform runs the rest of the playtest and says once in the log that it records no video. See Platforms.

Step 1: Install the package

1

Open the Playtesting tab

In the Unity menu bar, choose Flock → Settings and select the Playtesting tab. It names the version it will install, which always matches your Flock SDK.
The Flock settings window on its Playtesting tab, showing Not installed and an Install Protokite Playtest button

Flock → Settings → Playtesting, before the package is installed.

2

Press Install Protokite Playtest

It downloads the package from the Flock SDK’s release and imports it into Assets/ProtokitePlaytest. No Git is needed. Unity compiles it, and the tab then shows the installed version with two buttons you use in the next steps: Open Playtest Settings and Check Playtest Setup.
The Playtesting tab showing the installed version with Open Playtest Settings, Check Playtest Setup and Remove buttons

The same tab once the package is installed: its version, where it is, and the buttons for the next steps.

Two other ways in, both at the same version as your Flock SDK: double-click ProtokitePlaytest-<version>.unitypackage from the release page, or in Window → Package Manager → + → Add package from git URL enter https://github.com/QwackStack/FlockUnitySDK.git?path=/ProtokitePlaytest~#v<version> (this route needs Git installed). Leave the package out of projects that are not running playtests.

Step 2: Point the build at the playtest

Protokite finds the playtest from the playtest’s own Flock version. The build sends it to Protokite only: your Game Version stays your game’s, with everything you set up under it in Flock.
1

Turn playtesting on

Choose Protokite → Playtest → Settings, or press Open Playtest Settings on the Playtesting tab. The first time, this creates Assets/Resources/ProtokitePlaytestSettings.asset with playtesting off and selects it in the Inspector. Tick Playtesting Enabled.Protokite Api Url is already set to production, https://api-protokite.qwacks.com; change it only to point at a local Protokite such as http://localhost:8020. The URL must start with http:// or https:// and contain no spaces; one that does not is refused rather than tidied up.
The Protokite Playtest settings asset in the Unity Inspector, with Playtesting Enabled ticked and a Playtest ID resolved

Protokite → Playtest → Settings: the switch, the Protokite URL, the Playtest ID with the version it resolved to and what Flock found, the question put to the player, the feedback form and the recording settings.

2

Paste the playtest's ID

Open the test in Protokite and copy its ID: the Flock version ID its SDK block shows, or the test’s own ID from the page’s address (after /tests/). Paste either into Playtest ID in the playtest settings. The editor finds the playtest’s version through Flock, shows it under Resolved Version ID, and says below it what Flock found.
Your Game Version stays your game’s. Only the playtest’s own requests to Protokite carry the playtest’s version, so your player templates, configs and shop keep working in a playtest build.
Leave Playtest ID empty and a build joins your game’s newest playtest, whichever is newest in Protokite when the build starts, even one you have closed. A playtest created later is joined from the next launch, never in the middle of one. Fill in Playtest ID to choose. A Game Version that is itself a playtest’s name, pt- followed by the test’s ID, still joins that playtest, as before 1.68.0.
A Playtest ID that has not been resolved leaves playtesting off, and a build with Playtesting Enabled on is refused until it is. Open the playtest settings while Flock can be reached; Resolve Again asks again.

Step 3: Check your setup

Choose Protokite → Playtest → Setup Checks And Test Video, or press Check Playtest Setup on the Playtesting tab. The window checks what a build of this project needs for a playtest. A check that passes has a green tick and says so:
The Protokite Playtest setup window with all four checks passing for an Android build target

Protokite → Playtest → Setup Checks And Test Video, for a project that builds for Android: all four checks pass.

A check that fails has a red mark, says what to change, and has a button that opens the place to change it: Open Playtest Settings, Open Flock Settings, Open Build Settings, Resolve Playtest ID, or Set Game Version To pt-… when Playtest ID is empty and you pasted the playtest’s ID into Game Version. The Playtest ID, or with it empty the Game Version, is checked with Flock when the window opens and whenever the settings change; Check Again asks again. “Players built for … record no video” does not stop the playtest: a build for another platform runs everything else and records no video.

Step 4: Sign a player in

A playtest never signs a player in. Its session starts once a Flock session reaches the server, and a Flock session starts when your game signs a player in, with Analytics Enabled and Analytics Auto Start Session on in Flock → Settings → Advanced Settings (or when you call StartSessionAsync), and consent given when Analytics Require Explicit Consent is on. A device sign-in is enough and needs no account:
The first time a device signs in, register it with RegisterWithDeviceAsync instead; the Unity SDK page covers sign-in in full. The package’s sample has a Sign In With This Device button that does both, for a build with no sign-in screen of its own.

Step 5: Press Play

The build asks its player what the playtest may collect, and collects nothing until they answer. The question is drawn over the game as soon as this build’s playtest has loaded, and offers four answers: record the screen and collect play data, the screen only, play data only, or nothing at all, which leaves the build behaving as one with Playtesting Enabled off.
A Unity game showing the playtest's question, What this playtest may collect, with four answers

The question a playtest build puts to its player, over the game, before it collects anything.

It is answered with the mouse, or with a tap on a phone. While it is on screen the cursor is shown and free, and it goes back to how your game had it once the player answers. Nothing is selected when it appears, so your game’s own Submit key presses no answer, and a click in the question’s first half second is ignored.
It is the playtest’s own question. The Flock SDK’s Analytics Require Explicit Consent is a different one, asked by your game in your game’s words about your game’s analytics. Neither answer moves the other, and the question says so in front of the player.
The answer is kept on the player’s machine and used by every later launch, and each session start carries playtest_consent and playtest_consent_asked, so a session with no recording reads as a player who asked for none rather than a build that went wrong. To be asked again in the editor, press Forget This Machine’s Answer in the setup window. On a phone, a second question follows an answer that lets the screen be recorded: whether recordings may upload on mobile data or wait for Wi-Fi. See On a phone: which networks recordings upload on. Your game can take the question over from its own menus:
Turn Ask The Player For Playtest Consent off in the playtest settings only where your players are asked another way, or for a test run with nobody there to answer; the build then collects what the playtest turns on, and every session says the player was never asked. An answer a player has already given still counts.

Watch it run

The Console says what the playtest is doing, each line starting [Protokite Playtest]:
The session then appears on the playtest’s Sessions page. It ends when the game quits; quitting waits up to 3 seconds for Protokite to take the end. A sign-out, a new Flock session or restarting the Flock SDK neither ends nor restarts it: a launch is one session. In code, ProtokitePlaytest.Status answers the same question the log does, and ProtokitePlaytest.Describe(status) gives the log’s words.

When something stops the playtest

The Console says why and what to change, once, as a warning. A refusal (PlaytestNotLinked, ProtokiteRefusedApiKey, PlaytestConfigForAnotherVersion) is not asked again until the Flock SDK starts again or the game is relaunched, since the answer would be the same.

Before you ship

Turn Playtesting Enabled off before you build a release. With a Playtest ID, your Game Version is already your game’s; without one, point Game Version back at a release version too. A release build still uploads any recording an earlier playtest build on that machine could not send, so a player’s recording is never stranded; with playtesting off, nothing else is recorded or sent. To take the package out, press Remove on the Playtesting tab. Your settings asset stays until you delete it.

Tell your players

A playtest build records the player’s screen when the playtest turns video on, and sends what they type into the feedback form. The build asks them first, and does what they answer, but tell your testers before they play all the same: what is recorded, that it goes to your studio’s Protokite playtest, and how to reach you to have it removed. That question is about this playtest alone — anything your game collects of its own is still yours to ask about.

What a playtest collects

Video, performance windows, exceptions and feedback forms, the C# calls for each, and how to test it all.

Unity SDK

The Flock SDK the playtest runs on: setup, sign-in, and your game’s data.