アプリボットに入って〜新卒二年目のサーバーサイドエンジニア〜
初めまして、サーバーサイドエンジニアの田中です
社会人になりそろそろ1年、アプリボットに配属されて10ヶ月が経とうとしています。
現在は弊社からリリースされているゲームのサーバーサイドエンジニアとして日々頑張っています。
今回は、入社してアプリボットに配属されてからの10ヶ月間を振り返ります。
入社前
そもそも僕は理工学部物理学科という情報系とは全く関係のない場所で学生生活をしていました。
内定者バイト等もしていなかったので実務経験もありませんでした。
大学では宇宙関連の研究をしていて、そこで研究のためにC言語とPythonを使っていて、
あとは少しPHPを使ったことがある程度でした。
研究室が自前のサーバーを使っていたため、AWSやGCPを触る機会もほとんどありませんでした。
そんな状態で入社したので最初は不安でいっぱいでした
全体研修(4月〜)
メディア、広告、ゲームと自分の志望する分野以外の説明はこのタイミングでしか
なかったからいい経験になりました!
研修中にゲーム部門各社のエンジニアの方と話す機会があり、
アプリボットを見つけました。
サイバーエージェントグループのゲーム会社の中でアプリボットを選んだ最大の理由は、
「エンジニアもゲームの仕様に関われる」という話を懇親会の時に聞けたからです。
配属(6月末〜)
入社して初めにやったことは,Javaに慣れることでした。アプリボットではゲームのサーバーサイドはJavaで開発をしています(新規タイトル向けにはKotlinでの基盤を作り始めています)。僕は今までJavaを書いた経験が無く,先輩方のコードを読んだり直接教わったりしながら少しずつ理解を深めていきました。
初めてJavaを触った時はC言語ではないプリミティブ型とオブジェクト型の差やEclipseの
扱いなど、基本的なことから確認していきました。
今までC言語やPythonなどの言語を主に扱っていたので新鮮な体験が多かったです!
最初は新しいミッションを追加する、といったような簡単な改修などから始まり、実務をこなしていくうちにどんどんモチベーションが高まっていきました。
Javaと過ごしたアツい夏(7月中盤〜)
少しずつJavaやSpringへの理解を深めていた頃,新規でリリースする機能の一つを任せてもらえることになりました。
この機能はゲーム内通貨に影響を与える重要な機能であると同時に、
実行回数などが間違ってデータベースに記録されてしまうと
大きな損害やユーザーへの補填対応が必要になるものでした。
キャッシュとデータベース内のデータ不整合が起きないように(起きるとゲーム内通貨が無限に増える)
先輩から以前実装した際にどういった部分でエラーがあったかなどを聞いて
実装にあたりました。
これがリリースされたのは開発からすこし時間がたったあとでしたが、
無事ノーバグでリリースでき、大きな自信につながりました!
改修,改修,改修…(9月末〜)
配属から3ヶ月ほどたってからいくつかの機能に跨る中規模改修を担当しました。
この改修は、各イベント毎に管理していたユーザーが読んだノベルの情報を
一箇所で管理できるようにするものでした(プロジェクト的に改修したかったが、
しなくても大きな問題のない過去の負債になっていた)。
個々で形の違ったテーブルを一つに統合
しかし、これが思いの外難しく
ノベルの既読をトリガーにして進むはずのイベントが進行しなくなったり、
バグが多発したりで
デバッグの工数もかさんでしまうためお蔵入りに・・・。
仕事の難しさを再確認しました。
(悔しくてなんとかできないか時々コードいじって自分でテストしている)
仕様づくりから始める大規模開発(11月〜現在)
今は大規模開発のサーバー側の中心として
DB設計からがっつりと関わっています!
新しいゲームのインゲームを1つ作るような規模の開発のため、
DBの設計で先輩のサーバーサイドエンジニアの方からOKをもらうのに1週間かかり、
API設計もネイティブエンジニアの方とのすり合わせを含めてさらに1週間と、実装以外の部分でも今までの開発との違いを感じることができました。
また、完成した仕様書を渡されその通りに作った初めての開発とは違い、
今回の開発は仕様書作りの段階から大きく関わることが出来ました!
同期のプランナーが今回の開発のメインプランナーとして仕様を作っている時に、
スキルや敵の行動の設定の仕方、現在のゲームの世界観を壊さずに
新しく、かつ今より面白いゲームを作るにはどこを工夫したらいいかなどを話しているのを聞いて、今までよりも開発チーム全体を意識して開発に望むことができました。
サイバーエージェントグループのゲーム会社の中でアプリボットを選んだ最大の理由は、
「エンジニアもゲームの仕様に関われる」という部分だったので、
その目的が早くも実現できてとても充実した日々を送っています。
完成された仕様書の素晴らしさと、企画段階から関われる大変さと面白さの
両方を実感している今日この頃です。
ディレクターやプランナーと話しながら企画が形になる面白さや、サーバーサイドエンジニアとして開発に携わる面白さを日々感じています。
今では笑い話ですが、サーバー側の開発終了予定4営業日前に
考慮されていなかったAPIが発見されたのは良い思い出です。無事に直ってよかった。
まとめ
ゲーム開発の面白さ、難しさ、奥深さがやっと感じ取れてきました!
自分でもよくゲームをやる人間として、どんなゲームがやりたいかを同期と話したり
どんなゲームなら今までの世界観の上で無理なく進み、
なおかつ楽しく遊べるかを考えるのは楽しい反面、
学生生活やこれまでの生活とは違う考えをしなくてはならない部分もあります。
年が明けても開発は続き、リリースはもう少し先です。
社会人2年目になりましたが、この開発で得た経験を元に
誰もが楽しめるゲームを作っていきたいと思います!
開発が無事に終わることを祈りながら頑張っていきます!
これから入社する後輩たちへ
僕は大学では物理の研究をしていて、プログラミングは研究のために使っていた程度でした。
新しく入ってくる人たちの中に自分の実力に不安がある人もいると思います。
実は面白い経歴を持っている人がたくさんいて、周りの人に気後れしてしまっている人は是非一度アプリボットに遊びに来てください。
この記事へのコメントはありません。