見出し画像

僕がKAMI-lessを創った理由【#リンゴ収穫祭2023】

こんにちは、林檎です。
この記事は、2023年10月7日に開催されたクイズイベント「リンゴ農園収穫祭2023」の振り返り記事、第1弾です。

収穫祭2023のオープニングを飾るRound 1として配置され、おそらくTAIPA!と並ぶ技術的 "実験" ラウンドだったKAMI-less(カミレス)について、僕の思いをつらつらと書いていきます。

当日を知らない方にとっては何が起きていたかを知る材料として、当日ご参加いただいた方にはKAMI-lessが一体何であったかを理解する助けとして、役に立つものになっていれば幸いです。


KAMI-lessの内容を振り返る

KAMI-lessは、収穫祭2023の予選にあたる「全員参加ラウンド」の1つ目として登場しました。一般的なクイズ大会におけるペーパー(全員参加の一問一答筆記クイズ)の位置づけです。このラウンドの結果によって足切り(以降のラウンドに参加できなくなる人)が発生するわけではありません。

詳細なルールについては公式ブログをご覧ください。以下では、以降のセクションで必要な点に絞って内容を説明していきます。

KAMI-lessでは、40問の一問一答クイズが出題されます。問題文は特殊なものではなく、ごくごく一般的なペーパー / 早押しクイズの問題文を思い浮かべていただければ大丈夫です。気になる方は問題集をご購入いただけますと泣いて喜びます。

ちなみに、収穫祭はリンゴ農園メンバーの "個性" (ここではざっくりと問題傾向と捉えていただければOK)を理解すると後半で有利になるという設計になっており、KAMI-lessも8人から5問ずつ順番に出題されるようになっていました(後半に行くほど難しいという訳ではない)。

参加者はまずスマートフォンを開き、各自に割り当てられたイベント専用サイトから、KAMI-lessの解答画面にアクセスします。

当日の説明に利用したスライドは、口頭で補えるのでもっとシンプルでした。
このスライド画像は今回の記事向けに作り直しています。テンプレートは同じですが。

各問題では、出題開始とともに各参加者の解答画面に問題文が表示されます。「みんはや」を思い浮かべていただけると早いですが、問題文は冒頭から順に表示されていくので、分かったところで画面の早押しボタンをタップします。すると、問題の再生が止まり、解答入力画面が表示されるようになっていました。会場には47人の参加者がいましたが、その中の最速の人に合わせて止まるという訳ではなく、各自がボタンを押したタイミングで問題文の再生が止まります。

左:出題中 中央:解答入力 右:正誤判定後

解答入力の際、OS標準のキーボードを使ってしまうと入力の自由度が上がりすぎる上に予測変換も利用できてしまうので、ソフトウェアキーボードを自作しました。ひらがな、カタカナ、数字が入力できます。英語のフリック入力は人類に早すぎるので、カナで置換して答えてもらいます。ペーパーもだいたいみんなカナ解答するしね。

ちなみに、フリック入力の他にガラケー入力にも対応していたのですが、反応スピードがあまりよろしくなく一部長い解答を入力しきれない方がいたようです。入力には20秒ほどとっていたので大丈夫かなと思っていたのですが、申し訳ないなと思っています。とはいえ、そのような話が上がったのは1問かつ把握しているのは1人くらいで、ほとんどの方は時間内に入力を終えられたようです。あまり時間を取りすぎるとボタンを押してから考えられる時間が長くなってしまうので、これくらいがギリギリのラインかなと思っています。

その後、正誤判定が行われます。このジャッジは1問ごとに実施され、正誤判定結果が各自の解答画面からすぐに確認できるようになっていました。後述しますが、正誤判定は自由度のある設計にしていたので、僕が把握している限りでは正誤判定に対する疑義は発生していません。

正誤判定が行われると、会場のスクリーンに問題文全文と模範解答(正誤判定基準付き)が表示され、正解者数とともに早押しタイム上位5名が表示されます。1問ごとに正誤判定や正解者数のフィードバックが返ってくるので、1問でも上位に入れると嬉しいです。少数正解の問題はそれだけでどよめきが発生していました。まとめて後で採点するペーパーだとなかなか起こりにくいことですね。

正誤判定後のスクリーン。問題は僕のお気に入りです。
バーチャルYouTuberの草分けからキズナアイを思いつけたら、『絆のアリル』という情報で確信を得られるという設計になっています。正解してくれてありがとう。

得点ですが、以下のようになっています:

  • ボタンを押して誤答したら0点

  • ボタンを押さずにスルーしたら2点

  • ボタンを押して正解したら8点

    • さらに、早押し順位に応じて最大7点のボーナス

ポイントは2つで、

  • 答えが全く分からなかったら、むやみにボタンを押して誤答するよりもスルーして2点取った方がいい

    • 要するに誤答-2点というペナルティ

  • 早押し順位は「問題が表示され始めてから早押しボタンを押すまでの時間」で評価され、キーボードで解答を入力している時間は成績には無関係(じっくりと入力してOK)

以上が40回繰り返され、1問当たり最大15点 x 40問で最大600点がとれるようなラウンドでした。当日の最高点は374点です。順位ボーナスがかなり上位に偏った設計になっているので、なかなか高得点を取るのは大変です。374点は本当にすごい。

というわけで、長くなりましたがKAMI-lessのラウンド内容振り返りは以上です。このセクションだけでもかなりの情報量がありますが、ひとまずは以下のことがわかっていれば、以降の話についていけると思います:

  • 一般的なクイズ大会のペーパーにあたるクイズであること

  • 各自の端末で問題文が表示され、各自のタイミングで早押しができること

  • 早押しタイムに応じて傾斜のついた得点が与えられること

補足:KAMI-lessシステムの技術解説

この記事の本質は技術解説ではないのですが、気になる方もいらっしゃると思うので軽く説明することにします。ただ、この記事の他のセクションを理解するためには、このセクションの内容を理解しておく必要はありません。

注意:
技術紹介では、それなりに妥当で正しいことを語っているとは思いますが、要素技術の説明について一部僕の認識誤りがあるかもしれません。この辺りについては真面目な検証をしていないので、許してください。何か問題点があれば林檎 (X @MoA5084 ) までお知らせいただけると助かります。

FirestoreはGoogleが提供するクラウドサービスFirebaseのデータベースです。
様々なフォーマットのデータを格納し、ほぼリアルタイムで参照できます。

全体像ですが、KAMI-lessに限らず収穫祭2023ではFirebaseというGoogleのクラウドサービスを利用しています。ユーザ管理(Authentication)、データベース(Firestore)、画像ストレージ(Storage)などからなり、現代のWeb / ネイティブアプリケーション構築のスタンダードの1つです。他にもいくつか同等のサービスを提供しているものはありますが、今回は「去年も使っているし使い慣れているから」程度の理由で選んでいます。

KAMI-lessに関わるところだと、以下の2つが登場します:

  • Firestore

    • 様々なデータ形式を格納できるデータベースです。クイズでたまに聞かれるリレーショナルデータベースではなく、NoSQLデータベースと呼ばれるものです。

    • 各端末では、データベースをサブスクライブ(監視)することによって、新しいデータが入ってきたりデータが修正されたりしたときに、その差分をすぐに取得することができます。

    • 後述のAuthenticationと組み合わせることで、データベースへのアクセス制御を行うことができ、「スタッフだけが参照できる」「ユーザ自身のデータだけ参照できる」といったコントロールをすることができます。

  • Firebase Authentication

    • ユーザ認証を行うサービスです。

    • アカウントを作成するとIDが発行され、そのIDでユーザを識別できるようになっています。

ざっくりと1問ごとの流れを追うと、以下のようになっています:

  1. 司会の端末から問題開始操作を行う

  2. データベース内にある問題リストから、指定された問題を解答者の端末上で見れるようにする

    1. 要は、「スタッフしか見られないPrivateなデータベース」から、「参加者なら参照できるPublicなデータベース」に問題文をコピーする

  3. 各解答者の端末で問題文を受け取ると、問題文を再生するとともにタイム計測を開始する

  4. 解答入力が終わると、各回答者の端末は解答リストのデータベースにデータ(解答内容とタイム)を送信する

  5. 司会の端末から正誤判定操作を行う

  6. 解答リストを取得し、正誤判定を行って各解答者の端末に返す

実装自体は当然難しいですが、「それはそう」という流れになっていると思います。もちろん、説明用に詳細を省略しているところはありますが……。

いくつか細々とした話題を紹介すると:

  • 正誤判定においては、事前に定めておいた正誤判定基準に従って正規表現パターンを各問題に定義しており、それとの合致をみて判定していました。カタカナはひらがなに置換してから判定しています。実際、正誤判定に対する疑義も発生しませんでしたし、必要十分な判定ができたんじゃないかなと思います。ちなみに樊振東(はん・しんとう)が一番大変でした。中国人名ということでカナ表記の仕方がたくさん想定されて、表記揺れを拾い切らないといけないので……。

  • キーボードは自作しましたが、既に先人が例を示してくれていたので楽でした。これがなかったらゼロから考えていたことになるので、もっと試行錯誤が必要だったかもしれません。

  • リハーサルの段階だと、各解答者の端末で出題が進んでいるのか司会側には知る術がなかったため、「出題準備完了」「出題開始」「解答完了」のタイミングでデータベースに進捗情報を送るようにしました。司会の端末では各自の解答状況が可視化されています。

  • 基本的には「みんな不正はしないよね」という前提でシステムを組んでいましたが、出題中にブラウザバックやリロードをされると困ってしまうので、これらの行為を禁止行為と明言した上で、一度問題の再生が始まってからこれらの行為を行った場合は検出できるようにしていました。幸いなことに当日はそういった行為は(僕が正しくコーディングできていれば)行われなかったようですが。

出題前の司会端末の画面。
各プレイヤーの解答進捗が可視化されることで、安心して進行できるようになりました。

いったんシステムの解説はこれくらいにしておきます。
技術解説記事を書くなら、もう少しコードレベルの話だったり比較検討だったりをするとよいのですが、この記事の主題はそこではないので……。

気になる方がいれば僕の時間とコストが許す限り説明しますので、連絡ください。複数件連絡があったら、個別対応を諦めて技術解説配信とかするかもしれません。

KAMI-lessのゲーム性

ここでは、ゲームとしてのKAMI-lessを僕がどのように設計したかを説明してみます。

ゲームとしてのKAMI-lessは、非常にわかりやすいリスクとリターンで説明されます。すなわち、

早くボタンを押すほど誤答リスクも増すが、より高いポイントがもらえる可能性も高まる

リスクとリターンについては、ゲームを作る全ての人が見るべき以下の動画をご覧ください。ルール設計については、クイズもゲームです。思想はあると思いますが。「桜井政博のゲーム作るには」、全人類見てくれ。少なくともクイズのルールを “設計” しようと考え始めたら、絶対に見るべし。僕は全部見てます。

ゲーム性の観点から考えると一般的な早押しクイズはかなり尖っていて、解答者が10人やそれ以上いても解答権を得られるのが1人だけだったりするので、ゼロイチの尖ったリスクとリターンと言えると思います。要するに、ボタンを押した人だけが「正解」または「誤答」という評価を得て、それ以外の人はみんな同着です。潜在的には差があるはずなのに。

それに対し、KAMI-lessは一般的な早押しクイズと同じく相対評価である(何番目に押したかでスコアが決まる)一方で、47人すべてに対して相対順位をつけることができます。これにより、1問1問に対する各個人の早押しパフォーマンス(ここではざっくりと "早押しの能力" ぐらいの意味)をより正確に(という言葉が正しいかは分かりませんが)スコアに反映することができるというメリットがあります。今回は離散的に(大きな人数単位で)ボーナスが変動するようにしましたが、もっと細かくスコアを与えてあげることだってできますしね(QMAを考えるとわかりやすいです)。要するに、リスクの量の変化に対してリターンの量をマッチさせやすく、多段階の評価を与えることができるというのがゲーム性の観点から見たKAMI-lessのメリットと言えます。

「メリット」とは書きましたが、これは別に一元的な優劣を意図しているわけではなく、ある観点(ここでは多人数の早押しパフォーマンスをまとめて1つのラウンドで評価する)において有利であると僕が思っているだけです。「誰よりも早く押した1人にだけ解答権がある」という早押しクイズのゲーム性にももちろん面白さがあると思っていて、真面目に考察してみるとそのゲーム性のバランス感覚や狙いがちょっと異なるという話なんですよね。僕は一般的な早押しクイズも大好きで、その点は勘違いされちゃうととても悲しいです。ボタンを押してみんなの注目が集まる瞬間とかめちゃくちゃ好きなんですよね。ゲーム性とはちょっと違うけど。

ちょっと話はそれますが、「誤答」と「無解答」の間に点差をつけたのは、一般的な早押しクイズにおける誤答ペナルティに相当する概念をわかりやすく入れるためです。誤答リスクを頭に入れながら押すという体験により、一般的な早押しクイズに近い心持ちで参加してほしいと考えていました。逆に言うとその程度の意図だったので、誤答で失う点数は少なめに設定しています。期待値的には25%くらいの正解率だと思えばスルーよりも押した方が得ですからね。早押しクイズは絶えず誤答リスクを考えるゲームに(特に現代の競技早押しクイズは)なっていると思っていて、それを意識してもらいつつ、ルールごとのペナルティをうまく見抜いて戦略を適切に練るという点は一般的な早押しクイズの営みと近いものがあると思います。というか、そうなるようにしました。

KAMI-lessのエンタメ性

収穫祭は参加者に楽しんでもらうためのエンターテイメント・イベントとして設計したので、その辺りの観点についても触れておきます。

単純に「参加者全員が自分のペースでボタンを押して、解答できる」という体験は、厳密性には欠けますが「ペーパーと早押しのいいとこ取り」みたいな嬉しさがあると思っています。もちろん、普通のペーパーと比べると「解答入力に慣れの差が出るから有利不利が出る」とか、「環境依存で状況によっては安定して解答できない可能性がある」とか、デメリットと言える部分も存在していますが、メリデメはどんな形式にも存在するものなので深く議論はしません。ここでは、「早押しっぽいのにみんなが解答できる」という体験のありがたみを取ったという感じです。

また、「1問ずつ正誤発表をする」というスタイルも、エンタメ性を意識したところです。一般的なペーパーは全問題終了後に採点をしますが、収穫祭のKAMI-lessでは1問ごとに正解者数や上位正解者が発表される仕組みになっています。これにより、「解答から "ご褒美" の発生までが近く、感動がさめないうちにどんどん褒めてもらえる」とか、「少数正解が一発でわかるので、ラウンド内でところどころ盛り上がりポイントが発生する」とか、この辺りのメリットがあります。

「純粋に能力を評価したい」という場合は一気に40問やってから答え合わせをした方がいいと思っています(途中成績の情報が与えられないので、状況に応じた駆け引きが発生しにくい)。とはいえ、これはエンタメイベントなので盛り上がりのメリットを取ったというわけですね。

他にも「出題に影響しないちょっとしたリアクションは積極的に許容する」とか「実はボタンを押すと効果音が鳴るようになっていた」とか、当日の会場の "グルーヴ感" を演出する仕掛けはいくつか入れていましたが、一旦はこれくらいで。

もう少し簡潔かつ正確に言語化できるとよいのですが、少なくともこれくらいのことは考えていました。

未来の早押しクイズ大会の1Rを考える "実験"

さて、KAMI-lessについて内容と設計を整理できたところで、最後にこの記事の主題であるところの「僕がKAMI-lessを創った理由」について、ちょっとした話をします。

皆さんは、「もしずっと先の未来に競技早押しクイズの大会があったとして、その第1関門で行われていてほしいクイズは何か」と聞かれたら、何と答えるでしょうか?

現代の "競技クイズ大会" といわれるものにおいて、多くはペーパークイズが1Rに据えられています。大会規模によってはそこで足切りが実施されることもありますよね。大きな大会だとそもそも「紙抜けが1つのステータス」という感覚すらあり、かなり市民権を得ているといってもいいのではないでしょうか(最近はずっと早押し!という大会も出てきていますが、ラウンド単体で見ると全員に対して順位付けをするという目的でないことが多いので今回は省きます)。

僕はそれについて、「1つの方向性としてはアリだけど、もっと他の選択肢はないのか?」と考えていました。要は、「多人数を一斉に捌き、その全員に対し順位評価ができる第1関門」のルールは他に存在しないか? という話です。

ペーパーは多人数の順位評価という点ではとても優れていて、特別な機材も必要ありません。紙と鉛筆さえあれば実施できるので、実施ハードルも低いです(採点は大変だけど!)。

だけど、もしも未来がもっと便利な技術であふれていたら、1Rは別のものになるのでは? とも思っています。今できるからという理由でペーパーが採用されているのであって、それは理想ではないのではないか? という。

僕がもし今、競技クイズの大会を作るとしたら、「足切りをするなら以降のラウンドでの活躍可能性をできる限り反映したスコアに基づくものにしたい」と考えます。そして僕は2R以降に早押しを置くと思うので、足切りの基準は「早押しラウンドでの活躍可能性」となります。こう考えると、ペーパーは活躍可能性の一部の側面のみを評価していることが多いので、もっと良いルールがありそうな気がします。もちろんペーパーと早押しの間の相関は当然あると思いますが、もっと直接評価できるならそれに越したことはないでしょう。

少し脱線しますが、このセクションでの議論はあくまで「競技 早押し クイズ大会」の話であって、もう少し広い「競技クイズ大会」の話をするなら1Rのペーパーは(適切な狙いのもとでは)とても良いルールだと思います。シンプルに知識を問えますし、コンセプトとして非常に尖っているので。「この大会で優勝するには、まずは知識量があることが大前提である」という思想のもとでは、1Rのペーパーは非常に良い選択肢です。ここで言っているのは、「早押しクイズの強い人を決める」というコンセプトの大会で1Rだけペーパーを採用するということが、意図してやっているならチグハグなんじゃないかというだけの話です。実際には実施ハードルの限界の中で仕方なく採用している……という例も多いとは思いますが。

さて、話を戻しましょう。
早押しラウンドでの活躍可能性を直接的に評価するラウンドの例として、例えばこんなルールを考えましょう:

  • 全ての参加者はヘッドフォンをして、外部の音声が一切聞こえない状態になる

  • 問題が各自の端末からヘッドフォン経由で音声として聞こえてきて、分かったところでボタンを押す

  • 答えを口頭で発すると、自動で音声認識がされて勝手に判定される

  • これを100問くらいやって、点数の高い人が勝ち

なんだかディストピア感もありますが、これってかなり厳密に個人の早押し能力を問えると思いませんか? 適切な点数設計の下では、以降の早押しラウンドを戦う上での能力値もある程度見えてきそうです。僕たちがやっている一般的な早押しクイズはその場の駆け引きなども重要になってくるのでこれが全てではありませんが、少なくともペーパーで得点を競うよりは早押し能力の測定としてより意味があるものになりそうだと僕は思っています。

ところが、そんなルールが実現されたクイズ大会は僕の知る限り存在しません。理由は簡単で、「そんなの今は出来ないから」です。いくらノイキャンのヘッドフォンを揃えたからと言って限界はあるでしょうし、数百人の音声解答をミスなく正確に捌き切る音声認識技術も恐らく一般的ではないでしょう。昔よりはかなり可能性が出てきたとは思いつつ、まだ厳しいのではないでしょうか(最近の音声認識はすごいので、もしかしたらもういけるかもしれないけど)。

少なくとも今の僕に実現することはできなかったので、今回は「今できる技術で理想の1Rを再現しようとしたらどうなるか?」という課題を設定し、結果として生まれたのがKAMI-lessです。音声認識を諦めて、音声よりも多少非直感的なキーボード入力によって再現をしようとしたわけですね。

実際には足切りの目的で配置したラウンドではないですし、エンタメイベントの1Rとしての側面から、よりエンタメに寄ったゲーム設計にはなっていますが、背景にある思想はこんなところです。「全員がそれぞれの端末で早押しができるような仕組みによって、各個人の早押しパフォーマンスを相対値としてスコア化する」という根幹部分は再現できているのではないでしょうか。

また、このKAMI-lessを体験した / 見聞きした人にとって、「1Rは本当にペーパーでいいのか」と自問自答をするきっかけになればいいなという思いもあります。

自問自答の結果、「やっぱりペーパーがいいのだ!」となればそれで万事OKです(僕はペーパーを否定しているわけではないので、考えた結果その結論に至るならそれでよい)し、「もっと他の選択肢を考えてもいいかもしれない」となれば改めていろいろな選択肢から検討し直せばよいのです。その後、「他の選択肢は実現が難しいから泣く泣くペーパー」なのか、「やっぱりペーパーがいいのだ!」なのか、あるいは「別の形式をやってみよう!」になるのか、そこは様々だと思います。

これは恐らくこれ以外の記事にも書くし何度でも主張することなのですが、勘違いしないでほしいのは「1Rにペーパーを据えることが悪である」とも「ルールを何となくで決めることが悪である」とも僕は思っていない、ということです。そんなことを強要する権利も意志も僕にはありませんから。それに、ペーパーに限らず「クイズ大会のあらゆるラウンドには設計思想が必要である」といったある種徹底された思想が広まってしまうと、大会を開催するハードルがグッと上がってしまいます。それは僕の望むところではありません。

でも、もしこのKAMI-lessがきっかけで1Rの姿を再考する人が生まれて、その結果より良い大会が生まれたのなら、それは僕の思いが実ったということであり、とてもうれしいです。

KAMI-lessはあくまで1つの可能性です。これをきっかけに、更に面白いクイズイベントが生まれてくれるといいなと願っています。

最後に

こんな長い記事をここまでお読みいただいて、ありがとうございます。後半は僕もなかなか明確に言語化できていないところがありグダってしまったのですが、イベントを終えた今思っていることを素直に書いたつもりです。

ここまで書いておいてなんなんですが、イベントを楽しむということと僕の実験思想がどうであるかということは全く関係がありません。後半部分は、主に大会を今作っている人、あるいは今から作ろうとしている人に向けて、何か1つでも持ち帰るものがあればいいなと思って書いています。

この思想を展開したことでKAMI-lessについて悪印象がつかないことを祈っていますが、まあそれは仕方がない。「ラウンド1つを作る裏側にこれくらいの思想を持った人がまた1人現れた」くらいに捉えてもらえていればいいんですが、いかがでしょうか。現実的なラインでは、「1Rに他のプランがあるかもしれないが、技術的にできないと思っていた / できるかどうかわからないのでできなかった」という人も多いんだろうなあと推測していて、そういう人たちにとってはKAMI-lessが生まれて一つのイベントで完遂されたという事実だけが重要なんだろうとも思います。

さて、収穫祭の振り返りはまだ終わりません。皆さんの役に立つ記事もたたない記事も、可能な限りどんどん書いて公開していきますので、気になるものがあれば是非また見に来てください。

みなさんのクイズライフがよりよいものになりますように!

この記事が気に入ったらサポートをしてみませんか?