etilesというゲームアプリをScala.jsからTypeScriptで書き直した理由 - テストステ論
で話したように、私はイータイルズというゲームをTypeScriptで書き直しました。
www.youtube.comユーチューブでは、なぜイータイルズは面白いのか、私のクソ雑魚デモプレイをもとにして軽く話しました。
この記事では、なぜイータイルズは面白いのか、これを説明したいと思います。
求められる能力の複合性
イータイルズは、タイルをひっくり返したり入れ替えたりして答えにマッチさせることを目標とするゲームですが、多くのプレイヤーは、このゲームは「まず色を揃えることが先決」ということに気づきます。ここでは、
- 試しにひっくり返した時にタイルの裏を記憶すること
- タイルの裏を推測すること
- スタート時にどのタイルが多いか少ないか判断する能力
の3つの能力が求められます。
このように「シンプルだがめちゃくちゃ難しい」という点が、イータイルズが他のゲームよりも優れている点であり、一部のプレイヤーを虜にする理由です。長年プレイされ続けているテトリスや、あるいはルービックキューブに比肩するゲーム性があると自負しています。
色の裏表関係
色の裏表関係には対称性があり、これが以下の性質を導きます。
学習容易性
イータイルズは、ボードサイズが2x2から5x5まで変更可能です。しかし、はじめから5x5に取り組もうという人はいないはずです。私も、まずは3x3を素早く解けるようになる方がいいだろうと思っています。
ここで、3x3をやりこんで学習した内容が、その上の4x4でも5x5でも100%活用出来たら素晴らしいです。
イータイルズは、この性質を持っています。以下の2枚は、3x3を設定した時のホーム画面と、4x4を設定した時のものです。上にあるのが適当なタイル配置(実際の問題とは無関係でランダムに作られたものです)で、下にあるのが色の組み合わせを表したグラフです。
ここでわかることは、3x3のグラフは4x4のサブグラフになってるということです。4x4からオレンジと紫のノードを除外すれば、残ったエッジは3x3のものになってることに気づくと思います。
つまり、3x3で学んだことが4x4でも応用出来るのです。自分より小さいどのボードで学習した内容も自分を解くために応用出来るという性質は美しいだけではなく、実際にプレイヤーの学習を助けます。
私は、色の組み合わせを自分に染み付かせることがイータイルズを奥深くまで楽しむためには必要だと思っていて、たぶん現状優れているプレイヤーはこれを感覚的に学んでいますが、このようにグラフにしてみるとはっきりすることがわかります。
私からのアドバイスは、大きなタイルで遊ぶのがきついと思ったら小さなタイルで遊べばいいし、それをやっていくうちに大きなタイルでも解けるようになっているはずです。
推論のしにくさ。多少の運要素
タイルの裏を推論することは難しいです。間違いなくこうであると断言出来る場合もあります。それは2x2など小さなタイルで遊べば明確にわかるでしょう。しかし、大きなボードでは、少なくともある程度序盤においては、どのタイルをひっくり返して裏情報を見るかによって、タイムに影響してきます。ある程度情報が揃えば、答えに一直線にたどり着くことは原理的には出来るとは思いますが、色の組み合わせが循環してることもあって、序盤では推論が循環して一意に決定出来ないはずです。
5x5を運で高速(例えば20秒)に解くことは出来ないですが、この多少の運要素がイータイルズの面白さでもあります。これは、テトリスなどのゲームに似ています。ある程度の運要素はあるけど基本的には実力で決まる。囲碁や将棋には運要素は一切ありませんが(ある局面で賭けていると言っても、それはただ読み切れてないだけ)、イータイルズには多少の運要素があります。そしてその運要素は、ボードが大きくなるほど、小さくなっていきます。運要素が大きい例としては2x2という小さなボードでは、一枚裏返せばおわりということが、今の実装ではたまに起こります。一秒を切るようなタイムは、この一枚を瞬時に判断するかあるいはまぐれで触ったかのどちらかによって発生します。
バージョン2独自の新要素
リーダーボード
リーダーボードは前のバージョン1でもありましたが、最速タイムだけでした。このため、多くのプレイヤーはリセマラを繰り返しました。バージョン2では、一発の最速タイムというのはあくまでもおまけで、本当の実力は安定して好タイムを出せることだと定義しています。従って、マラソンという10回連続のタイムを競うのが基本モードで、ベストやスプリントというのはあくまでもおまけという立ち位置にしました。ゲームは10回連続を前提に始まりますが、途中で投了した場合にも、それまでの記録は残すことにしました。バージョン1では完走しない限り記録を放棄するという作りになっていて、ユーザはひたすら1回でプレイする結果になってしまっていました。
アチーブメント
ユーザの当面の目標は、アチーブメントをアンロックすることです。このタイムは過去のリーダーボードの情報を元にして慎重に決められており、レベル1では「ほとんどのプレイヤーが解けるだろう」というレベルに設定しています。レベル2は「少し努力が必要だろうが才能は必要ないはずだ」というレベルにする予定です。どこまでやるかは不明ですが、最終的には神レベルというのを想定しています。
通信対戦
これはまだ未実装ですが、ある程度ユーザが増えてきた段階で、通信対戦の実装も予定しています。これはレーティング制にして、レートのあまりに離れた人とはマッチしない、レート差によってレートの交換が決まるという仕組みを実装しようと思っています。
ここまで読み切ってくれたあなたはイータイルズをプレイしてみたいと思っているはずです。グーグルプレイストアで"etiles"と検索していただくか、以下のリンクからダウンロードしてください。