TOPICS

TECH BLOG

【TECH BLOG #16】ゲーム運営におけるフルスタックエンジニア

#フルスタックエンジニア

こんにちは。
戦国アスカZEROエンジニアのTFです。

私はもともと戦国アスカZEROのサーバエンジニアを行なっていましたが、
アスカの運営を行なっていくうちにクライアントアプリ側の開発も行いたいと考えるようになり、
少しずつクライアント側も担当させていただくようになりました。

そこで今回はゲーム運営におけるフルスタックエンジニアと題し、
サーバ・クライアントそれぞれを担当したことでこれまでに感じたことを書かせていただきたいと思います。

開発環境の調整

当然ながらサーバ・クライアント開発で利用する開発環境は異なります。
戦国アスカZEROではサーバサイドにPHPを用いているのでサーバサイドの開発にはPhpStormを利用し、クライアントサイドの開発ではXcodeを利用しています。
これらはどちらもパワフルな開発環境であり、それぞれのエディタでなければ利用できない機能もたくさんあります。
しかし、どのエディタでも共通で存在する機能(または類似機能)のキーバインドが異なっていることが多く、使い勝手が変わってきます。
私は、エンジニアの開発効率はエディタに備わった機能をいかに効率的に利用できるかにかかってくると考えているので、はじめにこの使い勝手の違いを調整するためキーバインド変更を行いました。
また、私は個人ではVSCodeを利用することが多く、VSCodeのキーバインドに慣れているためPhpStorm、Xcodeで共通のキーバインドの機能であってもVSCodeライクになるようにしています。
以下キーバインドの一例になります。

内容 PhpStorm機能名 PhpStormデフォルト Xcode機能名 Xcodeデフォルト 変更後
単語選択 Add Selection for Next Occurrence Ctrl + g Select Word なし Cmd + d
定義元に移動 Declaration Cmd + b Jump to Definition Ctrl + Cmd + j F12
ファイル名を指定して開く Navigate File Shift + Cmd + o Open Quickly Shift + Cmd + o Cmd + p

これにより私自身はどのエディタを利用するときも同じような感覚で操作でき使い勝手がよくなりました。
しかしPhpStormユーザともXcodeユーザとも話が合わなくなります・・・

フルスタックエンジニアのメリット

次にフルスタックエンジニアのメリットについてですが、開発時とアサイン時の観点とであげたいと思います。
開発時の観点としては、API改修とアプリ改修が必要な機能開発での設計時間短縮です。
API改修とアプリ改修を別々のエンジニアが行う場合、「実装に必要なパラメータはなにか」「パラメータ名やJsonの構造はどうするか」など設計に関するやりとりを行う必要が出てきます。
また、APIにパラメータを追加する場合、関連する既存処理を確認してからでないと適切なJson構造を決定できないこともあります。
この場合サーバ・クライアントエンジニアどちらか(もしくは両方)が既存処理を確認し、片方のエンジニアが待ってからでないと実装に移れないという時間的なロスも発生する可能性があります。
しかしこれらを一人のエンジニアが行えばサーバ・クライアントの処理を並行して確認できるため、設計段階でのやりとりが省略でき設計時間の短縮に繋がります。

アサイン時の観点は、チーム内でのタスクアサインが柔軟に行えタスク設定の幅が広がることです。
戦国アスカZEROではスクラム開発の形式を取っているのですが、期間内に設定予定のサーバタスクとクライアントタスクの量に片寄りが生まれることがあります。

このような場合エンジニアに合わせてタスクを減らすなどの調整を行うのが基本になると思います。
しかし、フルスタックエンジニアが存在するチーム構成では、サーバタスクが多いときはサーバエンジニアとして、クライアントタスクが多いときはクライアントエンジニアとしてタスクアサインを行うことができます。

これにより多少の片寄りであればタスクを変更することなく予定を組むことができるため、設定できるタスクの幅が広がります。

まとめ

今回、サーバ・クライアントの開発を行う上で私が感じた「開発環境の調整」と「メリット」について書かせていただきました。
個人的な意見である部分も多く、フルスタックエンジニアには他にも様々な観点があると思います。
私自身まだまだサーバ寄りなエンジニアであり、これからさらにクライアントサイドを知ることでできるようになることやチームへの影響も変わってくると思います。
また、サーバ・クライアントそれぞれの視点で開発を行えることが個人の成長にも繋がると思いますので、これからもフルスタックエンジニアとして開発していきます。

ファンプレックス株式会社

グリー株式会社の100%子会社で、ゲーム運営事業を行う。
公式サイト: https://funplex.co.jp/
公式Facebook:https://www.facebook.com/funplexInc

[本件に関するお問い合わせ先]
ファンプレックス株式会社 広報担当
東京都港区六本木6-10-1 六本木ヒルズ森タワー
E-mail: info.funplex@funplex.co.jp