ジェネティック・ダービー

https://github.com/omochii2718/Genetic_Horse

GitHub

C#

Unity

遺伝的アルゴリズムを用いて製作した競馬ゲ―ム

tori

推しアイデア

毎回学習をすることにより、都度違う走りを見せてくれる馬達

作った背景

今回のテーマはうん→運ということで、運が関係するギャンブルを作りたく、競馬にたどり着きました

推し技術

遺伝的アルゴリズムを使った学習 unity上での優れた3dモデルの製作

プロジェクト詳細

ギャンブルをしよう!

そんなテーマで始まった今回のハッカソン。皆さんはギャンブルと聞いて何が思い浮かぶでしょうか。カジノ?パチスロ? 私たちはパチスロのような確率機ではなく、競輪や競馬のような、人や馬という「生き物が絡むからこそ生まれる熱狂」を作り出したいと考えました。 そこで目を付けたのが、遺伝的アルゴリズムです…

遺伝的アルゴリズムとは

遺伝的アルゴリズムについて紹介します。 遺伝的アルゴリズムとは生き物の進化の仕組みをプログラム上で模倣し、最適解を求めるアルゴリズムです。

遺伝的アルゴリズムの具体的なプロセス

1.ランダムに答えの候補を生成 2.それぞれの候補が答えにどれだけ近いか評価 3.点数の高い候補を次世代の「親」として選抜 4.親同士のデータを掛け合わせて、新しい「子」を生成 5.局所解(似たような解)ばかりになることを防ぐために、データの一部を変え突然変異

実際に遺伝的アルゴリズムを実行している様子

ゲームの流れ

・ランダムに生成されるモデルの突然変異率をユーザーが決定 ↓ ・好みの回数遺伝的アルゴリズムによる個体厳選を行う ↓ ・アルゴリズムの結果生み出された最も優秀な馬の数値をsupabase上に登録する ↓ ・成長したそれぞれの馬でレースを行う

推し技術

・より効率的に進化できるように、報酬条件や動作方法などを何度も試行錯誤し決定した遺伝的アルゴリズム ・unityで行ったアルゴリズムの結果をsupabase上で保存 ・より動作を軽くするためにblenderでローポリゴンで製作した自作3dモデル

今後実装したいこと

・マルチプレイの実装 ・ユーザー側の選択により結果が変わるさらなるドキドキ要素(モデル変更やアルゴリズム選択など)

あとがき

ハッカソン初心者4人で参加し、最初はgithubの扱いにすら苦戦していましたが、アドバイスもあり何とか完成できてよかったです。

tori

@038176ea23e65b38