転職をして学んだこと、戸惑ったこと
1.初めに
今回記述しようと思った内容は表題の通り転職をした際に学んだこと、戸惑ったことになります。
ここでいう内容は転職活動という意味ではなく、ゲームプログラマーからWebエンジニアになった際の仕事内容の変化という意味なので悪しからず。。。
2.ゲームプログラマーとWebエンジニアの違い
実際に転職をする前は結局プログラマーだし、大きく作業変わらないでしょと楽観的に考えていましたがそんなことはありませんでした。
そもそもジャンルが違うので、当たり前といえば当たり前なのですが。
ということで今回はここに焦点を当ててお話しさせていただきます。
3.作業内容
ではどういう形で違うのか、ざっくりと。
社会人歴2年にも満たないので的外れなことがあっても許してください。。。
プランナーの方が作成した仕様書に基づいてコーディング
面白くない場合は仕様変更する場合も
描画とかサウンド関連も必要に応じて
・Webエンジニア
実装する内容の設計書作成→実装→単体テスト
本当にざっくりとしか書けていないけれど、自分が体験したものだとこんな感じ。
Web開発の方がお堅い印象(現行のプロジェクトだけかもしれないけれど。
ゲーム開発ではテストというものは無く、動作確認と完成後のデバッグぐらいだったのでWeb開発に移行した時ここまで厳密にテストしてレビューして、ってやるのかと驚きました。
今考えるとバグ無くすためには当たり前だよね、とは思うんですがw
じゃあ何でゲーム開発でそんな厳密なチェックがないのか、というのは憶測だけど仕様の変更が多いのとテストケースが膨大になってしまうからではないでしょうか。実際ゲーム開発ってかなりの期間かかりますからね
だからそこに工数を割くよりは完成させてデバッグ期間でどうにかしようぜ、ってことだと思います。あとテストってつまらないしね(暴論
4.設計書
ゲーム開発だと仕様書も自分で作成しませんでした。
プランナーからいただいた指示に則って実装を進めて、リードエンジニアに確認してもらうみたいな工程だったので本当にかっちりしていなかったんですよね。
単一では複雑なものにならないからでしょうか。
それに対しWeb開発はフローチャート書いて、内部レビューして確認してもらったら外部レビューして、と厳重にやっています。
ここまでやるのは上司曰く実装に移る前に仕様をしっかりと理解するため、とのことです。
何のどこにアクセスして何が必要だから何を返すといった様々な要因が絡み合うので理解をしていないと実装できませんからね。
5.テスト
作業内容で触れた内容にはなるのですが、もう少しだけ詳しく。
ゲーム開発では所謂正道一ケースしか検証していなかったです。動作が正常に動くことを確認し、問題がなければレビュー・実装で最終的にはα版、β版でデバッグを行う。
バグレポートが来た時には修正対応を行う、といった流れ。
デバッグの幅は広く特定の条件の時に何か起きないかみたいなことまで細かく見るみたいです。おもむろにボタン連打してみたりマップを何度もいったり来たりしてみるなど。
考えるだけで頭が痛くなりますね。。。
Web開発では実装者の方が仕様をよく理解しているということで、実装者が基本テストを行います。
単一のもの複数組み合わせのものを洗い出し、テストケース作成後レビュー依頼、試験実施といった流れ。
もちろん膨大な物になり得るのでUnitテストというコードで試験を実施します。
……今自分はUnitテストではなく、一つ一つ確認していますけどね。
そのためテストコードは書いたことありませんので、ここに関してはいずれ学ぶその時に取っておきます。
6. まとめ
なんかゲーム開発はゆるいみたいな書き方になってしまったけれど、そういう訳ではなく良いところもあると思います。
言うなれば自由。面白いゲームを作りたいっていうのは開発者全員思っていることだしね。
だからこそかっちりとしたWeb開発に移行して本当に驚きが多い。
視野が狭かったのを実感しました、ということで今回はここまで。
上手く纏まらなかったけどまあ。。。
また、次回お会いしましょう。
最後まで読んでいただきありがとうございました!