技術書典14にむけて「UniTips Vol.10」と「SGE Go Tech Book Vol.03」を執筆しました!

2023年5月20日(土)〜6月4日(日)に、オンライン・オフラインにて同時開催される技術書オンリーイベント「技術書典14」に、今回も、ゲーム・エンターテイメント事業部(SGE)が参加します!「SGE Go Tech Book」は、2023年5月21日(日)11時から、池袋サンシャインシティ 展示ホールD(文化会館ビル2F)で開催されるオフラインイベントにも出展いたします!配置は、【あ18】となりますので、ぜひ、ブースにもお立ち寄りください!本ブログでは、今回執筆した技術書「UniTips Vol.10」と「SGE Go Tech Book Vol.03」の見どころを紹介します!

「UniTips Vol.10」

サイバーエージェントのゲーム事業部に所属しているエンジニア6人が最新技術の紹介や、実際のプロジェクトで培った知見を元に、Unityでの開発に役立つ6つのTipsを紹介する技術書です。

【タイトル】UniTips Vol.10
【電子版】 1,000円(税込)
【電子+紙セット】 1,500円(税込)
【執筆者】 斉藤 俊介、初野 広夢、山上 翔、住田 直樹、江口 大喜、向井 祐一郎
【対象】  Unityエンジニア

【URL】https://techbookfest.org/product/8R3hWPY2Qm9RgtSReW8u0Y


UniTips Vol.10は、下記6章で構成されています。内容は各章ごとに独立していて、Unity初心者の方向けのものから、業務で活かせる技術まで、さまざまなTipsが記載されています。章ごとの概要を紹介します。気になる内容がありましたらぜひ、ご覧ください!

【目次】
1章 先取り! Cinemachine 3 (著 :向井祐一郎)
2章 Overlayを活用したUI開発の効率化 (著 :住田 直樹)
3章 弾幕STGを作ってEntities 1.0の使い方を学ぶ (著 :山上 翔)
4章 UnityにおけるVirtualTexturing (著 :江口大喜)
5章 Unityにおけるコード生成方法と比較 (著 :斉藤 俊介)
6章 GPT APIを用いたUnityでのAIアシスタントの作成(著 :初野 広夢)

第1章 :先取り! Cinemachine 3 (著 :向井祐一郎)

2022年の11月に、UnityフォーラムにCinemachine 3.0に関するアナウンスがありました。まだプレリリースということで正式版はリリースされていませんが、多くの開発者の方が利用されているパッケージなので、そのメジャーアップデートがどのような内容なのか、気になる方は多いかと思います。そこで本章では、Cinemachine 3がどのようなメジャーアップデートなのかについて、アップデートの概要やAPIの変更点を踏まえて解説します。また、現行のCinemachine2.xから3.0へのアップグレードをどのように行うのかについても、あわせて紹介します。

第2章 :Overlayを活用したUI開発の効率化 (著 :住田 直樹)

OverlayはUnity2021.2から追加されたオーサリングツールのひとつです。SceneView上にパネルのGUIとして表示され、SceneView上で作用する便利な機能を提供するものとなっています。本章では、このOverlayの概要や実装について説明しつつ、UI開発を効率化するようなツールの作成を例にOverlayの活用法を紹介します。

第3章 :弾幕STGを作ってEntities 1.0の使い方を学ぶ (著 :山上 翔)

Unityでは、DOTS(Data-Oriented Technology Stack)というデータ処理のパフォーマンス向上を行うためのパッケージが複数用意されています。本章で紹介するEntitiesは、ECS(Entity Component System)アーキテクチャパターンをUnity向けに実装したDOTSの1つとなるパッケージです。Entitiesを使用することで、CPU上での大量のオブジェクトやデータのアクセスを効率化することが出来ます。本章では、Unity 2022.2からバージョン 1.0が使用可能となったEntities、Unity Physics、Entites Graphicsを使用した弾幕STG(シューティングゲーム)を作成しつつ、それらパッケージの基本的な使い方について理解することを目指します。

第4章 : UnityにおけるVirtualTexturing (著 :江口大喜)

HDRP限定ではありますが、Unity2021.3からVirtualTexturingという機能が追加されました。VirtualTextureを使用したStreamingVirtualTextureとはMipMapStreamingとはまた別のTextureStreamingの一種です。このStreamingVirtualTextureを使用すれば高解像度のTextureを使用したシーンでもメモリの圧迫を少なくすることが可能になります。本章ではStreamingVirtualTextureがMipMapStreamingとどのように異なるのか、そしてVirtualTextureとはどのようなものなのかを説明し、HDRPでのセットアップ方法、ShaderGraphでの使用方法も取り上げます。

第5章 :Unityにおけるコード生成方法と比較 (著 :斉藤 俊介)

Unityでコード生成を行うには、ScribanやT4と呼ばれるテンプレートエンジンを使い独自のコード生成ツールを作る方法や、Roslynの機能を使ったSource Generatorを用いる方法などが挙げられます。これらの方法は、コード生成自体の実装方法や、コード生成のタイミングなどに違いがあります。本章ではそれぞれのパターンにおいて、簡単な実装例を元にコード生成の実装方法やコード生成のタイミング、また生成するコードの管理について紹介、比較します。

第6章 :GPT APIを用いたUnityでのAIアシスタントの作成 (著 :初野 広夢)

OpenAIが提供するGPT-3、GPT-3.5、GPT-4は、高度な自然言語生成モデルです。これらのモデルは大量のテキストデータから訓練され、人が読んでも違和感のない文章を生成できます。これを活用すれば、ゲーム内にAIアシスタントを実現できるかもしれません。本章ではGPTのAPIを活用したUnity上でのAIアシスタントを作成する手順を紹介します。RPGゲームのお助けキャラとなる酒場の主人をAIで作ることを目的に、GPTに与える入力内容(プロンプトエンジニアリング)やモデルをfine-tuningする方法などを交え、AIアシスタントの作成手順を説明します。

SGE Go Tech Book Vol.03

ゲーム・エンターテインメント事業部(SGE)所属のエンジニアによる、Goの知見やノウハウを共有する技術書です。ゲーム開発ならではの内容から、ゲーム開発以外でも活用できるテクニックまで、幅広く扱っています。

【タイトル】SGE Go Tech Book Vol.03
【電子版】1000 円(税込)
【電子+紙セット】1500 円(税込)
【URL】https://techbookfest.org/product/fcaRxg1xn4tn7CkPzBTDct


本技術書は、下記8章で構成されています。スマートフォンゲーム開発で実際に利用している実装手法の紹介から、ライブラリやフレームワークの導入チュートリアルまで、幅広い内容となっています。章ごとの概要を紹介します。

【目次】
1章 スマートフォンゲームのサーバーの大規模なアクセス負荷に対処するための手法 (著 : 齊藤 慶一)
2章 ゲーム開発におけるログ実装 (著 : 島田 裕司)
3章 ゲーム開発におけるミッション機能 – Goによるサーバーサイド実装例:Genericsを利用した型安全なイベント管理 (著 : 山本 聖大)
4章 NGワードは検知したいがセーフワードは許可したい! (著 : 岩村 洸弥)
5章 gRPC × Goのゲーム開発で少しでも実装コストを削減してみる (著 : 大橋 萌枝)
6章 Google Cloud Run jobsを用いたスケーラブルで冪等なバッチ処理基盤の実装 (著 : 鈴木 光)
7章 Go言語のWebスクレイピングライブラリ「Colly」のチュートリアル (著 : 齋藤 颯太)
8章 grpc-goからconnect-goに乗り換える (著 : 朝倉 信晴)

第1章: スマートフォンゲームのサーバーの大規模なアクセス負荷に対処するための手法(著 :齊藤 慶一)

スマートフォンゲームでは、webサービスと比較して、書き込み処理が多いなど、データベースの利用において大きな違いが存在します。上記のデータベースの特性を踏まえつつ、より多くのユーザに低遅延でサービスを提供するために、スマートフォンゲーム開発ではさまざまな手法で実装が行われています。本章では、上記のさまざまな手法のうちの、いくつかの手法とその実装について紹介します。

第2章: ゲーム開発におけるログ実装(著 :島田 裕司)

ゲーム開発において、ログを過不足なく出力することは、安定したゲーム運用のために重要な要素となります。不具合調査やユーザー分析、CS、監査等、さまざま観点でログを出力する必要があります。本章では、これらのログの実装を、Goでどのように実現するかについて紹介します。

第3章: ゲーム開発におけるミッション機能 – Goによるサーバーサイド実装例:Genericsを利用した型安全なイベント管理(著 :山本 聖大)

昨今のスマートフォンゲームには必ずと言っていいほど存在するミッション機能ですが、サーバーサイド実装を行う際には考慮しなければいけない点も多く存在します。本章ではそんなミッション機能について、Goによる実装例とその改良を通していくつかの工夫を紹介します。またGo1.18で導入されたGenericsを活用した実装を行っており、業務におけるGenericsの利用例のひとつとしても参考にして頂けます。

第4章: NGワードは検知したいがセーフワードは許可したい!(著 :岩村 洸弥)

昨今のサービスには、ニックネームやチャットなど、ユーザーが入力した文字列を受け付けて、不特定多数に公開するソーシャル機能を持つものも増えてきました。その機能を実装する上で、入力された文字列に不適切な文字列が含まれているとトラブルに発展しかねないため、NGワードを登録して検知する仕組みも必要となってきます。そこで、NGワード検知の仕組みをいかにして実装するか、そしてただ単純にNGワードを検知するだけでなく、セーフワードを例外として許可する方法についてご紹介していきます。

第5章: gRPC × Goのゲーム開発で少しでも実装コストを削減してみる(著 :大橋 萌枝)

API開発において、昨今ではゲーム分野に限らずgRPC × Goの組み合わせが見られるようになってきました。本章ではgRPC × Goの開発における実装コストを削減するための工夫として、Protocol Buffersの定義の解析や解析結果を元にしたGoコードの自動生成、validatorの導入などについて紹介します。

第6章: Google Cloud Run jobsを用いたスケーラブルで冪等なバッチ処理基盤の実装(著 :鈴木 光)

VMレスな実行環境ではステートレスなアプリケーションが前提にあるため、実行時間の制約があったりします。ただ、この環境は運用が楽なので多くのプロジェクトで求められるバッチ処理をここで動かしたいという要望は多いでしょう。しかし、バッチ処理中はステートフルなアプリケーションになりがちで、冪等性を担保しにくいです。このような課題を解決すべく、実行時間に制限がある環境においても冪等性が維持されるようなバッチ処理基盤をGoで実装しました。今回はその手法と実装の全貌を紹介します。

第7章: Go言語のWebスクレイピングライブラリ「Colly」のチュートリアル(著 : 齋藤 颯太)

昨今利用者が増えてきているGo言語ですが、Webアプリケーション開発に留まらず、システムプログラミングやDocker、Kubernetesといったコンテナツールなど様々な用途で使用されています。本章ではその用途の1つとして、Go言語を用いたWebスクレイピングライブラリである「Colly」のチュートリアルと、よく使用される機能をいくつか紹介します。

第8章: grpc-goからconnect-goに乗り換える(著 : 朝倉 信晴)

connect-goは「A better gRPC」として開発されたフレームワークです。本章では、grpc-goで実装されたgRPCサーバー・クライアントをconnect-goへマイグレーションする方法を紹介します。

■最後に

「UniTips Vol.10」や「SGE Go Tech Book Vol.03」では、最新技術の紹介や、実際のプロジェクトで培った知見を盛り込んでいます!楽しんでいただける内容になっていると思いますので、ぜひご覧ください!


【技術書典14 開催概要】
<オンライン開催>
開催日時:2023年5月20日(土)〜6月4日(日)
場所:技術書典オンラインマーケット
【URL】https://techbookfest.org/market
<オフライン開催>
会期:2023年5月21日 (日)11:00~17:00
会場:池袋サンシャインシティ 展示ホールD(文化会館ビル2F)

LINEで送る
Pocket

おすすめ記事