量子性を活かしたゲームの開発

こんにちはQuemixの須郷です。
現在IPAの未踏事業で行なっているプロジェクトについて概要を紹介いたします。
量子の性質を含んだゲームを作るということで、期間内に2つ作るということになっています。今回はそのうち1つ目のゲームについてのご紹介です。

# おことわり
ゲームができるまでの経緯やルールの詳細、量子についての説明等あらゆることを初めて見る人にわかるように説明しようとするとあまりにも分量が多くなりすぎてしまうため、かなり端折った紹介になっていることをご了承ください。どんなことをやっているのかの雰囲気だけ感じとってもらえればと思います。

また、技術的に優れたことをやっているわけではないのでコードは載せていません。qiskit等量子コンピューティング用のプログラムも今回は利用していません(利用するほど複雑なことを行なっていないから)。

# 本記事の内容
- プロジェクトの概要
- 題材にした量子の性質について
- ゲームのルールの概略
- 気づき

# プロジェクトの概要
## 量子の性質を面白さに結びつけた新規なゲームを開発する
できる限り繰り返し遊べるものを目指します。単に重ね合わせを用いましたというだけでは面白くなりません。量子のことを知らなくてもゲームのルールを理解でき、遊びを通して量子についての感覚等が身につくようなものを目指します(努力目標)。

## とった戦略
全く新規なゲームを1から考えるというのはかなりハードルが高いため、既存のゲームに量子の要素をくっつけて新しいゲームをつくろうと思いました。また、元のゲームに対する知識があれば最初にルールを理解する際の役に立つと考えました。

## ここまでの成果(EPRペア発見ゲーム)
EPRペア発見ゲームを制作しました。プロジェクトはまだ途中ですが、前述の通り2つゲームを作ることになっていて、今回紹介するゲームに関しては一通り全て終わっています。pygameで実装し、私の手元では遊べる状態になっています。このゲームは**「神経衰弱＋量子もつれ」**をテーマとしています。EPRペアと呼ばれる量子的な性質を持ったペアを神経衰弱の要領で見つけていくというゲームです。最終的なルールは神経衰弱と離れてしまっている部分も多々ありますが、発想はここからスタートしています。
<img width="600" alt="title.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309762/200307b5-1105-772e-f2cb-7525ab31ddcb.png">

# 題材にした量子の性質について
EPRペア発見ゲームにはQカードと呼ばれる量子の性質を含んだカードギミックが登場します。本作の量子要素はこのQカードの中にしかでてこないため、ここを理解してしまえばあとは普通のゲームです。

## Qカード
通常のトランプには表に数字とマーク(スート)が書かれていて、裏向けたトランプを表に向けるとその両方が見える状態になります。そのトランプの数字とマークは何度みても変わることはありませんが、Qカードは以下のような違いがあります。

- 数字は0と1の2種類あり、マークは+と-の2種類ある
- Qカードの表には数字とマーク両方が書いてあるが、数字とマークは一度に片方しか見れない
- 数字とマークは見るたびに結果がランダムに変わることがある

そしてQカードは以下の5種類があります。

- 0カード : 数字は必ず0が出るが、マークは+と-が半々の確率で出る
- 1カード : 数字は必ず1が出るが、マークは+と-が半々の確率で出る
- +カード : マークは必ず+が出るが、数字は0と1が半々の確率で出る
- -カード : マークは必ず-が出るが、数字は0と1が半々の確率で出る
- EPRカード : 数字もマークも半々の確率で出る。常に2枚で1セットになっており、数字もマークも必ず結果が一致する。

<img width="752" alt="Screen Shot 2019-12-05 at 13.15.39.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309762/722cb21a-ad91-abf1-4bc9-a65a39b60972.png">

(突然Z測定とかX測定とかいう言葉が出ていますが、スライドの流用なので許してください)

詳しい説明は省略しますが、この数字とマークのどちらを見ても結果が一致するという性質が今回採用した量子的な性質(量子相関)となります。

<img width="746" alt="Screen Shot 2019-12-05 at 13.15.51.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309762/fc456367-fa7b-52cc-159b-5efff484f3a9.png">

## Qカードは実際に作れるの？
完全に余談ですが、このQカードという量子トランプのようなものは、普通の紙で作ることはできませんが、プログラム可能な電子ペーパーのようなものを使えば手で触れる実物を作れるだろうという議論が先日の中間報告会でありました。誰か一緒に作りましょう。

# ゲームのルールの概略
ここからゲームのルールを簡単に解説します(一部細かい点は省略)。ゲームはルールを文章で伝えて面白さが伝わるものではないので、本来は何らかの形でデモをお見せできるのがベストですが、今回はルール紹介のみとなります。

## 場の状態
場には4~8枚のQカードを置きます。この中には1~4組のEPRペア(カードとしては2~8枚)があります。EPRペア以外のカードは上述した5種類のカードのうちEPRカードではない4種類のカードがランダムに配置されます。例えばQカードが8枚でEPRペアが2組の場合、残りの4枚はランダムなQカード(EPRカードを除く)が配置されます。どの種類のQカードが配置されているかはプレイヤーにはわかりません。場のQカードが全てEPRペアのカードである場合、ランダムに置かれるカードはありません。
![Picture1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309762/1de64b50-e396-607d-d0ac-c84ea7070ac7.png)

## プレイヤーのとれる行動
このゲームは次の3つの行動で成り立っています。通常の神経衰弱では「見る」と「回答する」という区別はありませんが、本作では明確に役割がわかれています。

- 見る
    - 選んだQカードの数字またはマークのいずれかを確認します
![Picture2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309762/33e64283-476e-c830-406b-c5db85532e9b.png)

- 回答する
    - 選んだQカードがEPRペアであると宣言し、正解であればそのペアを取得できます。
![Picture3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309762/92684002-67cd-ef95-530a-d3662d13809d.png)

- 追加回答する
    - 後述

## 勝利条件
場にある**最後の**EPRペアを取ったプレイヤーの勝利です。

## ゲームの流れ
- プレイヤーの数(2~4)、Qカードの数(4~8)、EPRペアの数(1~4)、を決める
- 各プレイヤーがひとりずつ順に以下の行動を行う(勝敗が決まるまで)
    - 場のQカードから2枚を選び、数字かマークを見ます
        - 1ターンに2回まで見れます(1回目と2回目で見る2枚のカードを変更することはできません)
    - 上で選んだ2枚に対して回答するかどうかを選びます
        - 回答しない場合はターン終了で次のプレイヤーに移ります
        - 回答し、正解だった場合はそのプレイヤーが追加回答できます
        - 回答し、不正解だった場合は次のターンプレイヤーが追加回答できます
       
## 追加回答
誰かが回答した場合、その結果に応じて追加回答の権利が発生します。この追加回答はこのゲームで唯一プレイヤー間に情報の格差を生み出す仕組みです。基本ルールは通常の回答と同じですが、以下の点で異なります。

- 追加回答の結果を見ることができるのは**追加回答をしているプレイヤーのみ**です。
    - 追加回答以外のプレイ結果は全てのプレイヤーが平等に共有しています。元の神経衰弱と同じですね。もちろん追加回答で正解した場合は場のカードが減るので全員に結果が共有されますが、失敗した場合は追加回答したプレイヤーのみが結果を知れます。
- 追加回答で不正解でも次のプレイヤーに追加回答されることはありません。つまりノーリスクです。
- 追加回答で正解した場合、さらに追加回答を行うことができます。
![Picture4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309762/a382ff5a-08d9-eb61-6f09-2fcb5fce8e58.png)

## 追加回答の仕様について
この追加回答の仕様は正直あてずっぽうでペアを取れてしまうという点で少し微妙な仕様となってしまっています。この点については先日の中間報告会で個人的にアドバイスを下さった方がいたので、そちらのより量子を活かしたルールへの変更を検討した方がよいかもしれませんが、未踏期間内にはおそらくできそうにないです。

## 狙っているゲーム性

- カードを見た結果を覚える記憶ゲーム本来のゲーム性
    - このゲームでは出た数字やマークそのものではなく、同じ数字、マークが出たかどうかを覚えることになる
- 回答をするかどうかの選択による駆け引きのゲーム性
    - 回答し、成功すれば自分だけ追加の情報を得られる
    - 回答し、失敗すれば相手に追加の情報を与えてしまう

# 気づき
ゲームを作る中で考え、気づいたことをいくつかリストアップしてみます。

## 確率について
これは一番最初にぶつかる問題ですが、量子を入れるとどうやっても確率の要素が入ってきます。確率ゲー( = 運ゲー)は基本的にクソゲーになりがちなので、何も考えずに量子要素を加えるとオリジナルのゲームが面白くてもクソゲーになってしまう確率が高いです。確率の要素があっても面白いゲームはいくらでもありますが、私の考えではプレイヤーの意思決定がゲームの勝ち負けにしっかり反映される必要があると思います。その辺りをしっかりデザインしなければいけません。

また、もともと確率の要素がないゲーム(オセロ等の完全情報ゲーム)は組み合わせるゲームとしてあまり相性が良くないと思われます。これらのゲームは運の要素がないことで相手の行動を予測し先を読む面白さが成立していますが、確率の要素が入ってしまうとその先読みがそもそもできなくなってしまいます。

## ルールが複雑になる
(ここは多少量子論の知識を前提としたことを書いています)
ゲームに量子の要素を入れるにあたって、「エンタングルした量子状態を作って測定する」ということをまじめにやると、

- 重ね合わせを作る
- エンタングルさせる
- 測定する

のように3ステップかかってしまうことがわかります。これらに対応するプレイヤーの行動をそれぞれ追加するとルールが複雑化し過ぎると思います。つまり古典的な状態からプレイヤーの手によって量子的な状態を作っていくという流れにするのは意外と大変です。神経衰弱でいうともともとがカードをめくるという”シンプルな”操作のみであるのに対してこれらの行動をプラスしようとするとシンプルさが一気に損なわれる可能性が高いです。これはオセロ等プレイヤーの行動がそもそもシンプルであるようなゲーム全般に言えると思いました。もちろん複雑なルールになっても理解しやすくデザインされていれば問題はありません。

今回私がこの問題に対してとった解決策は、エンタングルした量子状態が最初から実現していて、プレイヤーは測定のみを行うといったものでした。測定した後はシステム側がまたエンタングルした初期状態に自動的に戻してくれるので、プレイヤーの行動はシンプルさを保てます。

## 神経衰弱との相性
従来の神経衰弱は一度見たカードの情報は確定情報(♠️が次に見たら♣️とかはない)であるのに対して、今回のEPRペアは何度測定してもこの2枚がEPRペアであると「確定」することはできません(たまたま結果が一致しているだけかもしれない)。また、Qカードの種類をでた数字やマークを覚えることで特定することは一応可能ですが、Qカード1枚につき4つの情報(0,1,+,-が出たか否か)を覚えないといけないのですぐに限界がきます。やってみるとわかりますが、真面目に覚えようとするととにかく覚えることが急激に多くなります。よって自分でやっておいてなんですが、**記憶ゲームとの親和性は低いかもしれない**です。

また、これは記憶ゲームに限ったことではないですが、重ね合わせによって膨れ上がった場の状態それぞれに対して何かしら判断・記憶をしなければいけないようなルールは全く現実的ではないでしょう。これはおそらく完全なログが見れる仕様のゲームだったとしてもそうだと思います。プレイヤーが意識しなければならない情報量を少なくする工夫が必須です。

## どう考えて作るか
今回作っている途中で、既存のゲームのルールに量子を入れるという考えから、量子のギミック(今回の場合はQカード)を作るという感覚に変わりました。この利点は量子性をそのギミックの中に制限できることです(量子の守備範囲が明確になる)。また、量子ギミック以外の部分には極力ランダム要素を入れない様にすることで、プレイヤーの意思決定でゲームの勝敗を十分左右できる様にバランスをとることもできます。つまり量子としての面白さとゲームとしての面白さを別々に考える方がよいと思いました。今回の場合でいうと、

- 量子としての面白さ
    - Qカードというギミック
- 神経衰弱の面白さ
    - 出た情報を忘れずに覚えていられたことの達成感
    - 連続でペアを取れた時の爽快感

神経衰弱の面白さを残しながら量子のギミックを足し、ルールとして成立させ、オリジナルにはなかった駆け引きの要素を足した、ということになります。

# 最後に
## で、面白いの？
めちゃくちゃ面白いというものではないと思いますが、神経衰弱が面白いと思えるならそれなりに遊べると思います。一応何度も遊んでますが、目標であった繰り返しプレイに耐えうるものではあると思います、
## 2つ目のゲームは?
製作中です。ギミックのアイデアがある、という段階です。
## どうやって遊ぶの？今後は？
現状私のところに来てもらう(もしくは私が出向く)他ありません。すみません。ですが、先日未踏の中間報告会でも刺激をいただいて、遊びたいという声も多少いただいたので、いずれ何らかの形で遊んでいただけるようにはしたいと思います。
見た目やUI等々まだまだ遊びにくいですが(誰かまともなUIで作ってくれないかな(小声))、公開されたあかつきには感想をいただけるとありがたいです。何かしら質問等興味をもっていただけた方はお気軽にお問い合わせ(ssugo@quemix.com)ください。