Applibot_Engineerのブログ

ブログの説明を入力します。


テーマ:
こんにちは。弊社エンジニアの細野です。

サイバーエージェントグループの連結子会社からなるゲーム事業(SGE)での社員総会の企画の一環として、
今年4月に、子会社対抗の「ゲームAI対決企画」を開催しました。

今回の記事では、その様子をお伝えしたいと思います。

経緯

今回のSGE総会では、「各子会社のCTOをよく知ってもらう」というゴールがあったため、
ゲームを作っている会社らしく、プログラミングを活用したゲームAI対決を行いました。
当日は、実況を入れながら対決コンテンツを映像化することで、
プログラミング未経験の方を含めた、会場全員で応援しながら楽しめるコンテンツとなりました。

ルール紹介

ゲームは、3人で戦う「コイン集めゲーム」を下記のルールで行いました。

・ フィールドに落ちているコインを集め、制限時間内により多く集めることができたAIが勝利します。
・ 相手のAIを近距離攻撃することができます。攻撃を受けたAIは所持コインの一部をフィールドに落とします。
・ 攻撃は当たり具合によって威力が違い、威力が高いほど落とすコインの枚数が変わります。
・ 一定以上の威力で攻撃がヒットした場合、攻撃を受けた相手は一定時間行動できなくなります。

AIの行動としては、渡されたゲームの情報をもとに、
「向きの変化量と、攻撃を行うかどうか」を用意したAPIを通じてやりとりします。

※向きは左右に12度ずつ変更することができます。
※移動は、攻撃を行っていない間、敵の行動タイミングも含めた毎ターン、向いている方向に移動します。

ゲームは600ターン行われ、600ターンの経過後に最もコインを多く集めたチームの勝利とします。

AI開発

SGEに所属する子会社9社に参加してもらい、
各CTOより任命されたエンジニアが一週間を使い、業務の傍らAIを作成してもらいました。
開発には管轄で主に使われているC++,C#,Java,PHP,Javascriptの5言語に対応した対戦システムと、
jsonで書き出した対戦結果をUnityで3Dのキャラクター同士の対決の形で再生する再生システムを配布しました。

決勝

本番は、各社CTOが侠客に扮し、内部抗争を起こすOPから始まり、
AI対決で次期管轄CTOを決するというストーリーが作られました。

AI対決では、まず予選映像として、事前に、勝率に有意な差が出るような回数を試行し、
勝率が最も高かった子会社が勝ち上がった試合の中からピックアップし、
実況付きの映像を作成し、流しました。
プロデューサーSさんによる実況は、本当にその場で行われているかのような臨場感があり、
各社CTOのプライベートの紹介や、ゲーム展開の巧みな表現には笑いが起こりました。

決勝戦は、実況もその場で行いました。



準優勝になったアプリボットチームは社内の精鋭を揃え、社内予選を開き、
その中で圧倒的な差で優勝したクライアントサイドのエンジニアIさんのAIで参戦。
敵との向きまで含めた位置関係を計算し、
積極的にスタン状態にすることを狙っていく超攻撃型AIでした。

一方、優勝したのは、グリフォンチーム。開発を担当したのはなんとの1年目のエンジニアでした。
ゲームルールと、AIによる検証から、キャラクターの動きが大回りになることを導き、
たどり着くのが困難で死角となる正方形マップの端をうまく使った回避型AIで、見事優勝しました。

9社の中ではこの2つのAIが突出して強く、決勝戦のAI同士の勝率は僅差でした。
いいね!した人  |  リブログ(0)

テーマ:
皆さま、こんにちは。

記念すべき、
第一弾エントリーは、
「データの可視化とコスト管理」についてです。

弊社では、AWSを利用しており、
運用をしていく上での「データの可視化とコスト管理」
についてスライドにまとめましたので、ご覧いただけたらと思います。

 
【概要】
・AWSを運用していく中で、ついつい忘れしまいコストがかさんでいってしまう部分
・リソース管理をする為には、普段の状態を可視化できるように。
 CloudWatchの問題点と、代替としてGraphite + Grafanaの紹介


スライドの補足として、
・発表当時、Trusted Advisorはアカウントでビジネスサポート以上に入っていないと見れませんでしたが、2014/08/04より、無料サポートでも閲覧可能となりました。
※こちらのスライドは、「Applibot presents SmartphoneGame on AWS !!」セミナーにて使用したものです。
・スライド内の石の画像は、Graphiteを指しています。

AWSは従量課金制ですので、使用した分の費用が毎時間加算されます。

そのため、

・「ねんのために…」、「これ触ってたのは誰だっけ?」という状態で起動したままのサーバー
・とりあえず大きめのインスタンスタイプでサービスインしたが、実際はリソースをかなり持て余している。

という話は、実は運用していく中で「あるある」的な話だと思います。

費用が高いと思ったときは上記の見直しを行うと、意外と費用が削れることもあります。

また、リソースが見やすい状態を作っておくことで、
今のサービスでボトルネックになっていそうな箇所や持て余してしまっている部分の把握はもちろんのこと、障害時の原因究明にも大きく役立ちます。

今回は、
現時点の環境見直しと、
普段からリソースを監視しておくことでコスト=お金・手間を減らそうというお話でした。

最後までおつきあいいただきましてありがとうございました。

いいね!した人  |  リブログ(0)

テーマ:
皆さま、こんにちは。

本日より、
アプリボットのエンジニアBLOGを開設いたしました。
(※不定期更新となります。)

本ブログでは、
弊社エンジニア組織についてや職場の雰囲気、また開発についてなど、
テーマをある程度絞って情報を発信していきます。


具体的には、下記テーマを中心に紹介していきます。

・設計・開発
・技術検証・レポート
・職場・組織
・運用


皆さま、よろしくお願いいたします。
いいね!した人  |  リブログ(0)