テンソルネットワークを題材にしたゲーム「Memory Trip」を作成しました

この記事は[量子コンピューター Advent Calendar 2024](https://qiita.com/advent-calendar/2024/quantum)の三日目の記事です。

お久しぶりです．wottoです．なんとか生きてます．

今日は，先日11/29（金）〜12/1（日）にお台場の日本未来科学館で開催された「サイエンティフィック・ゲームジャム（SGJ)」東京2024にて，我々のチームDinner Bufftが開発したゲーム「Memory Trip」を紹介したいと思います．

## サイエンティフィック・ゲームジャムって？

https://jp-minerals.org/scientificgamejam/jp/

サイエンティフィック・ゲームジャム（SGJ）は，博士課程学生の科学的研究を題材にしたビデオゲームを48時間で制作するハッカソンです．元々フランスで定期的に開催されていたのですが，今回のSGJ東京2024は日本で初めての開催となった，とのことです．

オーガナイザーの方の紹介で今回参加させていただきました．

## 開発体制

１チームあたり
- 科学者（博士課程学生）
- プログラマー
- グラフィックデザイナー
- ゲームデザイナー
- サウンドデザイナー

で構成され，全員で7〜9人のチームが4チーム振り分けられました．そのほか，東京国際フランス学園の高校生チームも2チーム参加しました．

基本的には，博士課程の学生がゲームの根幹となるアイディアを提供し，それを元にゲームデザインを考え，UnityやPyxelなどを用いて作成する，という流れになります．

## 我々の作成したゲーム

自分のチーム「Dinner Buffet」では，**テンソルネットワーク**を題材にしたゲームを作成しました．

https://dinnerbuffet.itch.io/memory-trip

上のリンクから実際に遊ぶことができます．PC，スマホ，タブレットに対応しているので，ぜひプレイしてみてください．

### ゲームコンセプト

私の専門分野であるテンソルネットワークの縮約計算をそのままゲームにしています．

初期状態として以下のようにテンソルネットワークが与えられます．

![スクリーンショット 2024-12-03 20.24.15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/862310/a6f234a1-f78d-b016-b5d9-45185b66132a.png)

例えば，一番上のテンソルを左上のテンソルとくっつけてみます（縮約をとります）．

![スクリーンショット 2024-12-03 20.24.47.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/862310/7dff8d13-aaa5-516d-2afb-95ee1716afca.png)

![スクリーンショット 2024-12-03 20.25.06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/862310/6d0adfca-d470-2b31-8806-ee89d9726208.png)

テンソルの縮約が取られました．右上の「ふか」の値が3から4になっています．「ふか」の値はネットワーク内の最大次元を表しています．この場合，左上のテンソルの次元が4なので，「ふか」は4になります．

この状態で，左上のテンソルと右のテンソルの縮約をとってみましょう．

![スクリーンショット 2024-12-03 20.25.19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/862310/b1d6fd32-bf07-4949-5ea2-fef5c3a96478.png)
![スクリーンショット 2024-12-03 20.25.26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/862310/1dd9fbb6-23a4-baee-f0d9-dc7f5cfaea41.png)

すると，左上のテンソルが5次元テンソルになり，テンソルが黄色く表示されてしまいました．表情もなんだか楽しくなさそうです．

このゲームでは，途中に出てくるテンソルの「ふか」，つまり中間テンソルの次元をなるべく低くなるように縮約をとる必要があります．

では，どうすればよかったのでしょうか？今度は，右のテンソルと右下のテンソルの縮約をとってみます．

![スクリーンショット 2024-12-03 20.25.19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/862310/b1d6fd32-bf07-4949-5ea2-fef5c3a96478.png)
![スクリーンショット 2024-12-03 20.25.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/862310/48df60a1-ee38-1ec9-1aff-d092a1b84cf2.png)

すると，無事，４次元テンソルのみが出てくるテンソルネットワークになりました．

途中に出てくる「ふか」の大きさに応じて，テンソルネットワークを全て縮約した際のスコアが変化します．中間テンソルを全て4次元以内に抑えることができればSランク，5次元ならAランク，6次元以上ならBランクです．全ての難易度でSランクを目指しましょう！というゲームです．

## こだわったポイント

今回はターゲットユーザーとして，日本未来科学館に遊びにくるような小さい子供でも直感的にプレイすることができるゲームを目指しました．

この目標を達成するために，ゲームオーバーを設けず，とりあえずテンソル同士をくっつけていけばクリアできる，という形に調整しました．プレイしていくうちに，テンソルネットワークの縮約ルールについて直感的に理解し，さらにハイスコアを目指して何回もプレイしたくなるように工夫しました．

また，テンソルネットワークの応用分野として量子コンピュータや機械学習など情報系の分野が挙げられるため，そのような雰囲気を持つように8-bit風の描画に統一した，可愛らしいテンソルくんのキャラクターをグラフィックデザイナーの方が描いてくださいました．サウンドについても同様に，8-bitでポップな感じのものを制作していただきました．

科学技術（テンソルネットワーク）のコンセプトをチームメンバー全員でしっかりと共有でき，それらを小さい子供でもうまく伝えられるように各々の専門分野からアイディアを出し合いました．この点が今回の我々のチームの本当に良かった部分だと思います．

### 改善点
山のようにあります．また時間がある時にどんどんアップデートしていきたいです．

## まとめ
他のチームのゲームもどれも本当に素晴らしいクオリティで，自分にとっても大きな学びのあるイベントだったなと感じます．

https://itch.io/jam/scientific-game-jam-tokyo-2024/entries

今回制作されたゲームは全て上のリンクから遊べます．個人的には，東京国際フランス学園の高校生チームが作成した「The Wounderful Life of Fujita by Soyons Fou-jita!」がかなり衝撃的な作品でした．藤田嗣治さんという日本生まれのフランス画家の一生をゲームにより追体験するという，なんともフランスならではというか，日本だとなかなか生まれないアイディアだなと感じました．プレイが進むごとに右下の絵が完成するというのもお洒落です．

## おまけ

![IMG_3997.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/862310/d66f22c5-ee09-9d56-25ea-daa35b6aefa9.jpeg)

日本未来科学館から駅への通り道にガンダムがあり，なぜか3日ともガンダムの前でみんなで談笑してました．いい思い出．