書籍『UniRx/UniTask完全理解』筆者インタビュー。執筆の振り返りと、本書を通じて伝えたいこと。
2020年11月6日、書籍『UniRx/UniTask完全理解 より高度なUnity C#プログラミング』が発売されます。本書の発売を記念して、筆者のとりすーぷ(@toRisouP) こと 打田恭平氏にお話を伺いました。
——自己紹介と本書の紹介をお願いします。
とりすーぷという名前でネット上では活動しております。ゲームクリエイターになりたい!という夢を持ちながらプログラミングを勉強し、学生時代に「NITORI BOX」、社会人になってから「ハクレイフリーマーケット」という同人ゲームをリリースしました。
両方ともC#を使って開発しており、C#に昔からどっぷりといった感じです。
これらの同人ゲーム開発や趣味プログラミンにおいて得た知見を備忘録としてブログに書いてたところ評判が良かったため、積極的にブログの執筆や登壇などを行うようにしていたところMicrosoft MVPを受賞することができました。とてもありがたい限りです。
——500ページという凄いボリュームになりました。本書はどのくらいの期間をかけて書きましたか?また、おひとりで全て書かれたのでしょうか。
執筆を開始したのは2017年なのですが、諸事情があり途中執筆できない期間もあり正味の執筆期間は2年くらいだと思います。UniRx/UniTaskの作者の河合様のレビューを頂きつつ、執筆は私一人で行いました。また執筆後のチェックに友人や会社の人にも手伝って頂きました。ありがとうございました。
——本書をどんな人に読んでもらいたいと思いますか?
本書はUniRx/UniTaskの基礎的な使い方や機能をまとめたものとなっています。そのためUniRxやUniTaskをこれから触ろうとしている、すでに使っている人には是非読んで頂きたいです。
「C#の基礎についてはだいたいわかっており、やりたい機能はだいたい実装することができる。だけど素のC#の書き方にやりにくさを感じており、なにか便利なライブラリが無いものか?」と感じている人には特にオススメできると思います。
——本書を通じて、Unity開発者にどのような事を伝えたいですか?
UniRxは非常に便利で強力なライブラリである反面、学習コストが高く雑に扱うとプロジェクトを逆に複雑怪奇にしてしまうというデメリットがあります。今まではUniRxについて体系的に学べる資料が乏しく、なんとなくうろ覚えな知識でUniRxがプロジェクトで乱用されてしまう場合が多かったためです。
その結果、このデメリットのみが取り沙汰され「UniRxは難しいからうちの会社では利用禁止になった」みたいな声をよく耳にすることがありました。
私はこれは非常に勿体ないことであり、「臭いものに蓋をする」という対応で済まされていることが残念で仕方ありませんでした。そのため本書は「体系的に学べる、UniRxに特化した学習資料が無いのであれば自分が作る!」というモチベーションで執筆しました。
少しでも学習コストを下げ、すべてのUnity C#プログラマがUniRxについて学習できる機会を得られるようにしたいと考えています。
——本書を書いていく中で苦労された点はありますか?
まずUniRxの「Operator(オペレータ)」の機能をまとめるのが非常に大変でした。
100個弱あるすべてのOperatorとそのオーバーロードを列挙し、実装を読みつつ挙動をまとめ、それらのマーブルダイアグラムを作成する必要がありました。この作業だけで夏が終わった覚えがあります。
また、本書の執筆終盤においてUniTaskのバージョンが2.0系にアップデートされた際の追従もかなり大変でした。ほぼ毎日のように仕様変更が入り、そのたびに挙動をチェックして本書にまとめるという作業を繰り返していました。その際に、仕様の不備や不具合を見つけUniTask側に修正を入れてもらうなどもありましたので、大変ではありましたがライブラリ側の品質向上にも繋がったので結果としは良かったと思います。
——本書の各章のなかで、特に力を入れた箇所はありますか?
特に力を入れたのは第2章および第4章です。
第2章ではUniRxの基礎である「Observable」について解説しており、UniRxの動作原理やインタフェース、Hot/Coldといった特性について図を用いてわかりやすく解説をしています。
第4章ではUniRxが提供するすべてのOperatorについて図を用いて挙動を解説しており、UniRxを使う際に何度も繰り返し参照することになる章になるであろうと考えています。
——書籍発売の告知に対する反応はいかがですか。
まさしく「かゆいところに手が届く」という本だったんだなと思いました。待ち望んでいた!という声が多くとてもありがたいです。
——UniRx/UniTaskに限らず、C#やUnity全般に対して「この技術に期待・興味がある」「こんな技術ができて欲しい」という展望はありますか?
個人的には今はリアルタイム通信をUnityでどう扱うかに興味があります。まだこのあたりは研究中なので深くお話できるようなことはないのですが、「サーバもクライアントもすべてC#で作ってしまう」というC#大統一理論を自分は支持しています。
——最後に、この本を購入する方や購入を検討している方へ、メッセージをお願いします。
本書はUniRxやUniTaskの基礎について重点的に解説しています。「名前は聞いたことあるけど難しそうで及び腰になってしまう」という人に是非オススメしたいです。
一方でUniRxやUniTaskにフォーカスを当てる都合上、C#の基礎的な機能(LINQやラムダ式、async/awaitなど)についての解説はかなり控えめになっています。そのため「C#にまだ自信がない」という人はまず先にC#の基礎について学習をされてから本書を手に取ることをおすすめしたいです。
——ありがとうございました!
書籍は好評予約受付中
Unityでゲーム開発をするすべての開発者に必須の書、『UniRx/UniTask完全理解 より高度なUnity C#プログラミング』は11月6日発売です。オンライン書店では予約が始まっています。ぜひご購入下さい。
(Amazonリンク)