CyberAgentのインターンに参加させていただきました

CyberAgentの1dayインターンに参加してきました!

こんにちは。 自分は修士1年なので、就活の夏です。インターンのことについて、まとめたいと思います。

今回お邪魔させていただいたのはCyberAgent 1day intern 「ゲームAI×プロコン インターン」です。8月22日の10時〜20時までありました。 ゲームAIってなんやねんって話ですが、いわゆる機械学習のAIではなく、CPUのような感じです。最近のCPUは本当に良くできています。自分はよく大乱闘スマッシュブラザーズをしますが、最大レベルのCPUはめちゃくちゃ強いです笑 どう動いているか考えてもさっぱりわからないですよね。ただ、相手の位置や自分の位置をもとに行動を決めている感じはあります。

今回のインターンでも開発したのは、環境に対して柔軟に動くAIの開発です。

あ、そもそもですが、今回のインターンはオンライン実施です。 一度もオフィスには訪れていません。

内容ですが、中身は公開NGということなので、大雑把にやったことをいいます。

一言で言うと、

Unity + C# + 競プロ

って感じです。

インターン当日より前の話

このインターン、1dayなんですが、インターンそのものは1dayだったんですが、インターン前から活動がありました。インターン前面談というものがありまして、手厚いです。おそらくですが、C#できる人とできない人、競プロができる人とできない人で、あきらかに進捗が違うことみが見えているため、に面談をして課題や足りないところを整理し、インターンに勉強してもらうのが目的です。かく言う私も、ある程度Unityさわれた方がいいと思い、こちらの記事をみながらブロック崩しを作成しました。UnityはGUIなのでぽちぽちクリックしていくんですが、Unityで出来ることとできないことが理解できて、かつできることはどこをクリックすればできるかがわかれば使えそうな雰囲気を感じました。要するに慣れと経験があれば、って感じです。余談ですが、普段Pythonを使っていると{}とか;とかCの基本的文法にあたるこれらの要素を使うことがないので、めちゃくちゃ文法エラー吐きました。

なにはともあれ、事前面談があり、それによりUnityの勉強を独学で事前に取り組んで本番に挑みました。

本番の環境はある有名なゲームのオマージュでもあるんですが、

迷路 + 障害物 + 爆弾

て感じです。

迷路の中にスタートとゴールがあって、ゴールにたどり着くゲームですが、壊せるブロックのようなものがあって、その場合は爆弾を設置します。ただ、爆弾は自分もダメージを受けてしまうので、爆弾を設置したら逃げるようにしないといけません。また、ステージにはエネミーが存在しており、エネミーも爆弾で倒すことができますが、エネミーは動くことがあります。最終的にはDFSな競プロ系の知識を使わないと進まなくなるかもしれません。この辺をUnityとC#を使って実装していく感じでした。

感想

事前面談からモチベーションをあげてもらって目標高くC#の勉強しました。

当日の課題はシンプルに「C#きちい…Pythonなら…」と100回くらい思いましたが、Pythonだと速度的にゲームが動くかわからないですからね笑

当時はコンペ形式で中の下くらいでした。まぁ致し方なし笑

でも途中でメンターの人と話せたり、終わった後の懇親会のLTやおしゃべりでも色々勉強になり収穫はありました!

確かに「ゲーム」と「競プロ」ってどちらも同じ感じで制約があって似ているなぁと

次は9月末にあるCAのデータ分析コンペでリベンジ!

Select Texture

Hide

You can use the showPicker property in _config.yml to hide this picker permanently.

You can use the texture property in _config.yml to apply a texture permanently.