ゲーム開発をしたいエンジニアはクライアント志望がとにかく多い。
新卒入社したエンジニアの95%以上はクライアント志望な感覚がある。
実際、現場におけるサーバーエンジニアは派手さが全く無く、超地味で、エンジニア以外からは何やっている人なの?的な存在になりがち。 (オンラインゲームだとキャラクター座標をサーバーで処理したりする場合もあるが)
キャラクターを動かすような仕事はないし、ゲームUIを実装する仕事もない。
大きなチームにいると、デザイナーさんと会話することすらなかったりする。
だがあえて言いたいのは、サーバーエンジニア面白いよってこと。
サーバーエンジニアのお仕事
ゲーム開発のサーバーエンジニアのお仕事は、WEB開発やアプリ開発のサーバーエンジニアのお仕事とそこまで変わらない。
- クライアントからリクエストを受け、データベースとやり取りして、データを加工したり、保存したりして、結果をクライアントにレスポンスを返すAPIの開発。
- AWSやGCPなどでサーバー環境を構築したり、ゲームで利用するデータやアセットを配信するサーバーを整備したり。
- ゲームのお知らせやメンテナンスを操作したり、ユーザーさんのデータを参照したり、お問い合わせの対応のためのブラウザで稼働するツール(WEBサイト)も開発する。
利用する技術もごくごく一般的。 種類は多いかもしれない。
- インフラ
- サーバー開発
- フロントエンド開発
- JavaScript、TypeScript
- npmやyarnなどのパッケージ管理ツール
- React、Vue
- データベース
- MySQL、Aurora
- DynamoDB、Spanner
- キャッシュ
- Memcached、Redis
- データ分析
- BigQuery
- Fluentd
- その他
- UnityやUnrealEngineなどのアセット配信の知識
- 世の中のゲーム仕様
最近の自分の環境をもとに、ぱっと思いついたものだけを挙げた。 他にもサーバー監視だったり、CIだったり、構成管理ツールなんかの知識も必要だ。 もちろん全部の技術に精通するのは難しいし、ぼくも全ての知識はない。
WEB開発やアプリ開発の現場から離れて久しいので最近どうかはわからないが、真面目にやればtoC向けの開発でのサーバーエンジニアとしてかなり鍛えられる環境だと思う。
また、サーバーエンジニアつまらねぇって思ったら、(本末転倒なのだが)クライアントエンジニアに転向することもできる。
実際、ぼくはサーバーエンジニアを経験したあと、(人がいなくて仕方なく)3年間くらいはUnityエンジニアをやっていた。
クライアントエンジニアからサーバーエンジニアに転向することもできるが、あまり聞いたことはない。
で、結局なんでサーバーエンジニア面白いかっていうのが、語彙力なくて上手く表現できないんだけど、ゲームもエンジニアリングも好きなら、サーバーエンジニア面白いよってことは間違いない。 (結局)クライアントも面白いけどね。