AIがジャンプキングをプレイする方法を学ぶ
目次:
- イントロダクション
- コード・バレットの新しいビデオ
- コード・バレットのドックモードについて
- ジャンプキングとは
- ジャンプキングの難しさとは
- ジャンプキングを改造する
- 衝突ロジックの実装
- バックグラウンドの作成
- AIを追加する
- ジャンプキングのプレイスルール
- ジャンプキングの完成品
イントロダクション
コード・バレットの新しいビデオにようこそ!みなさん、こんにちは!
これまで何度かお目にかかっているという方もいるかもしれませんね。
今回は、新しいプロダクトを紹介します!それでは、さっそく見ていきましょう。
コード・バレットの新しいビデオ
「コード・バレットのドックモード」という画期的なイノベーションにご紹介します。
これまでのコード・バレットのビデオは、視界に悪影響を及ぼす可能性がありましたが、その問題を解決するために、新しいプロダクトが開発されました。
まるでジョークのように聞こえますが、これはまさに画期的なアイデアです。
それでは、早速詳細をご紹介します。
コード・バレットのドックモードについて
コード・バレットのドックモードは、視力への悪影響を最小限に抑えながら、コード・バレットのビデオを楽しむことができる画期的な機能です。
もちろん、これは冗談です。これは私の家です。視力へのダメージは心配いりません。
さて、それでは本題に入りましょう。今回は、ジャンプキングというゲームについてお話しします。
ジャンプキングとは
ジャンプキングは、最もストレスを感じることを目的として設計されたゲームです。
多くの人々が、画面の広さに不満を抱くことを嘆いていましたが、ジャンプキングは、マリオとGetting Over Itのプラットフォームゲームのようなもので、最も酷いプラットフォームゲームとして知られています。でも、それが楽しいんですよ。
ただ、このゲームには少し問題があります。それは、私が下手だということです。信じられないかもしれませんが、私は怒りの管理が苦手なのです。ですので、私にとって最高の選択は、諦めることなのです。
というわけで、ゲームを最初から作り直し、AIを追加してプレイしたふりをすることにしました。これは確かに困難で、おそらくゲームをクリアするよりも時間がかかるでしょうが、私は時間管理のスキルが優れているとは言いませんでしたので、こんなものです。
ジャンプキングを改造する
まずは、新しいゲームを作り直す必要があります。それでは、早速コーディングを始めましょう。まずは、ジャンプの実装から始めて、その後、キングの部分を作り直します。すみません、次に進みましょう。
さあ、ジャンプの実装に取り掛かりましょう。こちらに行きますよ。いいですか、大丈夫ですね。これはそれほど難しくありませんでしたが、ジャンプは完了しました。次は衝突ロジックです。
ジャンプキングの世界は、直線の集まりで構成されており、それぞれの直線は垂直、水平、斜めのいずれかです。ですので、四角形がこれらの直線と正しく衝突するようにするだけで問題ありません。まずは、一番基本的な床の直線から始めましょう。うーん、うまくロードされませんでしたね。ちょっと下に移動させる必要があります。
これで、画面上に線が描かれたことに成功しましたが、これだけでは進歩ですね。次は、実際に四角形と直線が衝突するようにします。その計画は、毎フレームごとに四角形が直線と衝突しているかどうかをチェックし、衝突している場合には落下を停止します。これを行うための方法は、ジェフリー・トンプソンさんのコードを借りるだけです。プログラミングの魔法ですね。
衝突検出の後、四角形を衝突した直線にスナップさせる必要があります。こんな感じでやりますよ、ほら。
バックグラウンドの作成
さて、衝突ロジックの実装ができたので、次はゲームを美しく見せるために背景を作成することにしましょう。一部の人々は、ゲームのメカニズムを完成させる前にアートスタイルを作業するべきだと言いますが、私の場合はそうではありません。私の注意散漫な性格故ですね。
さあ、芸術の時間です。プログラミングと同じように、芸術も努力と献身が必要ですが、本気で取り組めば、誰でも成功することができます。しかし、途中で辛い時期があり、時にはやめたくなることもあるでしょう。しかし、しっかりとした意志とパワーがあれば、飢え続けることができ、成功することができます。
バックグラウンドが完成したら、壁などを配置するためのツールをコーディングする必要があります。幸いなことに、壁はすべて20ピクセルのグリッド上に配置されているため、正確な配置が比較的容易です。さあ、試してみましょう。
AIを追加する
さて、これまでゲームのメカニズムを作成しましたが、次はAIを追加することにしましょう。
AIの計画は非常にシンプルです。まず、ランダムな動きをするジャンピーボーイを生成し、より良いパフォーマンスを発揮するボーイたちが生き残るようにします。一方、パフォーマンスの悪いボーイたちは実行されない運命にあります。
これはまさに進化アルゴリズムです。すごくセクシーですよね。最初はランダムな動きから始まりますが、次の世代ではより良い結果を残したボーイたちが生まれます。さらに、ベビーボーイたちに突然変異を起こさせることもあります。これが楽しいんですよ。
さあ、Squadを組み立てましょう。サウンドエフェクトを追加するのは、おそらく間違いでした。これからの部分はエフェクトの音声をミュートすることにしました。ゲームのバグを見つけるのに最適な方法は、一度に500人のプレイヤーを実行し、ランダムな動きをさせることです。最初はこれらのプレイヤーを存在しないものとして扱い、ビデオを編集する予定でしたが、それではすべてが増えすぎてしまいますので、バグ修正の時間です。
ジャンプキングのプレイスルール
これはそれほど悪くなかったですね。もう一度実行してみましょう。彼は古くなったので、「ゴー」の音をたてました。それが良かったですね。プレーヤーには、一定回数の移動しか許されません。最初の5回の移動を最適化してから、次の5回に取り組むことができるようにする計画です。
また、プレーヤーが次のレベルに到達した場合、すべてのプレーヤーがそのポイントからスタートするようにします。44のレベルをすべて実行するのではなく、この方法のほうが効率的です。最後に、プレーヤーの優秀さを評価するためのフィットネス関数を定義する必要があります。上方向への移動が良いと評価し、下方向への移動が悪いと評価します。
ジャンプキングの完成品
さあ、これでジャンプキングの完成です!素晴らしいですね!バグがあるかもしれませんし、アニメーションも最低限ですが、オリジナルと同じくらいイライラするゲームになっています。これでミッション完了です。
以上がジャンプキングについての記事でした。私のバージョンのゲームをプレイしたい方は、リンクをご覧ください。オリジナルのゲームをプレイしたことがあり、私のバージョンがどれだけ似ているか、または違っているかを知りたいと思う方には興味深いかもしれません。リンクは以下のリソースに記載されています。
リソース: