アイデアを世界に出してみたかった
Jellyfish Climbを作り始めたきっかけは、バイブコーディングを実験的に試してみたいと思ったことでした。せっかく取り組むなら自分のためになるものを作りたいと考え、以前から興味のあったゲーム制作を選びました。
目指したのは、年齢や性別を問わず、誰でも気軽に遊べるシンプルなゲームです。
そこで思い出したのが、以前遊んだFlappy Birdでした。タップだけで操作できる非常に単純なゲームでありながら、何度も挑戦したくなる魅力がありました。Jellyfish Climbも、操作は少なく、それでいて少し夢中になれるゲームにしたいと考えました。
制作したアイデアを一般公開し、世界中の人がどのように感じるのか、どのような反響を得られるのか試してみたいという思いも、当初からありました。
なぜクラゲだったのか
ゲームの題材を考えたとき、心が少し落ち着くような、癒やしを感じられるものにしたいと思いました。そこで浮かんだのがクラゲです。
海の底からクラゲがふわふわと浮かび、少しずつ上へ向かっていく。その光景をゲームにしたら面白いのではないかと思い、Jellyfish Climbの基本的な世界観が生まれました。
BGMや風、水、泡などの音も、海中にいる感覚を意識して選んでいます。にぎやかすぎる音ではなく、ほかの音がほとんど聞こえない海中で、クラゲが静かに浮かんでいるような雰囲気を目指しました。
テストプレイから生まれた「拍動」
最初のゲームには、現在のような拍動の仕組みはありませんでした。タップすると、そのままクラゲが上昇するだけの操作でした。
しかし、実際に遊んでみると、操作にもう少し刺激が欲しいと感じました。タップするタイミングによって速く上昇できれば、操作そのものが早いゴールや高いスコアにつながります。
クラゲが開いたり縮んだりする動きは、この仕組みと自然に重なりました。こうして、クラゲの動きに合わせて操作する「拍動」が、テストプレイを通して後から加わりました。
プランクトンと速さの駆け引き
スコアは当初、集めたプランクトンの得点と、残り時間によるタイムボーナスを別々に加算していました。
ところが何度かテストプレイするうちに、タイムボーナスよりもプランクトンを集め続ける方が有利だと気づきました。それでは、拍動をうまく使って早く進む意味が弱くなってしまいます。
一方で、時間の価値を高くしすぎると、今度はプランクトンを無視してゴールするだけになります。それでは「プランクトンを取りに行くか、それとも時間を優先して進むか」という判断が生まれません。
そこで、プランクトンの得点に、残り時間から算出したタイムレートを掛ける方式にしました。プランクトンを取らずに急いでゴールしても得点は増えませんが、集めながら早くゴールできれば大きなスコアになります。
また、時間切れでも得点が残る仕組みにすると、再びプランクトンを集め続ける遊び方が有利になります。そのため、時間切れの場合はスコアをゼロにしています。
癒やしとゲームとしての緊張感
Jellyfish Climbでは、落ち着いて遊べる雰囲気と、ゲームとしての刺激を両立させたいと考えています。
スコアやBestScoreには、友人同士で結果を比べられるような競争性があります。静かな海中の雰囲気の中にも、少し緊張しながら高得点を目指す楽しさを残しています。
上向きと下向きに変化する水流も、ゲームが単調になりすぎないように追加した要素です。プランクトン、拍動、タイムレートに水流が加わることで、その瞬間に何を優先するかという判断や駆け引きが生まれます。
スマートフォンでも同じ体験を目指す
Jellyfish ClimbはHTML、CSS、TypeScriptで制作しています。Webゲームとして、パソコンだけでなくスマートフォンからも気軽に遊べるようにしたいと考えました。
スマートフォンに左右の操作ボタンを置く方法も考えましたが、小さな画面ではボタンがクラゲや海の景色を隠してしまいます。また、方向ボタンと拍動の操作を同時に行うのは難しく感じました。
そこでスマートフォンでは、端末を傾けて左右を操作する方法を採用しました。方向を変えるためのボタンを押す必要がなくなり、プレイヤーは拍動のタイミングに集中できます。
一方で、実機テストによって新しい課題も見つかりました。画面に対するクラゲの大きさやプランクトンの密度が端末によって変わり、現在もスマートフォンの方が得点を取りやすくなる傾向があります。パソコンとスマートフォンのどちらでも、同じ程度の得点を狙えるバランスにすることは今後の課題です。
AIと役割を分けて作る
このプロジェクトでは、AIにコードの実装と管理をほぼ任せています。私は完成したものを実際に確認し、プレイ感、見た目、ゲームバランス、BGMなどを判断しています。
AIをコーダーとし、自分はゲームの方向性と完成した体験を判断する。そうした役割分担で制作を進めてきました。
バイブコーディングの良いところは、プログラミング言語の文法や細かな技術をすべて習得する前でも、やりたいことを形にできる点でした。
一方で、伝えた内容が頭の中のイメージどおりに実装されないこともあります。何をどのように伝えるか、完成したものが正しいかをどう判断するかという難しさがありました。
AIを利用していても、自分に知識がなければ適切な指示も判断もできません。セキュリティ対応では専門用語を一つずつ調べながら進めました。この経験を通して、AIに実装を任せる場合でも、自分自身が学び続ける必要があると感じています。
公開して初めて分かったこと
最初の公開にはGitHub Pagesを利用しました。ここまでは比較的スムーズでしたが、カスタムドメインを取得し、Cloudflareを利用してセキュリティを整える作業には苦労しました。
専門用語の意味を理解しながら、何をどの順番で設定すればよいのか確認する必要があったためです。Analyticsの導入にもコードが関係する難しさがありましたが、AIに確認しながら解決できました。
公開初日からアクセスがあったことは、とても印象に残っています。すべてが実際のプレイヤーによるアクセスとは限りませんが、データから、一部の人がゲームを始めていることを確認できました。
まだ直接の感想を得られていないことは残念ですが、誰かが実際に遊んでくれたと分かったことは、大きな手応えになりました。
SEOはこれからも継続的な課題です。世界中の人に知ってもらうために、どこまで広げていけるのか試していきたいと思っています。
音源と権利を丁寧に扱う
AIを利用して制作しているからこそ、音源をはじめとする第三者の権利は、特に丁寧に扱いたいと考えました。
音源ごとの利用条件を確認し、必要なクレジットを記載し、配布元や制作者のページへ移動できる形にしています。
使用した音源が多くの人に知られ、音源を作った方にもつながっていくのであれば、それは良いことだと思っています。音源を使わせていただく立場として、これからもルールを守りながら大切に扱っていきます。
急がず、反応を見ながら育てていく
これからも、ゲームを難しくしすぎず、幅広い人が遊べるという最初のコンセプトを大切にします。
今後まず追加したいのは、プランクトンの種類です。種類ごとの違いや少しのランダム性が加われば、プレイ中の刺激や競争性が高まり、繰り返し遊ぶ楽しさにつながると考えています。
その次には、クラゲがどこまで上昇できるか挑戦する、長く遊び続けられるモードを検討しています。ただし、どのようなゲームとして成立させるか、具体的なイメージが固まってから取り組む予定です。
ドット絵などのスキン変更は、ゲームがより広く知られた後の段階として考えています。
一度に大きく変えるのではなく、プレイヤーの反応を見ながら少しずつ育てていきたいと思っています。営利目的を中心にするのではなく、さまざまな人に遊んでもらうことを大切にしながら、自分のアイデアとゲームの広がる速度に合わせて、無理なく長く続けていくつもりです。
すでに、作ってよかったと感じています。これからアクセス数や遊ばれる国が増え、世界のさまざまな場所へ広がっていけば、一つの成功だと思えるはずです。
今後は、プレイヤーから直接感想を受け取れる場所も用意したいと考えています。そこで前向きな感想をもらえるようになれば、作ってよかったという気持ちは、さらに大きくなると思います。