Section author: ACF (webmaster@acf-quizbowl.com)
Playtesting¶
Terminology¶
Internal “asynchronous” playtesting (question-by-question)
As questions are written and edited, they may be playtested internally by other members of the editing team. This occurs asynchronously, with each member playing the question individually.
In this workflow, editors play questions via DMs with the bot. Each question may be discussed in an associated thread.
The conversion statistics are published to a new thread in a “results” channel (e.g.
#results).
External “bulk” playtesting (packet-by-packet or category-by-category)
Once a set reaches the stage at which packets are being assembled, packets or categories may be playtested as a whole with a troupe of playtesters who are not on the editing team. This occurs in “bulk,” with the troupe at once hearing all of the questions in a given packet being read over audio.
In this workflow, playtesters give answers in a bulk playtesting channel. Playtesters use reactions to indicate their results for each question (e.g.
10/-5for tossups;E/M/H/0for bonuses). Each question may be discussed in an associated thread.The conversion statistics and links to each question thread are published to a new thread in an index channel (e.g.
#questions).
ACF Playtesting Bot¶
Note
It is strongly recommended that you use the ACF Production Server Template [1] for your production/playtesting server. The bot has been extensively tested in that framework, and using it will save you the significant amount of time necessary to set up all the necessary roles, permissions, and channels. Generally, the instructions in this document assume your server has been generated based on this template.
Instructions for Developers¶
See the “Instructions for Developers” section of the Playtesting Bot README.
Instructions for Editors¶
Make sure you have properly configured the bot by following the directions in the “Configuration” section of the Playtesting Bot README.
Asynchronous / Internal Playtesting¶
Workflow¶
TBC
Bulk / External Playtesting¶
If the live reading is performed properly, the bot will perform the following tasks:
Create a thread for each playtested question, for contained discussion
Auto-generate reacts for tossups / bonuses that playtesters can use to indicate their conversion
Generate an index in a separate channel (e.g.
#questions) that links to each playtested question and displays its conversion statistics
The live reading requires the following steps, preferably performed by two separate individuals from the production team:
Reading
The questions should be read orally one-by-one over a voice channel.
It’s strongly recommended that you add the QuizBowlScoreTracker bot to your server, for ease in buzzing.
Pasting
The spoilered questions should be pasted into the playtesting text channel.
For tossups, the question should be pasted once a playtester buzzes and answers correctly.
For bonuses, the question should be pasted once playtesters have heard and answered all three parts.
Run each question from the packet / category Google Docs through the Paster Dingus, so that it will be auto-spoilered and formatted upon pasting in the channel.
Fig. 1 An example live reading workflow.¶
Fig. 2
An example index for a packet in the #questions channel.¶
Workflow¶
To start reading a packet (e.g. Packet
A), type!start Aor!read Aor!begin Ain the playtesting text channel.If a previous packet was being read, starting a new packet will also end the old packet and tally its reacts.
Type
!readto start the session for the QuizBowlScoreTracker bot.The reader should read each question orally one-by-one over a voice channel.
The reader should communicate to playtesters which answer is right or wrong so that the paster can paste in a timely manner.
The paster should paste the spoilered question at the right time, according to the instructions above.
Type
!stopor!quitto finish playtesting the packet. This will also:Reset the packet name
Tally reacts for the packet that was just read
Type
!endto end the session for the QuizBowlScoreTracker bot.
Other commands that can be run at any time:
!packetor!roundwill display the current packet name.!packet X,!status X,!round X, and!info Xwill display the count of questions in packetX.!delete Xor!purge Xwill delete packetXfrom the database and delete its index thread.!tallyor!countwill tally the reacts for the current packet and publish the counts to the corresponding index channel.!tally Xor!count Xwill tally the reacts for packetX.
Note
The reader and/or paster should frequently remind players to react and spoiler answers, as they can often forget both in the flow of things.
Note
When playtesting packet-by-packet, make sure each pasted question includes its number (e.g. 1. This thing ...). This way, the bot’s question indexing will then also include the number.
Instructions for Playtesters¶
Asynchronous / Internal Playtesting¶
TBD
Bulk / External Playtesting¶
With the playtesting bot workflow, you can participate in bulk / external playtesting even if you are unable to attend the live reading of a given session.
During the live reading, you will be read the questions one-by-one by a member of the production team using a voice channel. You will use text to buzz and will click reacts on the question to indicate your conversion.
Important
You should always use spoiler tags when providing an answer, like so: ||answer||. This goes for both buzzing on tossups and answering bonuses.
This is important because other playtesters will continue to “play” the question via text regardless of your answer.
Fig. 3 An example live reading workflow.¶
Tossups¶
Type
buzzto buzz.When recognized, type your answer in spoiler tags (
||answer||) or say your answer orally.The reader will indicate orally or via text if you are right or wrong.
If you are right, an editor from the team will paste a spoilered version of the tossup.
If you are wrong, the reader will continue so that other players can buzz.
The reader will continue until either:
A playtester gets it right; or
Time is called
The spoilered tossup will be pasted in the text channel by a member of the editing team.
If another playtester got the tossup right, continue to play the pasted tossup via text in your head by clicking the spoilered phrases.
The bot will automatically generate these reacts on the pasted tossup:
1510DNC-5React based on your conversion, whether you answered live or not.
React
15or10accordingly if you were right.React
-5if you negged.React
DNCif you did not convert the tossup at the end. Don’t reactDNCif you negged.
Go into the auto-generated tossup thread and indicate your answer, again using spoiler tags.
Use the thread to provide feedback.
Bonuses¶
Provide your answers during the reading for each bonus part.
The reader will indicate orally or via text which playtesters’ answer(s) are right, if any.
The bot will automatically generate these reacts on the pasted bonus:
EMH0The order of
EMHwill automatically match the order of difficulties.React based on your conversion.
React
0if you didn’t convert any of the parts.
Go into the auto-generated bonus thread and indicate your answer, again using spoiler tags.
Use the thread to provide feedback.
Playthrough¶
If you weren’t able to attend the live reading for a particular session, you can play through all the questions one at a time by going to the
#questionschannel in the server.That channel will contain a list of index threads, one for each playtested packet and/or category.
Each thread indexes all the questions in that packet/category, along with the links to each question and their conversion stats.
For each question:
Click the link and play them by revealing the spoiler tags.
React based on your conversion as per the above directions.
Use the thread to provide feedback.
Click the
Go to Indexbutton in the following message to return to the index thread.
Fig. 4
An example index for a packet in the #questions channel.¶