ブログ

ブログ

ゲームの手触り、パフォーマンス設計、エンジンアーキテクチャに関する技術メモ。ほとんどは何かを直しているときに取ったメモから生まれました。

Unreal Engine 5 GAS: building an ability system right

My dash ability fired once on the client and then went silent. The bug was not GAS itself, it was touching an attribute without a GameplayEffect.

2026年8月28日 ゲームプレイ 約 12 分

Unity Profiler: Find the Real Bottleneck, 22 ms to 8 ms

Frame time hit 22 ms and everyone blamed the shaders. The Unity Profiler capture said otherwise; here is how measuring took it down to 8.7 ms.

2026年8月14日 パフォーマンス 約 10 分

コヨーテタイムとジャンプバッファ:良いジャンプの 12 行

プレイヤーが「ジャンプの感触が悪い」と言うとき、たいていは 2 つの機能が欠けています。どちらも 30 分で書けます。

2026年7月18日 ゲームプレイ 約 7 分

Lag Compensation: Why Your Perfect Shot Did Not Count

How server-side lag compensation is actually built for shooters: the rewind buffer, the numbers that tune it, and the point where the window has to stop.

2026年6月30日 ネットワーク 約 13 分

ゲームエンジンにおけるC++メモリ管理:フレームを食うのは誰か

フレーム内でnewを呼び出すとプロファイラに13msのスパイクが出たが、フレームアリーナとオブジェクトプーリングを導入した結果、ピークは7.9msに低減した。その原因分析と対策の手順を詳しく解説し、プロファイル結果の観察からメモリ割り当てのボトルネック特定、アリーナアロケータの実装、スレッドごとの分離までの全工程を追う。

2026年6月12日 エンジン 約 11 分

Unreal EngineでBlueprintとC++をどう使い分けるか:実測7msで見えた性能の境界線

Blueprint VMのコストはほとんどのシーンでは見えないが、毎ティック数万ノードになった途端に7msを消費した。実測値をもとに、どこまでをC++に置き、どこからをBlueprintに残すのか、UPROPERTYの公開範囲やチーム拡大後のマージ問題まで含めて、ハイブリッド構成の境界線を具体的な数字で説明する。

2026年5月24日 エンジン 約 9 分

DOTS/ECS 移行から学んだこと

本番プロジェクトの一部を ECS に移行し、フレーム時間が 34% 下がりました。ただし効果は予想した場所からは来ませんでした。

2026年5月2日 パフォーマンス 約 11 分

モバイルゲーム最適化:ドローコールとオーバードローの実測でAndroid実機のフレームレートを17FPS改善した記録

ミドルレンジのAndroid端末で、タワーディフェンスのシーンが41FPSから動きませんでした。ポリゴン数には一切触れず、ドローコール、マテリアル、オーバードローを実機で計測しながら同じシーンを58FPSまで引き上げた手順と、それぞれの変更で実際に取り戻せたミリ秒、そして測定の順番までまとめて記録しています。

2026年4月16日 パフォーマンス 約 10 分

HLSLのcompute shaderでGPUパーティクルを100万個描画する最適化と計測の実践記録

CPU側のパーティクル更新が4万個で11.4msに達したため、状態をStructuredBufferに載せてHLSLのcompute shaderへ完全に移し、DrawProceduralIndirectで描画するまでの手順をまとめました。DeadListによる再利用と同期の落とし穴まで実測値付きで解説します。

2026年3月28日 グラフィックス 約 12 分

クライアント予測をいちばん簡単に説明する

マルチプレイの移動処理は複雑に見えます。実際には 3 ステップです。予測し、比較し、補正する。

2026年3月11日 ネットワーク 約 13 分

Game engine architecture from scratch: six layers, one loop

Writing your own engine starts with getting the layer order right. Notes on subsystem order, fixed timestep simulation, and when to move to a ready engine.

2026年2月20日 エンジン 約 14 分

URP と HDRP のどちらを選ぶか:Unity レンダーパイプラインの選び方を実測データで検証する

対象プラットフォームの一覧が答えをすでに出していることがある。HDRP の volumetric と SSR にかかる実測コスト、URP がモバイルで得る帯域幅の余裕、そして途中で切り替えたときに本当に払う金額を数字で並べた。

2026年2月5日 グラフィックス 約 9 分

スタイライズドライティング:セルシェーディングの先へ

段階的な影は誰もが知る第一歩です。本当の個性はリムライトと影の色の選び方に宿ります。

2026年1月24日 グラフィックス 約 9 分

NavMesh・A*・フローフィールドで200体のAIエージェントを詰まらせない経路探索

200体のエージェントが押し寄せる攻城シーンで経路探索が詰まる理由、NavMeshが黙って嘘をつく場所、そしてA*とフローフィールドを使い分ける境界線がどこにあるのかを、プロファイラの実測値だけを頼りに順を追って整理します。ボトルネックは探索そのものではなく、毎フレームの処理の側にありました。

2026年1月8日 AI 約 11 分

Dedicated Server アーキテクチャ設計の実践:1コンテナで48人同時接続、コストまで実測

権威型のゲームサーバーをバックエンドから切り離し、マッチメイキングのキューとルーム割り当てを作り直しました。1コンテナで48人を同時に支える構成と、同時接続プレイヤー1人あたりの実コストを、実測値とともにまとめています。リージョン選定とスケーリングの判断基準、そしてリレー方式で十分なケースについても触れます。

2025年12月18日 ネットワーク 約 12 分

キャラクターコントローラが滑っているように感じる理由

プレイヤーがキャラクターコントローラが滑っていると感じるとき、ブレーキ、地面検知、斜面処理、補間という4つの別々のバグを指しています。

2025年12月2日 ゲームプレイ 約 10 分

ビヘイビアツリーか Utility AI か

どちらも正解になり得ます。決め手は、敵が同時に何個のことを天秤にかけるかです。

2025年11月9日 AI 約 10 分

Game development CI/CD: why nightly builds change everything

Setting up build automation on a small team took five days; the average lifetime of a broken commit dropped from 2.5 days to 9 hours and release days calmed down.

2025年10月22日 ツール 約 10 分

Publishing a game on Steam: what to do, and when to do it

On my first game I opened the store page three weeks before launch and shipped with 480 wishlists; on the second I built the calendar backwards.

2025年10月6日 キャリア 約 11 分

スタジオがゲームプログラマーのポートフォリオで実際に見ているもの

面接する側に座ったこともあります。目を引くポートフォリオにはいくつか共通点があります。

2025年9月15日 キャリア 約 8 分

20 件

お問い合わせ

次のビルドを 一緒に作りましょう。

正社員、フリーランス案件、技術コンサルティング — 受信箱はいつでも開いています。