yhara.jp

Recent Posts

対戦型AIコンテスト Halite-IIIの始め方

2018-10-20
Tech

10/16から始まった https://halite.io/ がけっこう面白かったので、始め方を解説します。

Halite-IIIとは

HaliteはTwo Sigmaという会社が開催しているプログラミングコンテストで、Halite-IIIはその第三回目になります。

Halite-IIIは2〜4人対戦型のゲームで、海に船を出して海中の"halite"を回収し、一定ターン後に一番たくさんhaliteを蓄えたプレイヤーが勝者となります。試合はAIを投稿するたびに自動的にサーバ側で行われ、勝率によってレーティングが変化します。

gif

開催期間は年明けの2019/1/22までとけっこう長いです。

使用可能な言語

https://halite.io/learn-programming-challenge/downloads に一覧がありますが、C++、Java、Rust、Goなどさまざまな言語で参加することができます。

ここにない言語については、https://github.com/HaliteChallenge/Halite-III/pulls に追加のPull Requestがあるかもしれません。僕は#30のRuby kitを使っています。1

参加方法

アカウントを作って、コードをzipに固めてこのページからアップロードするだけです。各言語のstarter kitにはサンプルのAIが入っているので、とりあえずそれをzipして投稿してみると良いでしょう(ランダムに動くだけなので、高得点は期待できませんが)。

コードの書き方について

https://halite.io/learn-programming-challenge/tutorials の「Code Tutorial」を押すと、ブラウザ上でチュートリアルがプレイできます。サンプルAIの解説があるだけでなく、この画面上で練習試合もできたりして、よくできています。

Halite-IIIの面白いところ

投稿したAIについては試合結果が出るだけでなく、試合の経過もアニメーションで見ることができるので、それを眺めてるだけでもけっこう楽しいです。勝ち試合のリプレイは気持ちいいし、負け試合のリプレイは改良方法を考えるのに役立ちます。

レーティング制度のおかげで同レベルのAIが対戦相手になるので、サンプルに毛が生えた程度のAIでも「なんとなくいい試合になる」のも良いですね。また、そこから徐々にAIを強化していくと対戦相手も強くなり、互いにうろうろしてるだけだったのが動きに「意思」を感じるようになったのも面白かったです。


  1. git clone https://github.com/jenheilemann/Halite-III して、starter_kits/Ruby/以下を使えばOKです。haliteコマンドだけ、downloadの「Only Game Engine」から持ってくる必要があります。 

More posts

Posts

(more...)

Articles

(more...)

Category

Ads

About

About the author