読者です 読者をやめる 読者になる 読者になる

【CODE VS 4.0】年齢・国籍・学歴不問のプログラマ日本一決定戦がニコファーレで開催!vol.1

CODEVS

2月7日、六本木・ニコファーレで「CODE VS 4.0」決勝戦が開催された――ゲームの先の先を読む戦略眼と、それをAIという形にまとめ上げるアルゴリズムの構築力、そしてそれを形にするコーディングの技術を競い合う、プログラマ日本一決定戦である。
今回からは年齢・国籍・学歴不問となり、より広く、プログラミングの猛者が競い合った。

f:id:carraria:20160317165038j:plain

 「CODE VS 4.0」ルール解説

「CODE VS」の基本ルールは課題としてあるゲームが提示され、それをよりよくクリアするためのプログラム(AI)を組んで戦わせるというもの。2014年12月22日から2015年1月31日まで行われた予選は、コンピュータ相手のスコア勝負。これはサーバ上からゲームのクライアントソフトをダウンロード。自分の組んだプログラムの計算した出力をサーバに提出すると、スコアとランキングが表示される仕組みで、これは納得がいくまで何度も挑戦が可能だ。まず最初に「CODE VS」のゲーム制作を担当しているチームラボ田村さんから、今回のゲーム内容とルールが説明された。

f:id:carraria:20160317165039j:plain

ゲームのキャラクタは資源の採掘や建造物を作る「ワーカー」と「ナイト」「アサシン」「ファイター」3種類の攻撃系が存在し、それぞれが三すくみの強弱関係だ。

f:id:carraria:20160317165040j:plain

ゲームのステップ1は資源採掘。まずは、資源を採掘できる場所を探す。

f:id:carraria:20160317165042j:plain

ステップ2は、採掘した資源で建造物やキャラクタを作る。建造物は各プレイヤーが一個ずつ持て、ワーカーの生産可能な「城」、同じくワーカーを生産できる「村」、攻撃系キャラクタを生産可能な「拠点」がある。

f:id:carraria:20160317165043j:plain

ステップ3は相手への攻撃だ。城・キャラクタ・建造物にはHPがあり、キャラクタ・建造物は攻撃することができる。相手の「城」を破壊し、HPを0にしたほうが勝利となる。

f:id:carraria:20160317165044j:plain

その予選をハイスコアで勝ち上がってきた8名が、決勝戦進出の切符を手にする。決勝戦は予選と違い、参加者のAI同士の対戦となる。その場でAIを書くわけではなく、参加者は、予選を戦わせた自分のAIに、若干の対人用カスタマイズを施して提出。当日は、決勝参加者含め、人間は全員、あらかじめ組んであるプログラム同士が戦うのを見守ることになる。

ゲームの「面」がその都度ある程度ランダムに生成されることもあり、各AIの動きはその時ごとに異なってくる。対戦相手のAIとの戦略上の「相性」もあるが、ある程度、運にも左右される。というわけで、「あらかじめ組んだプログラム」でも、勝負の帰趨はフタを開けてみるまでわからない。まるで、手塩にかけたものを闘技場に送り出す剣闘士のようだ。

ちなみに課題のゲームは、戦力や拠点を(資源を頼りに)生産しつつ、相手の城を攻め落とす戦略ゲーム。今回は決勝用に3Dで美麗なグラフィックが用意された。

いよいよ「CODE VS 4.0」決勝戦開幕!

この日、決勝戦に登場したのは、下記の8名(すべてハンドルネーム、敬称略)だ。

予選1位 nosnosnos
予選2位 thunder
予選3位 kwrig
予選4位 takapt
予選5位 mecha_g3
予選6位 iwashi31
予選7位 maroon_rk
予選8位 siman

前述のように年齢制限がなくなり、これまでの「CODE VS」OBが社会人となって戻ってきたり、15歳の中学生が決勝入りを果たしていた。

司会・実況は前回に引き続き、高橋大輔さんと、“きゃんち”こと喜屋武ちあきさん。

f:id:carraria:20160317165045j:plain

解説は世界トップクラスの競技プログラマであるAtCoderの高橋直大さん(下写真・中央)、課題ゲームを制作したチームラボの田村哲也さん(下写真・左)、さらにゲストとして、Rubyが得意なGEEKアイドル、池澤あやかさん(下写真・右)を迎え、決勝戦は開始された。

f:id:carraria:20160317165047j:plain

決勝は予選1・4・5・8位をAリーグ、2・3・6・7位をBリーグとして、それぞれ総当りのリーグ戦(3戦先取)を実施。その勝率上位2名ずつでトーナメント(6戦先取)を行い、優勝者を決定するという形式で行われた。

f:id:carraria:20160317165048j:plain

Aリーグ第一試合:nosnosnosさん VS takaptさん

Aリーグは予選1位のnosnosnosさん、4位のtakaptさん、5位のmecha_g3さん、8位のsimanさんという顔ぶれ。

f:id:carraria:20160317165049j:plain

最初の試合は、予選1位のnosnosnosさんと4位のtakaptさんとの対戦。過去数度決勝戦に登場、5位→3位→2位とそのたびに順位を上げ、当然今回は「狙うのは優勝です」と言い切るnosnosnosさん。今回は相手の出方に合わせ、戦い方を変えるAIで参戦という。しかし実際には、「イケメン風になっちゃって!いったい何があったんですか!?」ときゃんちが驚くほど、身だしなみの洗練ぶりに話題が集中。ちなみに、「何があったか」に関しては、「もし優勝したら、言います」という言質が。

f:id:carraria:20160317165050j:plain

一方、「試しに予選参加してみたことはあるものの、“本気で”参加したのは今回が初めて」というtakaptさん。基本は速攻、しかしやはりif文で戦略を選択して行く組み立てだという。ただし、予選用プログラムを決勝戦用に手直しする時間がほとんど取れず、「ほとんど予選用のまま提出してしまったので、ちょっと残念な結果になるかも……」といささか弱気な発言も。

f:id:carraria:20160317165052j:plain

そして対戦――。

なんとここで、takaptさんが、決勝常連・予選1位のnosnosnosさんをストレートで降すという波乱の幕開け。資源を効率よく探しつつ、戦力をある程度まとまった部隊単位で敵陣に侵攻させる戦略が、nosnosnosさんの城に刺さる!

f:id:carraria:20160317165054j:plain

解説の直大さん曰く、「AI同士の相性という要素も大きいと思います」とのこと。つまり、takaptさんのAIが、うまくnosnosnosさんの弱点を衝いたという形だ。

f:id:carraria:20160317165055j:plain

「nosnosnosさんにはたぶん負けちゃうだろうと思っていたので……。(この勝利で)もしかしたら行けるんじゃないか、Aリーグで勝ち残れるんじゃないかと思い始めました」と、takaptさんもちょっと欲が出てきた感じ。

f:id:carraria:20160317165053j:plain

Aリーグ第二試合:mecha_g3さん VS simanさん

第二試合に登場するmecha_g3さんは、速攻型の多い決勝戦では珍しい、やや防御重視型。事前の紹介では「ディフェンス力No.1」の評価も。「けれど、速攻対策が万全とは言えない状態で……さっき、他の出場者5人に尋ねたら、みんな速攻型なので『終わったな』と思いました」と弱気発言も出た。

f:id:carraria:20160317165056j:plain

対するsimanさんは、はるばる沖縄から参戦。そのAIは、本来は資源回収・生産が主任務のワーカーまでも、時に戦闘に投入する斬新な戦略が特徴で、「全部突っ込ませるノーガード戦法です」と言い切る。

f:id:carraria:20160317165057j:plain

「実はAIを組むに当たっては、速攻型のほうがやりやすいというのも、参加者に速攻型が多い要因ではないかと思います。速攻型は、自分のリードで戦いのシナリオを構築できるんですが、防御型は、相手がどう出るかを読んで対処しなければならないので、その分難しいのではと思います」と、解説の直大さん。

f:id:carraria:20160317165059j:plain

さて、ディフェンス力が勝つか、すべてが攻めに回るノーガード速攻が勝つかの勝負の行方は……。ディフェンスNo.1、mecha_g3さんの3連勝!

f:id:carraria:20160317165102j:plain

確かにsimanさんの兵力はmecha_g3さんの城近くまで攻め込み、城のすぐ近くに攻略拠点も構築するのだが、なぜかかなりの大兵力が集結しているにも関わらず、そこで城とにらみ合ったまま動かない。この謎の行動には、解説陣や観戦者から「えっ? なんで?」「バグ?」の声も。

f:id:carraria:20160317165101j:plain

「たぶん、攻めに行っているんですけれど、相手の守りが堅すぎて攻める前に降伏状態になってしまっているんだと思います」と語るsimanさん。ゲーム内の戦力といえど、無駄死にはさせない基本姿勢。「ウチナーンチュは優しいんですよ!」ときゃんちのフォローが入る。しかしそうこうしている間に、態勢を整えたmecha_g3さん側が大軍を進軍させてsimanさんの城を攻め落とすという筋書きとなった。

f:id:carraria:20160317165100j:plain

Aリーグ第三試合:nosnosnosさん VS mecha_g3さん

決勝戦の常連、予選1位通過で優勝候補筆頭の声も高いnosnosnosさん。初戦は落としたが、挽回を期して、次の相手はmecha_g3さん。しかしここでも、mecha_g3さんの高い防御力が光った。

f:id:carraria:20160317165104j:plain

「nosnosnosさんの攻撃が、敵の城に刺さるかどうかが勝敗の分かれ目ですね」という直大さんの解説。しかし、「守る時には、相手攻撃側に対する弱点ユニットを重点的に作り出すようにしています」というmecha_g3さんの戦略が上手く当った形で、ストレートの3連勝。nosnosnosさんには痛い2敗目となった。

f:id:carraria:20160317165105j:plain

nosnosnosさん側は、4体のワーカーがまず敵陣に進み、偵察しつつ拠点を構築する役割のようだが、「これが死んでしまうと、なす術がなくなって負けてしまうんです」とのこと。「ちゃんと防御ができてよかったです。こんなに勝てるとはビックリです」と、mecha_g3さんは勝利の感想を述べた。

Aリーグ第四試合:takaptさん VS simanさん

ここまでストレートで勝負が付いていたAリーグだが、ここでフルセットにもつれ込む乱戦に。1戦目はtakaptさんの攻めに、simanさんの城が意外な堅さを発揮して逆転勝利。2戦目は逆に、simanさんの攻めをtakaptさんが耐え切って、後攻めでsimanさんの城を落とすという、実際の攻防も一進一退。

f:id:carraria:20160317165107j:plain

「やはり、バラバラと攻めて行くよりも、なるべく集団で、固まって攻めて行ったほうが効果が大きいんです。しかしこうして見ていると、皆さん、かなり個性的に『やりたいことをやっているなあ』という感じですね」と直大さん。

結局このシーソーゲームは、最終的にtakaptさんが粘り勝ってリーグ内2勝目を上げた。

「ありがとうございます。マップ生成の運も結構大きかったんじゃないかと思います」とtakaptさん。一方のsimanさんは「ワーカーが力尽きました……」とがっかり顔。

Aリーグ第五試合:nosnosnosさん VS simanさん

そして第五試合。「最後にワーカーの底力を見せて欲しい。沖縄に一勝を持って帰りたいです」というsimanさんに対し、「えーっと。それじゃあ、僕も埼玉に一勝を持って帰りたいです……」と語るnosnosnosさん。

f:id:carraria:20160317165108j:plain

最初にnosnosnosさんが一勝、次にsimanさんが一勝し、試合は五分五分でスタート。特に2戦目は、simanさんの目論見通り、ワーカー突入が上手くはまって勝利をもぎ取り、その「底力」を証明してみせた。しかしその後はnosnosnosさんが連勝、試合を制した。

「互いに攻め合いになって、同じペースで減り始めると、simanさんは不利ですね。ノーガード戦法のぶん、失った拠点を作り直せない。それだけに、あるポイントを過ぎると、急激に崩れてしまうんです」というのが、直大さんの分析。

f:id:carraria:20160317165109j:plain

Aリーグ第六試合:takaptさん VS mecha_g3さん

第六試合は、リーグ最強を決める全勝対決となった。「両方とも資源効率が高いんで、その取り合いになるんじゃないでしょうか」と解説陣。しかし、実際の戦いの見どころは、mecha_g3さんの「ディフェンス力No.1」の証明にあった。

f:id:carraria:20160317165110j:plain

takaptさんの果敢な攻めに、「これは危ないか?」と思われたのも最初のうちだけ。よく見ると、mecha_g3さん側の城のHPバーにほとんど動きがない。着実に守りを固め、攻めを余裕で受け止めているのだ。そうしているうちに戦力を蓄え、一気に攻勢に。攻め始めると早く、またたくまにtakaptさんの城を落とすという経過が繰り返され、mecha_g3さんがストレートの3連勝。

f:id:carraria:20160317165113j:plain

こうして、Aリーグはmecha_g3さんが3選全勝、takaptさんが2勝で勝ち抜ける結果となった。一方で、nosnosnosさんの「優勝したら言います」の「イケメンの理由」は、そのまま迷宮入りになってしまったのは残念だ。

f:id:carraria:20160317165111j:plain

ちなみに、この決勝イベントは「ATND」で告知・募集し、多数の来場者の方にお越しいただきました。ありがとうございます!


イベント開催支援ツール アテンド : ATND

さらに波乱のBリーグ予選と決勝の模様は、2月18日にレポート公開予定。お楽しみに!

自分に合う正社員の仕事を見つけたいならリクナビNEXT

f:id:carraria:20160317164750p:plain