技術書典17にむけて「UniTips Vol.11」と「SGE Go Tech Book Vol.06」を執筆しました!
2024年11月2日 (土)〜11月17日(日)に、オンライン・オフラインにて同時開催される技術書オンリーイベント「技術書典17」に、今回も、ゲーム・エンターテイメント事業部(SGE)が参加します。
また、「SGE Go Tech Book Vol.06」は、11月3日(日)11時から池袋サンシャインシティ2階 展示ホールDで開催されるオフラインイベントにも出展いたします。「SGE Go Tech Book Vol.06」は【し05】の配置となりますので、ぜひ、ブースにもお立ち寄りください!
本ブログでは、今回執筆した技術書「UniTips Vol.11」と「SGE Go Tech Book Vol.06」の見どころを紹介します。
「UniTips Vol.11」
「UniTips Vol.11」は、下記3章で構成されています。内容は各章ごとに独立していて、Unity初心者の方向けのものから、業務で活かせる技術まで、さまざまなTipsが記載されています。章ごとの概要を紹介します。気になる内容がありましたらぜひ、ご覧ください!
【タイトル】UniTips Vol.11
【電子版】800円(税込)
【URL】https://techbookfest.org/product/3ZjLVJskPaD9b7tnAvwx1f
本技術書は、下記3章で構成されています。Unity6 からの新しいビルド設定「BuildProfile」の活用や、機械学習初心者のための「Unity Sentis」入門のほか、Unityで高品質な水面を実現するためのパッケージ「Boat Attack Water」の導入方法と活用法などを解説しています。章ごとの概要を紹介します。
【目次】
1章 Unity6 からの新しいビルド設定 BuildProfile 活用のススメ
2章 Unity6 からはじめる機械学習初心者のための Unity Sentis 入門
3章 Unity で海を作ろう ~Boat Attack Water~
第1章: Unity6からの新しいビルド設定BuildProfile活用のススメ
Unity で開発を行う際、最終的にモバイルアプリやWebアプリなど、プラットフォームを指定してビルドを行います。Unity6が出るまでは、そのビルド設定についてはプラットフォームごとに単一であり、設定を切り分けてビルドする際には自前で動的に変更する仕組みが必要となっていました。そこでUnity6ではこのビルド設定が刷新され、BuildProfileというとても便利な仕組みが生まれました。本章ではこのBuildProfileの機能やその活用について紹介します。
第2章: Unity6 からはじめる機械学習初心者のための Unity Sentis 入門
Unity 6 以降、Unity Sentis のサポートにより、Unity プロジェクト内で機械学習(ML) モデルを扱うことが容易になりました。本チュートリアルでは、機械学習初心者の方を 対象に、Hugging Face 上で公開されている Unity Sentis のサンプルプロジェクトを利 用して、簡単な画像分類モデルを動かす手順を紹介します。機械学習の知識がなくても、 Unity 内でモデルを実行できるようになります。
第3章: Unity で海を作ろう ~Boat Attack Water~
ゲーム開発において、水や海の表現は重要な要素のひとつです。リアルで美しい水面を 実現することで、ゲームの没入感や品質を大きく向上させることができます。本章では、 Unity で高品質な水面を実現するためのパッケージ「Boat Attack Water」の導入方法と 活用法について詳しく解説します。
「SGE Go Tech Book Vol.06」
ゲーム・エンターテインメント事業部(SGE)所属のエンジニアによる、Goの知見やノウハウを共有する技術書です。ゲーム開発ならではの内容から、ゲーム開発以外でも活用できるテクニックまで、幅広く扱っています。
【タイトル】SGE Go Tech Book Vol.06
【電子版】1000 円(税込)
【電子+紙セット】1500 円(税込)
【URL】https://techbookfest.org/product/gZunKdiJLvDBbigEdRqBRK
本技術書は、下記7章で構成されています。10問のクイズで学ぶGo言語仕様や、クエリキャッシュを用いてログインボーナスの実装、リフレクションでさまざまな形式のデータをシリアライズ/デシリアライズする解説など、幅広くまとめています。章ごとの概要を紹介します。
第1章: 10問のクイズで学ぶGo言語仕様
The Go Programming Language Specificationは公式から提供されているGoの言語仕様書です。これを読むことによって「どのような型や演算子が使用できるのか」「値を代入できる条件は何か」といった普段気にすることの少ない細かな言語仕様を知ることができます。本章では、Goの言語仕様にまつわるクイズを10問出題し、それを言語仕様書と照らし合わせながら解説します。
第2章: クエリキャッシュを用いてログインボーナスを実装する
モバイルゲーム開発では1回のAPIリクエストで複数の状態管理を取得、更新をすることが多いです。また、開発当初は想定していなかったアップデートや改修が必要になることもあります。モバイルゲームのサーバー開発にあたり、コードの可読性や一定の処理速度を担保するという観点では、データベースから取得した一部のデータをサーバーのインメモリにキャッシュすることが有効な手段の1つとなります。本章ではモバイルゲームサーバーのクエリキャッシュについて、ログインボーナス機能の実装を通じて紹介します。
第3章: リフレクションでさまざまな形式のデータをシリアライズ/デシリアライズする
モバイルゲームサービスを含むサービス運用では、サービスの品質維持や改善のためにデータ分析が重要です。データ分析で利用するデータには状態データ、ログデータ、イベントデータといったさまざまな形式のデータがあり、利用する際にはデータ変換処理が必要になります。本章では、Goのリフレクションを活用したシリアライズ/デシリアライズ処理の実装を紹介します。リフレクションを用いて実装することで複数の型に対するデータ処理を個別に実装することなく型情報に基づいた汎用的な処理として実装することが可能です。
第4章: go-playground/validatorではじめるバリデーション
ゲーム開発においては、ガチャやアイテム購入などの課金要素や、ランキングやギルドバトルなどの他ユーザーとの関わりが発生する性質上、不正データの入力を許容してしまうことは、ゲームの運営に致命的な影響を及ぼす可能性があります。また、マスターデータに設定ミスがあると、ゲーム内のバランスが崩れたり、意図しない設定値による不具合が発生する可能性もあります。本章では、Goのバリデーションライブラリであるgo-playground/validatorを使って、データのバリデーションについて解説します。
第5章: ゲームの回転の仕組み
本章では、ゲーム開発において重要となる回転についてGoを使用して紹介します。回転行列、オイラー角と四元数は、3D空間における回転を表現するための一般的な手法です。回転行列は直接使用するにはパラメータが理解しづらく、オイラー角は理解しやすい一方で、ジンバルロックの問題が存在し、四元数はその問題を回避できるという特徴があります。本章では、これらの回転がどのようなものかを詳しく説明するとともにGoのコードでどのように実装するかを紹介します。
第6章: SpannerをGORM Genで操ってみる
前回のSGE Go Tech Book Vol.05 にて、私はGORMを用いたSpannerの操作方法について紹介しました。そこではGORMの一般的なAPIを用いて実装を行いましたが、GORMにはタイプセーフなコードを生成して実装できるGORM Genというパッケージが存在します。GORM Genを用いればGORMの強力なAPIをすべてタイプセーフに利用することができ、敬遠されがちなGORMの記法から脱して実装することが可能です。前回に引き続きSpannerを用いながらGORM Genを使ったデータベースの操作方法をご紹介します。
第7章: スプレッドシートを使ったマスターデータ管理
マスターデータは、ゲーム全体の動作に必要な基本的な設定や情報をまとめたデータです。情報を一元管理することで、バランス調整やデータの更新が容易になります。本章では、マスターデータをテーブル形式でスプレッドシートに入力し、運用管理ツールからMySQLなどのデータベースに挿入する手法について紹介します。マスターデータ管理に使用するスプレッドシートの作成から、データベースへの挿入までの一連の流れについて説明します。
■最後に
「UniTips Vol.11」や「SGE Go Tech Book Vol.06」では、最新技術の紹介や、実際のプロジェクトで培った知見を盛り込んでいます!楽しんでいただける内容になっていると思いますので、ぜひご覧ください!
【開催日時】2024年11月2日 (土)〜11月17日(日)
【開催場所】技術書典オンラインマーケット
【URL】https://techbookfest.org/market
<オフライン開催>
【会期】2024年11月3日 (日)11:00~17:00
【会場】池袋サンシャインシティ 展示ホールD(文化会館ビル2F)