1
/
5

DONUTSのエンジニア向け勉強会!C#のレジェンドがついに登壇!「Understanding the Essentials of UniTask, UniRx and R3」Tech Talk特別編レポート

DONUTSでは、勤務地や事業部の垣根を越えて各エンジニアが主催する勉強会「Tech Talk」を定期的に開催しています。
今回は8月にDONUTS GAMES(ゲーム事業部)のエンジニアが主体となって開催されたTech Talk特別編についてレポートします。

DONUTSは外部顧問に、株式会社Cysharp CEOの河合宜文氏を迎えています。

河合氏はUnity製のゲームではほぼデファクトスタンダードとして使用されているUniRx、UniTaskをはじめとする数々のOSS(オープンソースソフトウェア)を世に送り出してきた、C#研究開発における第一人者です。

本講演では、河合氏にご登壇いただき、ご自身が開発したUniTask、UniRx、そしてUniRx後継であるR3のそれぞれのメリットや使い分けなどについて特別にご講演いただきました。

はじめに、UniTaskおよびUniRx(R3)を理解する上で重要となる非同期処理の仕組みを、非同期を同期的に扱う仕組みである「async/await」と合わせて紹介しました。その上でUniTask、UniRx(R3)をどのように優先的に使うべきか説明がありました。

また、Unity6(プレビュー版)で導入されている型「Awaitable」にも触れながら、UniTaskとの類似点や相違点などを紹介しました。

ーUniTaskについて

UniTaskは、Unity用に最適化された非同期処理の仕組み「async/await」を導入できるライブラリです。

最近では世界中で人気の大型タイトルにも採用されており、世界各国の様々なタイトルで導入されている信頼性の高いOSSです。DONUTSでも「Tokyo 7th シスターズ」、「D4DJ Groovy Mix」、「ブラックスター -Theater Starless-」などほぼ全てのタイトルに採用しています。

講演内では、ゲームでの採用率が高い理由について、UniTaskで導入されている「async/await」の考え方を導入することで、同期処理とほぼ変わらず非同期処理を実装でき、 .NET Taskと比較してゲームに必要な処理がほぼUniTaskで実現できることが挙げられました。

続けて最新版のUnity6(プレビュー版)で導入されている「Awaitable」にも言及。河合氏いわく、「Awaitable」はコルーチンの完全互換を目指しているので、「async/await」を活かした機能としては不足しており、あくまでUnityでの非同期処理に使えるパターンを定型化して提供しているとの説明がありました。

そして補足として、UniTaskを導入したとしても非同期処理は難しい、という話題に。見た目は正常系や同期と一緒になっているが、非同期になることでやれることが増えているため、どうしても途中で処理を止めるキャンセル処理が必要とされ、適切なハンドリングが難しいと話されていました。

解決策として、自分の中で答えを持っておくことが大事である、とのアドバイスもあり、参加者は熱心に耳を傾けていました。

ーUniRx(R3)について

続くUniRx(R3)の説明パートでは、トピックの冒頭でUnite2017で行われた「黒騎士と白の魔王」のUniRx活用事例セッションが紹介されました。

河合氏いわく、同タイトル内でUniRxを使用して実現した「シーン遷移」「各シーンの起動ポイント」「アセットロード」「通信」「アニメーション」の部分などが現在はほぼUniTaskで実現できることが紹介されました。ただ、その上で、UniRxの後継であるR3の使いどころはある、とのこと。

最近リリースされたばかりのR3ですが、前身となるUniRxがリリースされたのは2014年で既に10年が経っています。10年が経過しても数々のUnity製タイトルで使用されているUniRxですが、R3になることで様々な点が改善されているとのことでした。

なぜ10年たって後継を出したのか?という疑問については、UniTask登場、「async/await」以降UniRxの価値が低下したこともあり、後継のライブラリとしてR3が開発された経緯があったものの、UniRxとの完全な互換性は無いそうです。

さらにUniRxからR3への変更・追加点として、
・「async/await」との共存、統合を意識してモダンC#を活用し現代的に再設計されている
・Observable Tracker(中央集権管理機能)を実装することでメモリーリークの箇所を特定しやすくなっている

ことが紹介されました。今年リリースされたばかりのライブラリですが、早速採用しているアプリもあるとのことでした。

ーまとめ

最後に、本講演のまとめとして、
・単一の非同期は必ずUniTaskで扱っていくこと
・その上で非同期の最上流のパターンを作ることと、メモリーリークを起こさないようCancellationTokenは(原則)必ず渡すこと

また、R3を使用する上では、
・複数の非同期シーケンスを扱う際にR3の使用を推奨すること
・複数の非同期シーケンスを合成できるが、複雑なコードになりやすいので、「async/await」で手続き型コードにばらしても良いこと

など、それぞれの注意点とメリットについて説明がありました。

最新版のR3について河合氏は、「かなり使いやすい良いライブラリが開発できたと自負しているので、ぜひ使ってほしい。」と話し、約1時間半に及ぶ充実の講演を締めくくりました。

その後の質問コーナーでは、「Unity6のAwaitable機能との共存について、使いどころ」など熱心な質問が寄せられ、講演終了後も議論が盛り上がりました。

ーDONUTSでは勉強会を多数開催!

DONUTSでは今回開催されたTechTalk以外にも、UIデザイナーが主体となる「UIデザイン勉強会」、社内のエンジニアの体験談やレビューを語る「CodeCafe」、社外の方にも参加いただける「DONUTS Engineer Meeting」など、社員有志による勉強会を多数開催しており、今後もさまざまなイベントを開催してまいります。

◼️TechTalk
「エンジニアによる、エンジニアのための、人材育成テクニック(リベンジ)」
「NO MORE DEADLOCK」
「【学生時代の研究】教材向けのゲーミフィケーションに用いる視覚的表現に関する研究」 など

◼️UIデザイン勉強会
「ゲームにおけるフォントの使い方と運用入門」
「初心者向けUI演出作成のはじめかた」 など

◼️CodeCafe
「UnityDebugSheetを導入した話」
「StreamDeck 買っちったので紹介する」
「AWS LambdaでSlackのスラッシュコマンドを作ってみた」 など

◼️Engineer Meeting
第6回
「電子カルテのアプリケーションエンジニアが影でやっていること〜スタートアップからの転換期〜」
「技術多様性と統合のジレンマ 〜ジョブカンにおけるDevOps改革〜」 など

社外の方も参加できるイベントの案内はWantedly上のミートアップ記事にて発信しておりますので、ぜひチェックしてください!

また、DONUTSでは一緒に働く仲間を募集しています。
選考に関係なく事業や業務のお話をするカジュアル面談も随時受け付けていますので、気になる求人がありましたら、ぜひご応募ください。


ゲーム・エンタメ
ゲーム開発人材を大募集! / DONUTS GAMES
【DONUTSとは】 DONUTSは、IT分野の5領域(クラウドサービス、ゲーム、動画・ライブ配信、医療、出版メディア)を軸に事業展開している企業です。一見すると全く異なるジャンルのプロダクトがシナジーを生み出し、2007年の創業以来、高い成長率を達成してきました。常に挑戦を続け、次々と新規事業にも取り組んでいるDONUTSは、いまも事業の幅を広げ続けています。 【事業紹介】 バックオフィス業務全てを効率化!業務効率化クラウドERP「ジョブカンシリーズ」 https://all.jobcan.ne.jp/ ジョブカンシリーズは、ジョブカン勤怠管理を始めとし、経費精算・ワークフロー・採用管理・労務HR・給与計算・会計・見積/請求書・BPOの9サービスからなる、バックオフィス業務を効率化するクラウドERPシステムです。2023年3月現在、15万社以上が利用しています。 ■動画・ライブ配信事業 新たな文化とトレンドを築き上げ、夢をかなえる!「ミクチャ」 ※2020年7月にサービス名を「MixChannel」より「ミクチャ」に改称しました https://mixch.tv/ 1700万人がダウンロードした動画・ライブ配信アプリ「ミクチャ」は、テレビのような日常生活に溶けこんだメディアを目指しています。ライブ配信のイベント開催数は業界最大級!ライブ配信を通じてそれぞれの夢を叶えられることを理想に、多くのライバーと協力して多彩なエンターテインメント・コンテンツを生み出し続けています。 ■ゲーム事業 オリジナルタイトルでNo.1を獲得する!DONUTS GAMES https://www.donuts.ne.jp/games/ 「D4DJ Groovy Mix」「ブラックスター -Theater Starless-」「Tokyo 7th シスターズ」「暴走列伝 単車の虎」など、オリジナルタイトルを中心として多岐にわたるタイトルを開発・運営しています。(※「D4DJ Groovy Mix」はブシロードとの共同開発) ■医療事業 開業医の悩みを解決するクラウド型電子カルテシステム「CLIUS」 https://clius.jp/ 流行に乗るわけでも、儲けに左右されるわけでもない。電子カルテ「CLIUS(クリアス)」は、純粋な「使いやすさ」を追求し、実際の医師の声を元に開発されたプロダクトです。クリニックで働く方々の負担を減らし、患者さまにとってベストな診療につながるクラウドサービスを目指しています。 ■出版メディア事業 雑誌の発行と連動したデジタルメディア事業「Ray」 https://ray-web.jp/ ■新規事業 ・ファッションイベント「札幌コレクション( サツコレ)」運営事業 ・VR関連事業(ときめきVR、Akilab等) ■DONUTS GROUP ・大学院生、院卒社会人のための求人情報サイト「アカリク」 ・eスポーツ事業「VARREL」( 旧DONUTS USG) ・地域密着型メディア「美少女図鑑」 ・女性向けハウツーサイト「ハウコレ」 ・「RISE EARTH」ライバーマネジメント ・動画配信プラットフォーム「OPENREC.tv」 【拠点】 ■東京本社 本社オフィス、サテライトオフィスのほか、撮影スタジオ等を所有しています ■京都・高知・大阪、新潟、福岡、札幌オフィス 2017年以降、積極的に地方拠点を展開し、既存サービスの運用や新規サービスの開発に挑戦しています ■タイ・韓国支社 「JOBCAN(ジョブカン)」を中心に、独自のサービスを展開しています"
株式会社DONUTS

DONUTSの最新ニュースはこちら
https://www.donuts.ne.jp/news/2024/

株式会社DONUTS's job postings
64 Likes
64 Likes

Weekly ranking

Show other rankings