こんにちは。
新人プログラマーの根布です。

今回は新人プログラマーに対して行われたコードレビュー会のことを書いてみたいと思います。

ゲームプログラマーは大別するとアプリケーションプログラマーとシステムプログラマーの2種類に分けられ、そのうちのシステムプログラマーというのはゲーム自体ではなく、ゲーム制作用のツールや、土台となるエンジン開発を行います。

僕はいまのプロジェクトでは敵担当で、つまりゲームに直接関わる部分を作っているのでアプリケーションプログラマーということになります。

アプリケーションプログラマーに一番求められているものは、実装のスピードだと個人的には思っています。しかし、実装が速いから良いかというと、必ずしもそうじゃありません。

ゲームは複数人で作るものです。プログラマーももちろん複数人います。もしかしたら担当が変わって、別の人が僕の仕事を引き継ぐことになるかもしれません。そんな時、自分で書いたコードの可読性が低く、他人が読んでも全然理解できず、そのために保守性が低くて、他の所でバグを生みだしやすい、といった物になっていると、いくら実装スピードが速くても良くないのです。

そういった部分に注目して行われたのが新人プログラマーコードレビュー会で、入社して5~6ヶ月の僕たちが実際に仕事で書いたコードを元に、ベテランの先輩たちからレビューをしていただくというものでした。

僕はかなりスピード重視だったので、上に書いたような保守性、可読性が低めだったこともあり、レビュー会では先輩から「お前の書いてるコードやばい」みたいなことを言われました。

ひとつのソースファイルがめちゃくちゃ長くなっていて可読性が非常に悪かったり(4万行とか)、同じクラスが別々のソースファイルに2つ存在していたり(2つもいらないじゃん!!)そういったことをレビュー会で指摘されました。

これを読んでいるプログラマーの方、特に敵とかプレイヤーとか作りたい! みたいなアプリケーションプログラマー希望の方はそう言われないようにですね、実装スピードだけでなく、保守性、可読性も高めておくようにしましょう! (実装スピードをないがしろにして保守性、可読性だけがめちゃ高いですっていうのも問題なので、バランスよくできるようにしましょう!)

僕はこのレビュー会を機に技術書をよく読むようになりました!冒頭の写真は僕が最近読んでる技術書です。特に「Effective C++」は、C++言語ってこういう使い方をすると便利だよ! とかC++こういう仕様になってんの、とか学べて面白いですよ。技術書で学んだことを実作業で活かすのはなかなか難しいかもしれませんが、知るだけでも面白いのでお勧めです。