見出し画像

【Google AI Studio】時短クッキング No.10:難易度高すぎなレトロゲーム「ヘッドオン」クローン

時間をかけずに、アプリ作成に挑戦する「時短クッキング」シリーズ、第10回目は、レトロゲームの「ヘッドオン」クローンを制作してみることにしました。



Gemini3 Proで蘇ったPython版

プロト版はPythonで作りました。というか、まだGoogle AI Studioが登場する前に、Claudeで作ったものがあったのです。それが次。

Pythonで動作するプロト版プログラムをベースにしている

実は、このプログラムにはバグがあり、どうしても改善できず、長い間放置状態にありました。試しにGemini3 Proに見てもらったところ、あっさりバグ改修。長年Claude信奉者の私にとって、これは衝撃的な事件といえます。





完成したアプリ:難易度を選んでプレイ!

こうしてベースとなるPythonコードができてしまったので、Google AI Studio環境に放り込んで開発スタート。移植はあっさり完了。あれこれいじってできたのが、次の「ヘッドオン」クローンとなります。

ステージ(難易度)選択画面
ゲームプレイ画面

ゲームは1ステージクリア制。1回の挑戦で、すべてのドットが取れたら勝ち。クラッシュしたら負け。同じステージでも短時間にクリアできたらベストラップとしてブラウザに記憶。過去の自分と戦うことができます。

特徴は難易度選択できるところ。難易度は次のようになっています。

ステージ1:敵数1、レーン移動1一台
ステージ2:敵数2、レーン移動1二台
ステージ3:敵数3、レーン移動1三台
ステージ4:敵数1、レーン移動2一台
ステージ5:敵数2、レーン移動2一台、レーン移動1一台
ステージ6:敵数3、レーン移動2一台、レーン移動1二台

レーン移動1というのは、1つの踊り場で隣のレーンにしか移動できない縛りです。レーン移動2では、1つの踊り場で2つ横のレーンまで移動できますので、格段に難易度アップします。

当初、ステージ4からステージ6は、敵の車がすべてレーン移動2設定だったのですが、クリアが不可能そうだったので、1台だけレーン移動2で、それ以外はレーン移動1に調整しました。これでもステージ6は、私はクリアできたことがないです。





操作方法

ステージ選択画面

カーソルキー:ステージ選択
Enterキー:ゲーム開始

プレイ画面

カーソルキー:踊り場での車のスライド移動
スペースキー:アクセル(速度アップ)

終了画面

Enterキー:ステージ選択画面に移動

ルール

勝利条件1:ドットをすべて取る
勝利条件2:より短いタイムで勝利すると、BEST登録されブラウザに記憶される





シェアURL

お試しください。





SVGデータからの読込ができました

御覧のように、Python版との大きな違いは、キャラクターデザインです。もちろん、Google AI Studio版でも移植後は三角形のキャラだったのですが、あまりにあまりなのでオリジナルデザインに変更。

その際、

  • ドットデータを使う

  • ベクトルデータを使う

の2つの選択肢があります。今回はベクトルデータを使用することにしました。以前作ったインベーダーはドットデータです。パックマンはベクトルデータですが、AIがデザインしたものであり、私のデザインではありません。

Google AI Studioへの渡し方ですが、SVGファイルをプロンプトに添付しただけです。ゲームでは、車の向きが上下左右に変わりますので、データとして4方向分用意すべきかとも思いましたが、次のように上向きにして渡してみたところ、一発で正しく動作しました。すごすぎー。

上向きで添付






まとめ:時をかけるカーレースゲーム

改めて知ったのですが、初のドットイートゲームだそうす。つまり、パックマンよりも前にリリースされています。その意味では、非常にエポックメイキングなタイトルといえるでしょう。

「ヘッドオン」は「正面衝突」という意味で、文字通り、逆走してくる敵の車をよけながら、ドットをすべて取るのが目的。簡単そうに見えるかもしれませんが、やってみると想像以上に難しいゲームです。

コツはアクセルを使わないこと

でしょうか。

本節の見出しは、最近テレビで放送された「時をかける少女」にひっかけました。

レトロ万歳!

以上。

いいなと思ったら応援しよう!

ROROSUKE LABO 記事なり、プログラムなりが役に立ったと思った方は、 チップの応援よろしくお願いいたします。 次の開発もがんばろうかな、という気になりますのだ (笑)