コンテンツにスキップ

学習ロードマップ

自分の目的に合ったルートを選んでください。どのルートも「全部読む」必要はありません。各ページは独立して読めるように書かれており、未説明の用語には用語集やリンク先ページへの参照があります。

ルート0: まず全員に勧める最短コース(約10ページ)

「設計もC++もまだ自信がない」状態から、このWiki全体の見取り図を作るためのコースです。

  1. 設計とは何を決める行為なのか
  2. 凝集度と結合度
  3. 継承・委譲・コンポジション
  4. SRP: 単一責任の原則
  5. Observer(Unityのeventの正体)
  6. State(ゲームで最頻出)
  7. 値型と参照・ポインタ・参照
  8. RAII
  9. main.cpp から CPU命令までの旅
  10. ケーススタディ: 武器切り替え

ルート1: 初心者向け(設計もC++も基礎から)

順番に読むと、前のページの知識だけで次が読めるように並べています。

  1. 第1部を順番に: 設計とは責務凝集度と結合度依存抽象化継承とコンポジションポリモーフィズム品質特性YAGNI/KISS/DRY技術的負債
  2. 第1部演習 を解く
  3. 第2部 SOLID を SRP から順に
  4. 第3部は全部ではなく、まず Observer / State / Strategy / Command / Factory Method / Singleton の6つ
  5. 第5部を 01 から順に(1日1〜2ページ)
  6. 第11部のケーススタディを2〜3題読み、判断ガイドで締める

ルート2: Unity経験者向けC++ルート

「C#は書けるがC++が分からない」人向け。C#との対比を軸に進みます。

  1. ポインタと参照型 / 値セマンティクス — C#のclass/structとの対応から入る
  2. 値型と参照・ポインタ・参照
  3. コンストラクタ・デストラクタ・コピー・ムーブ
  4. RAIIデストラクタとDispose / RAIIとusing
  5. スマートポインタ所有権と借用
  6. 継承・仮想関数仮想関数とvirtual/override
  7. テンプレートとconceptsテンプレートとジェネリック
  8. ラムダ式・関数ポインタ・std::function関数ポインタとdelegate
  9. main.cpp から CPU命令までの旅翻訳単位とヘッダーヘッダー分割とAssembly Definition
  10. 手動メモリ管理とGCGCとの違い
  11. ネイティブビルドとIL2CPP
  12. 仕上げに 第5部演習第9部演習

ルート3: 設計重点ルート

「動くコードは書けるが、設計判断に自信がない」人向け。

  1. 第1部を通読(カテゴリ目次)
  2. 第2部 SOLID を通読(カテゴリ目次)— 各ページの「適用しすぎた場合の弊害」を飛ばさないこと
  3. 第3部から: Strategy / State / Observer / Command / Factory Method / Decorator / Facade / Adapter
  4. 第4部から: Component と ECS / Event Queue と Pub/Sub / Service Locator と DI / ステートマシン
  5. 第11部ケーススタディを全題(カテゴリ目次)— 設計案の比較こそがこのルートの本体
  6. 第12部 判断ガイドを通読(カテゴリ目次)
  7. 第3部演習 / 第11部演習 / 第12部演習

ルート4: Unreal Engine向けルート

UnityからUEへ移る人、UE案件が始まる人向け。C++の土台 → UE独自仕様の順で進みます。

  1. ルート2の 1〜6 をまず終える(UEのC++は標準C++の上に載っている)
  2. static・inline・friendキャスト
  3. 翻訳単位とヘッダーシンボルとリンケージ(UEのビルドエラーを読むための基礎)
  4. 第10部を順に: UObject・Actor・ActorComponentGCとUPROPERTYリフレクションとUHTUBTとModuleTSharedPtrなどDelegateとInterfaceGameplay Framework
  5. 第10部演習
  6. ケーススタディの 敵AI画面遷移 をUE前提で読み直す

ルート5: グラフィックス志望向けルート

描画・エンジン内部・最適化に進みたい人向け。メモリとCPUの理解を最優先します。

  1. 値型と参照・ポインタ・参照配列と文字列STLコンテナ
  2. メモリレイアウト・パディング・アラインメント
  3. 関数呼び出しとCPUキャッシュ・分岐予測・SIMD
  4. キャッシュ局所性と AoS/SoAData Localityなど最適化系パターン
  5. placement new・allocator・pool
  6. コンパイラ最適化とUB未定義動作
  7. Object Pool / Double Buffer(最適化系パターン内) / Command Buffer
  8. ビルド構成サニタイザ
  9. 第6部演習第7部演習

進め方のコツ

  • 1ページ読んだら、そのページの「理解度チェック」に口頭で答えてみる。答えられなければ読み直すのではなく、手を動かす(演習をやる)。
  • パターンのページは「使わない場面」を読むまでが1ページ。
  • C++のページで分からない用語が出たら、その場で用語集を引き、深追いは後回しにする。

目次に戻る