🎮

バンダイナムコスタジオのGoサーバーサイドインターンに参加しました

2023/09/03に公開


2023年8月22日、バンダイナムコスタジオのGoサーバーサイドのインターンに参加しました。

参加したきっかけ

Goに非常に興味関心が高く、一日しっかりと学習してみたかったからです!
(もちろん、他でもなくバンダイナムコスタジオのインターンを選んだのはゲーム会社というものに興味があったからです。)

業務ではずっとRubyを使っていましたので、動的型付言語の柔軟性の高さやメタプログラミングのパワーなども認知していましたが、私はかつて42Tokyoという養成機関でずっとCやC++などの静的型付言語を書いていて、規模が大きなプログラムになればなるほど、型があるありがたみを感じるようになっていました。
動的型付言語の場合は、実行するまでどんなものが変数に入るかどうかは変数名や文脈から推測しないといけません。
やはり「読む」作業が多いエンジニアの業務において、値に型の情報があって、実行しなくてもなんとなく役割が想像できたり、かつエディタの補完やコードジャンプをフルに使える静的型付は業務がやりやすいんだろうな、という風に思います。

参加者のレベル

私を含めて6名の学生が参加していました。
私は自己紹介の際、好きなゲームについてお話しましたが、ハッカソンが趣味、競技プログラミングが趣味、などみなさん技術的なお話をされていました笑
高専の方や大学生など、バックグラウンドは様々だったかと思います。
みなさんいずれも何かしらの分野でツヨツヨな感じでした。

ただ、Go自体は経験が少なく、初めて触るという方もいらっしゃいました。
私もその一人で、Tour of Goをなぞった程度で、自主制作物はありませんでした。
このインターンを機に、Goについて学びを深める心持ちでインターンに挑みました。

取り組んだ課題と進め方


ミスタードリラーというアクションゲームのバックエンドAPIの提供をGoで行いました。
ゲーム自体はAPIがなくても動くのですが、ランキング機能などがそのままでは動かないため、
スコアの登録APIを作成したり、ユーザーごとにアチーブメントをMySQLに保存できるようにしたりなどのバックエンドを作成しました。

講義で手とり足取り教えてくれる研修というわけではなく、資料に簡単なヒントを与えられ、仕様書、swaggerAPIを元に各々のペースで実装し、適宜社員の方に質問するというスタイルで学習しました。
(個人的にはこの学習スタイルが一番好きです!)
ヒントとなる実装があちこちにあるので、それらを真似しながら実装を進めていきました。

社員の方との懇親会

私は以下のような質問をしました。

Q. ゲーム会社とウェブ会社のバックエンドで何か扱う技術に違いはあるか?
A. 特に違いはないが、ウェブ系ではDBに対してReadの件数が多いが、ゲームの場合はWriteが多い。
また、トラフィックの量もウェブ系よりも多い。
クライアントサイドのエンジニアはC++が実質的な必須要件だが、バックエンドのエンジニアには入社時点でできていないといけない技術は特にない。(サーバーサイド開発一般の経験が求められる)

Q. ゲーム会社であるバンダイナムコスタジオに勤めることによる何か特有の役得はある?
A. 有名なクリエイターと友達になれたり、まだ世に出ていないゲームをプレイできたりする。
会社の古い資料も読めるのが面白い。etc...

他にも、チートの対策に関するお話や、あの有名ゲームはどういう技術で動いている?
など、様々な技術的な質問をされる方がいらっしゃいました。
いずれの社員の方々も、技術に関する理解が非常に深く、スラスラとお答えされていて、非常に優秀なエンジニアの方々が多いなと思いました。
やっぱりゲーム開発は多様な要件が求められるし、有名なものは多くのトラフィックも捌かないといけないから、そりゃ優秀じゃないと務まらないですよね...

まとめ

1dayでしたが非常によくできた研修で、初学者でも無理なく自分のペースで開発ができました!
社員の方とも会話ができ、バンダイナムコスタジオという会社に対する解像度も高くなりました。

Discussion