学習ロードマップ¶
自分の目的に合ったルートを選んでください。どのルートも「全部読む」必要はありません。各ページは独立して読めるように書かれており、未説明の用語には用語集やリンク先ページへの参照があります。
ルート0: まず全員に勧める最短コース(約10ページ)¶
「設計もC++もまだ自信がない」状態から、このWiki全体の見取り図を作るためのコースです。
- 設計とは何を決める行為なのか
- 凝集度と結合度
- 継承・委譲・コンポジション
- SRP: 単一責任の原則
- Observer(Unityのeventの正体)
- State(ゲームで最頻出)
- 値型と参照・ポインタ・参照
- RAII
- main.cpp から CPU命令までの旅
- ケーススタディ: 武器切り替え
ルート1: 初心者向け(設計もC++も基礎から)¶
順番に読むと、前のページの知識だけで次が読めるように並べています。
- 第1部を順番に: 設計とは → 責務 → 凝集度と結合度 → 依存 → 抽象化 → 継承とコンポジション → ポリモーフィズム → 品質特性 → YAGNI/KISS/DRY → 技術的負債
- 第1部演習 を解く
- 第2部 SOLID を SRP から順に
- 第3部は全部ではなく、まず Observer / State / Strategy / Command / Factory Method / Singleton の6つ
- 第5部を 01 から順に(1日1〜2ページ)
- 第11部のケーススタディを2〜3題読み、判断ガイドで締める
ルート2: Unity経験者向けC++ルート¶
「C#は書けるがC++が分からない」人向け。C#との対比を軸に進みます。
- ポインタと参照型 / 値セマンティクス — C#のclass/structとの対応から入る
- 値型と参照・ポインタ・参照
- コンストラクタ・デストラクタ・コピー・ムーブ
- RAII → デストラクタとDispose / RAIIとusing
- スマートポインタ → 所有権と借用
- 継承・仮想関数 → 仮想関数とvirtual/override
- テンプレートとconcepts → テンプレートとジェネリック
- ラムダ式・関数ポインタ・std::function → 関数ポインタとdelegate
- main.cpp から CPU命令までの旅 → 翻訳単位とヘッダー → ヘッダー分割とAssembly Definition
- 手動メモリ管理とGC → GCとの違い
- ネイティブビルドとIL2CPP
- 仕上げに 第5部演習 と 第9部演習
ルート3: 設計重点ルート¶
「動くコードは書けるが、設計判断に自信がない」人向け。
- 第1部を通読(カテゴリ目次)
- 第2部 SOLID を通読(カテゴリ目次)— 各ページの「適用しすぎた場合の弊害」を飛ばさないこと
- 第3部から: Strategy / State / Observer / Command / Factory Method / Decorator / Facade / Adapter
- 第4部から: Component と ECS / Event Queue と Pub/Sub / Service Locator と DI / ステートマシン
- 第11部ケーススタディを全題(カテゴリ目次)— 設計案の比較こそがこのルートの本体
- 第12部 判断ガイドを通読(カテゴリ目次)
- 第3部演習 / 第11部演習 / 第12部演習
ルート4: Unreal Engine向けルート¶
UnityからUEへ移る人、UE案件が始まる人向け。C++の土台 → UE独自仕様の順で進みます。
- ルート2の 1〜6 をまず終える(UEのC++は標準C++の上に載っている)
- static・inline・friend と キャスト
- 翻訳単位とヘッダー → シンボルとリンケージ(UEのビルドエラーを読むための基礎)
- 第10部を順に: UObject・Actor・ActorComponent → GCとUPROPERTY → リフレクションとUHT → UBTとModule → TSharedPtrなど → DelegateとInterface → Gameplay Framework
- 第10部演習
- ケーススタディの 敵AI と 画面遷移 をUE前提で読み直す
ルート5: グラフィックス志望向けルート¶
描画・エンジン内部・最適化に進みたい人向け。メモリとCPUの理解を最優先します。
- 値型と参照・ポインタ・参照 → 配列と文字列 → STLコンテナ
- メモリレイアウト・パディング・アラインメント
- 関数呼び出しとCPU → キャッシュ・分岐予測・SIMD
- キャッシュ局所性と AoS/SoA → Data Localityなど最適化系パターン
- placement new・allocator・pool
- コンパイラ最適化とUB → 未定義動作
- Object Pool / Double Buffer(最適化系パターン内) / Command Buffer
- ビルド構成 と サニタイザ
- 第6部演習 と 第7部演習
進め方のコツ¶
- 1ページ読んだら、そのページの「理解度チェック」に口頭で答えてみる。答えられなければ読み直すのではなく、手を動かす(演習をやる)。
- パターンのページは「使わない場面」を読むまでが1ページ。
- C++のページで分からない用語が出たら、その場で用語集を引き、深追いは後回しにする。