木と石で組まれた構造物から、部材を一本ずつ抜いていく3Dパズル。ジェンガのように「どれを抜いても大丈夫か」を見極めるゲームだが、手がかりは見た目だけではない。部材を叩くと、その棒がどれだけ荷重を受けているかが音に表れる。よく鳴る棒、鈍い棒を聴き分けながら、目標の本数を抜いても立ち続ける構造を探していく。
こんな人に向いている
- ジェンガや積み木のような「崩れるかどうか」のスリルが好きな人
- 建築や構造力学に興味がある人
- 音を手がかりにじっくり考えるパズルを遊びたい人
- 毎日のランキングでほかのプレイヤーと競いたい人
遊び方
- ページを開き、部材をクリック(スマートフォンならタップ)して選ぶ。
- 選んだ部材の音を聴き、荷重を受けているかどうかを推理する。
- 「抜く」で部材を取り外す。構造が保てなくなると崩れてしまう。
- 目標の本数を抜いても立っていればクリア。
- 「アーキテクチャを選ぶ」から別の構造に挑戦する。
ドラッグで視点を回転、スクロールやピンチで拡大縮小できる。キーボードでも、矢印キーで部材を選び、Spaceで聴き、Xで抜く操作ができる。
主な機能
- 音で読む構造: 部材ごとの荷重やかたさから音を合成し、叩いたときの響きで役割を推理できる。文字による音のヒントも表示できる。
- 入門〜上級のステージ: 四面体やピラミッドから、ねじれの塔、長い回廊、星の大聖堂まで、章ごとに難しくなる構造を用意している。
- 限界モード: 制限時間(目標本数×6秒)つきのルール。時間とともに揺れが強まり、荷重を多く受けていた棒ほど高得点になる。崩れると合計の30%を失うので、どこで「ここで完成」と止めるかの駆け引きが生まれる。
- 日替わりオンラインランキング: 限界モードの組み付けと揺れは日本時間で日替わり、全員共通。結果画面からスコアを送ると、今日と歴代の上位10件に掲載される。
- 記録の保存と共有: 選んだ構造・音の設定・スコアはブラウザに保存。X・LINE・URLコピーで共有できる。
技術構成
ビルド工程を持たない静的サイトで、描画にThree.js、崩壊時の物理演算にRapierを使っている。部材が抜けたあとに構造が立っていられるかは、自作の3D骨組み(フレーム・トラス)剛性解析で判定しており、各部材の軸力やひずみエネルギーをそのまま音とスコアに反映している。音はWeb Audio APIでその場で合成している。
オンラインランキングはCloudflare WorkersとD1で動かしている。送られたスコアはいったん「検証待ち」になり、GitHub Actionsが定期的に操作の記録をリプレイして、点数が完全に一致したものだけを掲載する仕組みにした。
工夫した点
「なんとなく抜いたら崩れた」ではなく、「この棒は効いていない」と推理して抜けるゲームにしたかった。そこで、見た目の物理演算ではなく構造解析の結果を判定の基準にし、その数値を音に変えて聴けるようにした。
ランキングの不正対策では、限界モードの揺れや得点計算をすべて固定ステップとシード付き乱数で動かし、同じ操作列から同じ点数がビット単位で再現できるようにしている。これにより、サーバー側でゲームをもう一度再生するだけでスコアを検証できる。