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 only. 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 Flock game version the build sends.
1

Read the playtest's version

Open the test in Protokite. Its SDK block shows the playtest’s Flock version ID. The version’s name is pt- followed by the test’s ID.
2

Set Game Version to that version's name

In Flock → Settings → Configuration, set Game Version to pt- followed by the test’s ID, for example pt-01JABCDEFGHJKMNPQRSTVWXYZ0. The Flock SDK resolves the name, and Resolved Version ID shows the ID Protokite showed you.
The Flock settings Configuration tab with Game Version set to a pt- name and the Resolved Version ID filled in

Flock → Settings → Configuration: Game Version set to the playtest's name, and the ID it resolved to.

3

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

Protokite → Playtest → Settings: the switch, the Protokite URL, the question put to the player, the feedback form and the recording settings.

Set the version’s name, not the ID Protokite displays. The Flock SDK resolves Game Version by name, so an ID typed into Game Version resolves to nothing and the build keeps sending the ID resolved before. The setup window in the next step spots a pasted ID and offers to put the right name in for you.

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 three checks passing and the video check failing for an Android build target

Protokite → Playtest → Setup Checks And Test Video. Three checks pass; the fourth fails because this project builds for Android, and offers Open Build Settings.

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 (as above), or Set Game Version To pt-… when you pasted the playtest’s ID into Game Version. The Game Version is checked with Flock when the window opens and whenever the Flock 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. 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. 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 and point Game Version back at a release version before you build a release. 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.