黒河優介

ゲームエンジンの会社の人。 実は以前はモバイルゲームのサーバーサイドとか担当していました。

黒河優介

ゲームエンジンの会社の人。 実は以前はモバイルゲームのサーバーサイドとか担当していました。

最近の記事

  • 固定された記事

ネットワークを通じたマルチプレイについて

前置き 最近ではゲーム開発においてネットワークの要素は欠かせない要素になってきています。 一言にネットワークの要素といっても様々な要素があります。 ・DLCや配信による追加コンテンツ対応 ・ユーザーのセーブデータ管理 ・ガチャやログインボーナス等の処理 ・プラットフォームサービスやSNS等外部サービスとの連携 ・サービス運営でお客様サポート等を行うために必要な諸々の話 ・ネットワークを通じたマルチプレイ 等々… 今回はネットワークを通じたマルチプレイの話をしたいと思います

    • GraphicsStateCollectionについて

      Unity6よりGraphicsStateCollectionという機能がExperimental(実験的)として追加されました。 ShaderVariant周りに関する機能となっており、Vulkan/Metal/DirectX12などでは大きな恩恵を得られるかもしれない機能になっています。 本記事ではGraphicsStateCollectionについて簡単に説明していきたいと思います。 なぜこの機能が必要だったか?Shaderは実際に描画をする際、事前にWarmupを

      • ShaderVariant StrictShaderVariantMatching の設定

        ShaderVariant関連でUnity2022から「StrictShaderVariantMatching」という設定があったので、こちらについて記事にします 以前の記事で「AssetBudle化したとき等にShaderVariantがStripされてしまって、見た目が違う状況になってしまうことがある」という話をしました。 これはUnityがオブジェクトを描画するときに、一致するVariant(キーワードの組み合わせ)が見つからなかったときに、なんとなく近いものにフォ

        • ゲームでの処理の最適化について

          ゲームは短い時間に多くの処理をしないといけません ゲームでは秒間60フレーム(60FPS)や30フレーム(30FPS)と言った形で、多くの処理を 1/60秒や1/30秒の間に収めなければなりません。 もし時間内に収まらず 0.1秒もかかってしまった場合、秒間に10フレームしか出ないことになります。 そうすると、ゲーム画面がカクついているといった形でゲームのユーザー体験は著しく落ちます。 ※フレームの概念については桜井さんのコチラの動画がわかりやすいです 他にもメモリ使用

        • 固定された記事

        ネットワークを通じたマルチプレイについて

          ゲーム開発から見たAndroid端末とiOS端末

          ゲームを開発していると、iOS向けよりAndroid向けの方が大変と言う話は結構あるあるだと思います。 何が大変なのかと言う所を言語化したいと思ったので何となく記事を書く事にしました。 Android端末種類の豊富さiPhoneは毎年新しいのが出てきますし、iPad / iPad Proなども出てきます。 端末の種類も iOSであっても画一的ではないのです… しかし、Androidはそれと段違いに種類が多いです。 そもそも iOS端末はApple社からしか出ませんが、A

          ゲーム開発から見たAndroid端末とiOS端末

          ShaderVariant その他 PreFilterとDynamic Shader Loading

          ShaderVariant関連で少し情報の更新がありましたので、コチラ記事にします。 今回は以下のブログで紹介された PreFilterとDynamic Shader Loadingについてです。 PreFilteringについてPreFilteringは、IPreprocessShaders.OnProcessShaderよりも前に実行して、引数「IList<ShaderCompilerData> data 」の要素数を抑える事で諸々の高速化をするためのものになっていま

          ShaderVariant その他 PreFilterとDynamic Shader Loading

          [Unity]StreamingAssetsをもう少し柔軟に運用したい

          「UnityのStremingAssets、プラットフォームごとにフォルダ設定したり、DevelopmentBuildだけ含みたいデータとかうまく出来ないかなぁ…」 と思う事が定期的にあったのですが… Unity 2021からBuildPlayerContext.AddAdditionalPathToStreamingAssetsと言うAPIで出来るようになっていたみたいです。。。 下記のようなコードをすれば、プロジェクト直下のAssetBundlesフォルダをプラットフ

          [Unity]StreamingAssetsをもう少し柔軟に運用したい

          Unity WebGLのProfilerや実行周りについて

          UnityのWebGLではProfilingするときには Development BuildやAutoconnect Profilerにチェックを入れてBuild&Runするというのが基本になります。 何故、こうしないといけないのか?何が起こっているのかを少し紐解いていきたいと思います。 WebServerの立ち上げについてBuild & Runを押したときにはローカルマシン内でWebサーバーが立ち上がって、ブラウザで実行しています。 Webサーバーの立ち上げですが…。

          Unity WebGLのProfilerや実行周りについて

          Unity2022でのProfiler更新周り

          Unity 2022でもProfilerに更新がありました。 1.FrameTimingManagerの更新 2.MemoryProfilerがついにversion 1.0に! 3.ObjectのInstance化・削除したときの情報が取得可能に! その他(今更ですが Profilerの一部がReleaseビルドでも取得可能でした) 1.FrameTimingManagerの更新FrameTimingManagerも更新が行われました ・DirectX11への対応 ・GP

          Unity2022でのProfiler更新周り

          [Unity]ShaderVariant番外編その2

          これまでのあらすじ…UnityのShaderVariantについてコレまで記事を書いていました。 今回紹介したいものこれは画像のようにProfilerのModuleとして、実機中に起きたShaderコンパイルの情報を集約したツールになります。 このツールを使う事で実機上で発生したShaderコンパイルによる負荷を一覧で見ることが出来るというものです。 実現方法についてこちらはProfilerのグラフとして出てくるCounterの部分の表示と、詳細画面に出てくるShade

          [Unity]ShaderVariant番外編その2

          ShaderVariantCollectionを良い感じに生成できないか…

          これまでのあらすじ…UnityのShaderVariantについてコレまで記事を書いていたのですが、自分が思った以上に閲覧されているようでした。 今回紹介したいものそして、ふと思ったのです… 記事中に紹介したShaderVariantCollectionアセット…もうちょっと楽に生成できないかなぁと… 具体的には… 「Editor上でプレイを繰り返ししていたら… 利用したShaderVariantが勝手に記録されていって… あとは溜め込んだ記録をもとに良い感じにShade

          ShaderVariantCollectionを良い感じに生成できないか…

          [Unity]サンプルプロジェクトをMLAPI→Netcode for GameObjectsへ移植

          Unityでマルチプレイ用のMLAPIは Netcode for GameObjectsへと名前を変え正式なソリューションとなりました。 また、Netcode for GameObjectsは version 1.0-preがリリースされて、Version 1のリリースも見えてきました。 以前にMLAPIがバージョンアップしたので、どのへんが変わったのかという記事を書きました。 今回、MLAPI ー>Netcode for GameObjects も変更がありました。

          [Unity]サンプルプロジェクトをMLAPI→Netcode for GameObjectsへ移植

          Unity URPでGPU処理負荷を画面に出してみる

          Unity 2020.3 + URP 10.7.0 や、Unity2021.2 + URP 12.1.0で画像のような形で、項目別にGPUの負荷を出すものをつくりました。 ※動作環境によっては対応していません。 動作環境がサポートしているかどうかは SystemInfo.supportsGpuRecorderで判定可能です こちらは、このソースをプロジェクトの何処かに格納したのち、PlayerSettingsでDefineに「UNITY_USE_RECORDER」を定義す

          Unity URPでGPU処理負荷を画面に出してみる

          Unity 2021でのProfiler更新

          Unity 2021でもいくつかのProfilerの更新がありました。 1.ProfilerWindowに File Access、Asset Loadingの項目が追加されました 2.ProfilerWindowのMemory部分のUIが変わりました 3.ProfilerWindowに独自のモジュールを作ることが可能になりました 4.Arm関連でパッケージが追加されています 4-1.Mali GPUを積んだAndroid端末でMetrics情報が閲覧可能なパッケージを開発

          Unity 2021でのProfiler更新

          自分の中での至高のゲーム ソニックワールドアドベンチャーを紹介する

          ついこの間Xbox Series Sが手に入ったので、Xbox360の下位互換を利用して360で大好きだったゲームをメッチャ遊んでいます・・・ それがソニックワールドアドベンチャー。 PV動画はコチラ 2009年に発売されたのですが、このゲームはめちゃくちゃ遊びまくっていました。リメイクとかPC版も出ていないので、Xboxを買って久しぶりに遊んでいます。 ■どんなゲーム? 音速のハリネズミ、ソニック・ザ・ヘッジホッグ。 昼は音速のソニック、夜は狼の姿のウェアホッグを

          自分の中での至高のゲーム ソニックワールドアドベンチャーを紹介する

          [Unity]LAN内のマッチングで、マルチ対応アプリを作っていきましょう

          ネットワークゲームって作るために、サーバーを設置するもしくは何かしらのクラウドサービスを利用する必要があって、何か少し敷居高くないですか? そこでふと思ったので、サーバーなしで 同じネットワーク(LAN内) のみでマルチプレイ出来るようなサンプルもあって良いんじゃないかと・・・ ■LAN内のみで出来るといいこと ・サービス等を一切使わないのでお金はかからない ・サービスが止まってしまった、上限超えてしまった等の理由で遊べなくなるようなことも避けられます ・展示会場とかで出

          [Unity]LAN内のマッチングで、マルチ対応アプリを作っていきましょう