見出し画像

サイバーエージェントが公開した“300ページ級のUnity技術書”がスゴい!しかも誰でも無料で読める

快適に動作するアプリケーションを提供するために、パフォーマンス・チューニングについてもっと深く学びたい。そんなUnityエンジニアのみなさまにぜひ読んでいただきたい電子書籍が登場しました。

その名もずばり『Unity パフォーマンスチューニング バイブル』。
 
執筆を手がけたのはサイバーエージェントグループ各社の精鋭エンジニアの方々。元々はサイバーエージェントグループ内の共有資料として制作されたそうですが、その内容とボリュームは「社内向け」の範疇に収まらないほどの商業技術書レベルです。そしてこの度、本書が誰でも無料で読める電子書籍として、社外にも公開されることが決まりました。

一般公開に先駆けて本書を拝読したユニティ・テクノロジーズ・ジャパンのエンジニアからも、絶賛の声が相次いでいます。

本書はこれからパフォーマンス・チューニングを学ぶ人にとって、最適な一冊です。すでに実務経験のある人にとっても、一つひとつの作業の意味を論理的に言語化する上で、またとないリファレンスになるでしょう。具体的なコードについての記述も微に入り細を穿つもので、繊細に検証されていることが伝わってきました。ゲーム開発の現場で培われてきたノウハウを、こうして日本語のドキュメントとして一般公開していただいたことに、現職、個人の両方の立場より感謝の意を述べたいです。

藤岡裕吾
ユニティ・テクノロジーズ・ジャパン
デベロッパーリレーションズエンジニア

Unityのパフォーマンスチューニングにおける重要な項目が網羅的にカバーされており、大変すばらしい電子書籍です。また、コンピューターの基礎的な処理、アルゴリズムの計算オーダーなど、実は知っておくべき知識についても触れられています。パフォーマンスにお困りの方に、ぜひ一読していただきたい内容です。

黒河優介
ユニティ・テクノロジーズ・ジャパン
デベロッパーリレーションマネージャー・エンジニア

果たしてこの力作は、どのように生まれたのでしょう。書籍化プロジェクトをリードしたサイバーエージェントの飯田卓也さんに、お話を伺いました。

飯田卓也
株式会社サイバーエージェント コア技術本部 兼 株式会社グレンジ
エンジニアマネージャー

属人的ではないやり方で、チューニングのノウハウを共有したい

 ——飯田さんは普段、どのような業務に携わっているのでしょう?

サイバーエージェントの10社以上の子会社が所属するゲーム・エンターテイメント事業部(SGE)において、「開発の効率化」と「品質の最適化」を担うSGEコア技術本部という部署に所属しています。コア技術本部は、各子会社が横断的に利用できる共通基盤の開発やセキュリティ対策、AI技術の研究をはじめ、各プロジェクトで発生した課題の解決など、幅広い業務をカバーする部署です。私自身は主に、現場のみなさんと各プロダクトの品質向上やパフォーマンス・チューニングに取り組んでいます。アプリ開発者といえども必ずしもチューニングに精通しているわけではないので、みなさんが抱えるさまざまな疑問や悩みを解決することが私の役割です。

——具体的には、どのような疑問や悩みが寄せられていたのでしょう?

特に多いのは、プロファイラーに関する疑問ですね。「そもそも使い方がわからない」という方もいれば、「数値の正しい見方がわからない」という方もいました。もっと漠然と「チューニング自体の経験が浅く、とにかく不安」と悩んでいる方もいましたね。

△本書84ページより。適宜、スクリーンショットや図版も織り交ぜて解説されていく

その場で手を動かしながら説明をすれば、こうした疑問はすぐに解決することがほとんどなのですが、それらはあくまでも対症療法です。もっと体系的にノウハウを共有する必要があると感じていました。

とはいえ、私のように現場でレクチャーできるメンバーの数には限りがあります。勉強会を開くという手もありますが、教える側のメンバーの負担を考えると、そう頻繁に開催できるわけではありません。いずれにしても、「誰かが誰かに教える」といった属人的なノウハウの共有には限界を感じていました。

——そうした問題意識が、本書の制作へとつながっていったのですね。

そうですね。私たちSGEコア技術本部がミッションとして掲げる「開発の効率化」と「品質の最適化」を実現するには、開発者一人ひとりがチューニングの基礎知識を身につけることが理想的です。そのために何ができるのかを議論するなかで生まれたのが、パフォーマンス・チューニングに欠かせない知識を書籍としてまとめようというアイデアでした。

有志でつくりあげた300ページ超の大作

 ——本書は300ページを超える大作です。制作はどのように進めていったのでしょう?

全体のとりまとめは私たちSGEコア技術本部が担いましたが、執筆自体は各子会社の有志に依頼しました。携わったエンジニアは11名で、約半年かけて執筆しました。年明けから本格的に執筆を開始し、3月に初稿が完成。ブラッシュアップを経て5月頃に書き終わりました。そこから、デザインをブラッシュアップし、7月に社内へ配布しました。

このように子会社の垣根を越えて、有志で積極的によいものを仕上げようという文化があることは、弊社の魅力の一つだと感じています。

——素晴らしい文化ですね。みなさんでどのように形にしていったのか、制作時のエピソードなどがあればお聞きしたいです。特に苦労した点などはありますか?

特に頭を悩ませたのは、何をどこまで解説するべきかという点ですね。技術的な正確さを追求するあまり、難解で取っつきにくい内容になってしまうということだけは避けたかったんです。そのため「何を伝えたいのか」を精査し、構成も何度もレビューを重ねながら煮詰めていきました。

実際の執筆にあたっては、技術書典(技術書オンリーの同人誌即売会)に出展経験のあるメンバーの助言が参考になりました。そのおかげもあって、当初予想していたよりもはるかにスムーズに作業を進めることができました。

また今回の執筆者のなかには、入社1~2年目の若手社員もいたのですが、彼らがベテランのエンジニアと遜色ない内容のテキストを手がけてくれたことはポジティブサプライズでした。

パフォーマンスチューニングをする上で必要となる前提知識

——完成後、社内での反応はいかがでしたか?

やはりまずは300 ページ超というボリュームへの、驚きの声が多かったですね。本書では取り上げられなかった項目について、「自分が加筆してみたい」と言ってくれる方もいました。

配布後、すぐに輪読会を開催してくれた子会社があったことも嬉しかったですね。議論を通じて、本書の内容をさらに深掘りすることで、社内でチューニングに関する共通言語ができたそうです。

最近はゲーム事業部以外でもUnityが使われはじめているため、他事業部の方からも「ぜひ読んでみたい」とお声がけいただいています。

——弊社のエンジニアたちも、ボリュームと熱量に圧倒されましたし、内容のレベルの高さに驚いていましたよ。序盤でコンピューターの動作について詳しく触れられていたり、単なるHow toに留まらない体系的な書籍に仕上がっていることに感銘を受けていました。

Unity Japanのみなさんにそう言っていただけて嬉しいです。ホッとしました!

オープンソースとして一般公開。業界全体にメリットがあると考えた

——誰でも無料でダウンロードできる電子書籍として、一般公開を決めたのはなぜですか?

私たちSGEコア技術本部では、オープンにできる情報は積極的に一般公開していこうと考えています。本書で取り扱っているパフォーマンス・チューニングの知識は汎用性が高いものなので、社内のみに公開するのではなく、業界全体にシェアした方が、結果的にメリットが大きいと考えたんです。

——パフォーマンス・チューニングに携わる人にとっては、まさにバイブルとなりそうですね。本書に絡めて、これから計画している企画などがあれば教えてください。

9月には、私たちが運営するUnityをテーマにした勉強会「CA.Unity」にて、本書を取り上げる予定です。ただし、内容については、本書をしっかりと読み込んでもらい、実際に手を動かしながら学んでいただくのが一番だと思うんですよね。そのため勉強会では、本書の制作の裏側や、執筆活動を進めていく上で苦労した内容などをお伝えできればと思っています。

——ぜひ私も勉強会に参加したいと思います! 本書が広く読まれることで、開発者のみなさまの意識も大きく変化しそうですね。

そうなったら嬉しいですね。日々の開発のなかで少しでもパフォーマンスが悪いなと感じたら、すぐにチューニングをしてみる。それが当たり前のことになったら良いですよね。経験がないからと委縮せず、このバイブルを片手にチューニングに挑戦してみようという方が、一人でも増えたら幸いです。

また今後もサイバーエージェントとして、主体的に社内の技術をオープンに発信していくことで、ゲーム業界全体の切磋琢磨とさらなる活性化に貢献できればと考えています。

■『Unity パフォーマンスチューニング バイブル』PDF版ダウンロードは以下から

「電子書籍のダウンロード方法」から入手できます

■9月16日 19:00開催 CA.Unity 参加申し込みは以下から


この記事が参加している募集

仕事について話そう

みんなにも読んでほしいですか?

オススメした記事はフォロワーのタイムラインに表示されます!

最後までお読みいただきありがとうございます。ぜひTwitterもフォローしてください。