2017年2月28日、東京・目黒にてドリコム主催のエンジニア向け勉強会「Drecom Tech Espresso」が開催された。
ドリコムはゲーム事業をコアビジネスの1つとしており、『ダービースタリオン マスターズ』『フルボッコヒーローズX』はじめ人気IPタイトルなどの開発に携わってきた。その一方で、広告・メディア分野においても様々な新規事業を立ち上げており、「with entertainment」というキーワードの下に、「人々の期待を超える」もの作りを続けている注目の企業だ。
勉強会第1弾となる今回は、「100万ダウンロード突破! ダビマス開発の裏側大公開!」というテーマで、同社のエンジニア(サーバサイド、クライアントサイド)がゲーム開発における様々な取り組みを紹介した。
■2ヶ月間、単独で挑んだα版開発でもスケジュール遅延なし
最初に登壇したのは、『ダービースタリオン マスターズ』でサーバサイドの開発を担当した神谷健氏。金融系企業にてシステム開発を経験した後、「Rubyを書きたい」という一念で2013年にドリコムへ入社したという。
ドリコムでは、開発作業を「プロト」「αフェーズ」「βフェーズ」「リリース」の4つに区切っている。各フェーズで承認を得て、開発を進めていくというオーソドックスなやり方だ。同社では、「プロト」を「技術と面白さ、それぞれの基本的な課題をクリアする」フェーズとして定義している。
2015年10月、神谷氏は「プロト」の段階でプロジェクトに参加した。「プロト」ではサーバサイドの成果物はまだないが、スクラムマスターの役割を担うため、早い段階での参加となったそうだ。
2016年1月に「αフェーズ」に突入した。このフェーズでは「ゲームサイクルが一通り遊べるようになり、面白さを確認できる」ことが求められる。開発は、神谷氏が「αからが勝負」と言うように、本格的にコーディングが始まる。
しかし、予定されたα開発期間は約2ヶ月で、サーバサイドのロジック実装は実質的には神谷氏1人という状況だった。これはリソース不足というわけではなく、神谷氏自身の判断によるものだという。実際、スケジュール通りにαフェーズを通過し、同年11月1日に無事にリリースを迎えることができた。
■寂しさを感じるほどのスムーズな開発
神谷氏は、「ベロシティ(作業の進捗速度)が高いまま走り続けることができた」と、開発プロジェクトを振り返る。では、なぜ、ここまでスピーディに開発を行うことができたのだろうか。
ベロシティを高く維持するための工夫として、神谷氏は「クライアントエンジニアとの共通言語を作る」ことを挙げた。例えば、APIの仕様を共有する際はJSON Schemaの記述で事足りてしまう。このような技術選定は、打ち合わせをするまでもなく、エンジニア同士のその場の会話で決まることもあり、それがドリコムの社風なのだそうだ。
さらに、RSpec::Matchersを拡張してレスポンスのバリデーションも行えるようにした。
このような取り組みによって、コミュニケーションコストの削減、ドキュメント作成にかかる時間の短縮といった効果が生まれ、開発を円滑に進めることができたのだという。あまりにもスムーズな進捗のため、「一度も会話せずに機能実装が終了していて、寂しかった」ということすらあったそうだ。
■コーディング規約はレビューコストを下げる特効薬
開発スピードの向上には、読みやすいソースコードであることが必要不可欠だ。そのために、onkcop(読み方はオニクコップ)というコーディング規約を導入した。
「コーディング規約はレビューコストを下げる特効薬」だと、神谷氏はその重要性を語る。特に、開発の終盤では「分単位でMerge Requestが飛び交う」ほどのベロシティとなるため、コードの読みやすさが要となる。同社のコーディング規約「onkcop」はgithubで公開されているので、ぜひ参考にしてほしい。(https://github.com/onk/onkcop)
■テストコードの重要性
開発を続ける中で、技術的負債はどうしても積み上がっていくものだ。たとえば、クライアント側の作業を遅延させないために、取り急ぎ、動作するAPIを提供するというケースは多い。しかし、リファクタリングを先延ばしにしていると、大抵の場合、リファクタリングは行われず、負債を返済することができなくなってしまう。この問題について神谷氏は、「後回しにするのではなく、常にリファクタリングしていくことが、スピードアップに寄与する」と話す。
リファクタリングでは、「テストコードが充実していると、思い切った修正を継続的に入れていくことが可能になる」という。手が回らなかったり、軽視されがちなテストコードだが、神谷氏は自身の開発スタイルを「テストコードを書かないと開発できない」といい、自然にテストコードが充実していくのだそうだ。
テストコードを書くのは辛いという人もいるかもしれないが、意外にも同氏は「テストカバレッジは気にしない」という。100%を達成したとしても、バグが絶対に無いとも言えないからだ。むしろ、実装が正しいかどうかは気にせず、「全コードをワンパス通すことに集中」し、一度も実行されていない部分が無いようにする。そうすることで、エラーが出ることを防ぎ、クライアントエンジニアに無用な負担をかけずに済むという。
■きれいなコードを書く、という重要な基本的スキル
神谷氏は、コーディングという点に着目した場合、「理解しやすいコードを書く技術」「きれいなコードを書く技術」という基本的なスキルが、エンジニアにとって重要であることを強調し、講演を締めくくった。
記事の後編では、ドリコムのクライアントエンジニア 西村氏の講演をレポートする。
勉強会レポート記事(後編):http://gamebiz.jp/?p=180543
(取材・文:Pick UPs! 神谷美恵<Twitter>)
■ドリコム
会社情報
- 会社名
- 株式会社ドリコム
- 設立
- 2001年11月
- 代表者
- 代表取締役社長 内藤 裕紀
- 決算期
- 3月
- 直近業績
- 売上高97億7900万円、営業利益9億300万円、経常利益7億9300万円、最終利益1億400万円(2024年3月期)
- 上場区分
- 東証グロース
- 証券コード
- 3793