강의

멘토링

커뮤니티

Game Dev

/

Game Programming

絶対講座!Unity6 - ECS/DOTS プログラミングマスタークラス

Unityの次世代アーキテクチャであるECS/DOTSを基礎から実務応用まで完璧にマスターする講座です。ECSは既存のGameObject方式とは全く異なるデータ指向プログラミングで、高い参入障壁のために多くの開発者が困難を感じています。本講座はこのような困難を解消するため、ECSの核心概念(Entity、Component、System)から始まり、Burstコンパイラ、Jobシステム、Unity Physics統合まで段階的に学習します。

難易度 中級以上

受講期間 無制限

  • indiegamemaker
unity-dots
unity-dots
unity-ecs
unity-ecs
multithread
multithread
Unity
Unity
Unity6
Unity6
unity-dots
unity-dots
unity-ecs
unity-ecs
multithread
multithread
Unity
Unity
Unity6
Unity6

学習した受講者のレビュー

学習した受講者のレビュー

5.0

5.0

류학림

100% 受講後に作成

ECS/DOTSを初めて実習してみました! 理論的にすべてを扱っているわけではありませんが、ECSがどのようなものなのか確実に理解できる時間でした。 他の学習者の方々も完走後、様々な機能についてはUnityの公式ドキュメントを通じて学習すれば大きな助けになると思います。 完走後に復習と自習を兼ねてスクリプトを修正してみましたが、他の学習者の方々もチャレンジしてみると良いと思います! 良い講義ありがとうございました!!!! --- [復習及び自習] 1. Movement System PlayerMovementSystemとProjectileMovementSystemをIJobEntityベースで動作するようにリファクタリングし、Burstコンパイル効率を高め、並列処理が可能になるよう修正しました。 - PlayerMovementSystemは単一エンティティですが、他のものと一貫性を保つのが良いと思い、Job構造を追加し、ロジック全体がBurstコンパイルされるよう保証しました。 - ProjectileMovementSystemのforeachループを削除し、ScheduleParallelを使用して多数の発射体が同時に移動する際、ワーカースレッドを効率的に使用するよう修正しました。 2. HP Bar System PlayerHpBarSystemとEnemyHpBarSystemにComponentLookup.DidChange()チェックを追加し、PlayerComponentとEnemyComponentのデータが実際に変更された場合のみFillAmountを計算するよう修正しました。 3. Collision ProjectileCollisionSystemで手動でEntityCommandBufferを生成し、Job完了待機時に行っていたComplete、PlaybackをEndFixedStepSimulationEntityCommandBufferSystemを使用する方式に修正しました。 4. Audio 最後の効果音実装まで完了後、メインシーンからゲームシーンに移動する際、AudioManagerでエンティティが即座に生成されずエラーが発生しているようです。 そのため、他のSystemスクリプトで行ったように (audioBufferEntity == Entity.Null || !entityManager.Exists(audioBufferEntity)) をチェックし、Updateでエンティティの存在有無を確認後、再生できるよう修正しました。

5.0

김성관

100% 受講後に作成

既存のどの講義よりも難しいです。 新しい概念がとても多く出てきます。 繰り返しをしてみる必要がありそうです。 新しい概念を知ることができて良かったです。

受講後に得られること

  • 最新ECS 1.4 APIを活用したプログラミング

  • 純粋なECS環境でのDOTSプログラミング技法

  • Burst コンパイルとJobSystemを活用したUnity Physics

  • UI、Scene、Sound連携のためのHybrid ECS活用技法

Unity ECSで作る高性能2Dサバイバルゲーム開発

「GameObjectでは1,000匹が限界でしたが、ECSでは100,000匹でもスムーズに動作します。」


Unity ECS/DOTSは、マルチスレッドとメモリ最適化を基盤とするUnityの次世代開発手法です。しかし、既存のUnityとは全く異なる概念のため、独学では習得が困難なのが現実です。

この講座はECSが初めての方のために準備しました。Entity-Component-Systemの基本概念から始めて、実際のゲームですぐに使えるパターンまでマスターします。

なぜ今ECSを学ぶべきなのでしょうか?

  • Unity TechnologiesはECSを次世代標準アーキテクチャとして推進しています。Unity 6から安定化されており、今後より多くのプロジェクトで求められる技術です。


  • ECSは、モバイルからコンソールまで、プレイヤーがより多くのオブジェクト、よりスムーズなフレーム、より複雑なシミュレーションを可能にする核心技術です。

  • まだECSを適切に扱える開発者は多くありません。ECS開発能力を身につければ就職市場で大きな競争力になります。

  • ECSはUnityだけの概念ではありません。UnrealのMass Entity System、Bevy Engineなど他のエンジンやフレームワークでも類似したパターンが広がっています。

核心学習内容:

  • IComponentData、ISystem、Authoringパターン


  • BurstコンパイルとIJobEntityを活用した並列処理

  • SRP Batcherの設定とGPU Instanceの活用

  • Unity PhysicsとITriggerEventsJobを活用した衝突処理

  • MonoBehaviourとECSを一緒に使うHybridパターン

  • EntityCommandBufferを活用した動的エンティティ管理技法

実習プロジェクトはヴァンパイアサバイバルスタイルのゲームで、数万個の敵と投射体を同時に処理しながらECSの性能を体感できるよう構成しました。完走後にはすぐに皆さんのプロジェクトにECSを適用することができます。

ECSの基本概念

  • 膨大な理論授業よりも、短いながらも核心的なECSの概念を学習した後、すぐに実戦コードを作成しながらECSプログラミングの構造を身につけることができるようにします。


ECS基本的な使用方法

  • 最初はComponent、System、Authoringを通じた基本的なロジック実装から始めます。

  • Unity Physicsを活用した衝突処理及び最適化過程が進行されます。

2Dスプライトアニメーションシェーダー提供

  • 純粋なECSではまだスプライトアニメーションをサポートしていません。これに対する最も確実な方法は、シェーダーを活用する技法が最善のソリューションです。

  • ECSに最適化されたSprite Offsetを活用するための完成されたシェーダーグラフを提供し、ECS環境で2Dアニメーションを実装する技法について学習します。(講義ではシェーダーグラフ制作に関する部分は扱いません。)

ECS専用モニタリングビューの活用法

  • ECS開発時に必須のモニタリングビューを積極的に活用して、正確なデータを確認しながら進めます。

  • Entity Hierarchy ビュー

  • Components ビュー

  • Systems ビュー

  • Archtypes ビュー


最適化のためのモニタリング

  • プロファイラーでIJobEntityを活用したJob Worker Thread活性化を検証します。

Hybrid Batch Group アクティベーション状態の検証

  • Frame DebuggerでBatchが破綻する部分がないかをモニタリングしながら進行します。

  • ECSではGPU Instancingは自動的に処理される一方、Hybrid Batch Groupの有効化状況を確認する過程を見ていきます。

シーン切り替えとシステム初期化

ECSでのシーン遷移も複雑な手順を経る必要があります。Monobehaviourでのシーンローディング過程では、アンロードしたシーンオブジェクトは自動的に整理されますが、ECSでは直接手動で処理する必要があります。


  • メインメニューシーンへの遷移ロジック実装

  • 再開始ロジックを実装

受講後には

  • 実務にすぐに投入可能なECS能力

    • 完全に動作するゲームプロジェクトポートフォリオ

    • ECS設計パターンとBest Practiceの習得

    • パフォーマンス問題の分析および解決能力(Frame Debugger、Profiler分析)


  • 差別化された技術スタック習得

    • Unity ECS/DOTS専門性 - まだ希少な開発者プール

    • BurstとJob System最適化経験

    • データ指向プログラミング思考法


  • スケーラブルなゲームアーキテクチャ

    • 数千〜数万エンティティを軽々と処理する構造

    • マルチプレイヤー、大規模シミュレーションなど様々なジャンルに適用可能 (Netcode for Entities)

学習難易度を徐々に上げることができる最適なカリキュラムを開発するために約30のサンプルプロジェクトを経て準備した講座です。これにより皆さんがECS開発環境を学習される際に困難がないものと思います。

受講前の参考事項

実習環境

  • オペレーティングシステム:Windows、macOS

  • Unity 6 (6000.2.10f1以上)

  • IDE : Visual Studio 2022 またはRider推奨

こんな方に
おすすめです

学習対象は
誰でしょう?

  • Unity基礎はあるが、パフォーマンス最適化が必要な開発者

  • 大規模オブジェクトを扱うゲームを作りたい方

  • Unityの最新技術スタックを学びたい方

  • 就職・転職のために競争力を身につけたい方

前提知識、
必要でしょうか?

  • C# 基礎文法 (クラス、構造体、インターフェース)

  • Unity基本的な使い方(GameObject、Component、Scene)

こんにちは
です。

599

受講生

57

受講レビュー

59

回答

4.9

講座評価

8

講座

こんにちは、イ・ジェヒョンです。

個人ゲーム開発者を夢見てUnityを独学で始め、2009年から2012年まで個人開発で10種類以上のモバイルゲームをリリースしました。「絶対にわかる!Unity」の出版およびオフライン講座を行ってきました。講義を進める中で、「よく知っていること」と「うまく教えること」は別物であるという事実を日々実感しています。こうした経験を活かし、私が持つ知識を皆さんに、より効果的に伝えるために常に努力しています。 và tiến hành các bài giảng trực tiếp. Trong quá trình giảng dạy, tôi luôn nhận ra rằng việc am hiểu kiến thức và việc truyền dạy tốt là hai điều hoàn toàn khác nhau. Dựa trên những kinh nghiệm này, tôi luôn nỗ lực để truyền đạt kiến thức của mình đến các bạn một cách hiệu quả nhất.

今回の講義が皆さんにとって素晴らしい出発点となり、楽しいゲーム開発者の世界へと進むための小さな助けとなることを願っています。〜


主な講義実績

  • NC Soft 特別講義

  • NHNエンターテインメント

  • ネットマーブル・ゲームアカデミー

  • ファストキャンパス - Unityキャンプ 1期 〜 8期

  • チームスパルタ オンラインチューター

  • Tアカデミー

  • ETRI(韓国電子通信研究院)

  • 韓国コンテンツ振興院、京畿コンテンツ振興院、城南産業振興院

  • KAIST、西江大、中央大、漢城大、檀国大 特別講義

主な活動

  • 絶対講座!Unity 執筆(日本、中国で出版)

  • Unity UNITE 2014 セッション特講

  • Unity UNITE 2018 ハンズオンセッション特別講義

  • Unity Industry 2022 ハンズオンセッション特別講義

  • Unity Korea 公認マスターズ 第2期から第5期まで活動

    Unity UNITE 2014 セッション特別講演 Unity UNITE 2018 ハンズオンセッション特別講演 Unity Industry 2022 ハンズオンセッション特別講演 Unity Korea 公認マスターズ 第2期から第5期まで活動

Unity UNITE 2014 セッション特別講演 Unity UNITE 2018 ハンズオンセッション特別講演 Unity Industry 2022 ハンズオンセッション特別講演 Unity Korea 公認マスターズ 第2期から第5期まで活動

カリキュラム

全体

27件 ∙ (6時間 6分)

講座資料(こうぎしりょう):

授業資料
講座掲載日: 
最終更新日: 

受講レビュー

全体

7件

5.0

7件の受講レビュー

  • 123123123123123님의 프로필 이미지
    123123123123123

    受講レビュー 34

    平均評価 3.7

    5

    100% 受講後に作成

    既存のどの講義よりも難しいです。 新しい概念がとても多く出てきます。 繰り返しをしてみる必要がありそうです。 新しい概念を知ることができて良かったです。

    • indiegamemaker
      知識共有者

      本当に速く完走されましたね。〜 既存の開発方式とは全く異なる方式なので、とても難しかったと思います。小さなロジックからECSに転換してみる実習をしてみれば、きっと役に立つと思います。

  • sdkbh4117님의 프로필 이미지
    sdkbh4117

    受講レビュー 1

    平均評価 5.0

    5

    33% 受講後に作成

    • l4f0님의 프로필 이미지
      l4f0

      受講レビュー 2

      平均評価 5.0

      5

      33% 受講後に作成

      • haku님의 프로필 이미지
        haku

        受講レビュー 4

        平均評価 4.5

        5

        100% 受講後に作成

        ECS/DOTSを初めて実習してみました! 理論的にすべてを扱っているわけではありませんが、ECSがどのようなものなのか確実に理解できる時間でした。 他の学習者の方々も完走後、様々な機能についてはUnityの公式ドキュメントを通じて学習すれば大きな助けになると思います。 完走後に復習と自習を兼ねてスクリプトを修正してみましたが、他の学習者の方々もチャレンジしてみると良いと思います! 良い講義ありがとうございました!!!! --- [復習及び自習] 1. Movement System PlayerMovementSystemとProjectileMovementSystemをIJobEntityベースで動作するようにリファクタリングし、Burstコンパイル効率を高め、並列処理が可能になるよう修正しました。 - PlayerMovementSystemは単一エンティティですが、他のものと一貫性を保つのが良いと思い、Job構造を追加し、ロジック全体がBurstコンパイルされるよう保証しました。 - ProjectileMovementSystemのforeachループを削除し、ScheduleParallelを使用して多数の発射体が同時に移動する際、ワーカースレッドを効率的に使用するよう修正しました。 2. HP Bar System PlayerHpBarSystemとEnemyHpBarSystemにComponentLookup.DidChange()チェックを追加し、PlayerComponentとEnemyComponentのデータが実際に変更された場合のみFillAmountを計算するよう修正しました。 3. Collision ProjectileCollisionSystemで手動でEntityCommandBufferを生成し、Job完了待機時に行っていたComplete、PlaybackをEndFixedStepSimulationEntityCommandBufferSystemを使用する方式に修正しました。 4. Audio 最後の効果音実装まで完了後、メインシーンからゲームシーンに移動する際、AudioManagerでエンティティが即座に生成されずエラーが発生しているようです。 そのため、他のSystemスクリプトで行ったように (audioBufferEntity == Entity.Null || !entityManager.Exists(audioBufferEntity)) をチェックし、Updateでエンティティの存在有無を確認後、再生できるよう修正しました。

        • indiegamemaker
          知識共有者

          貴重な講義レビューありがとうございます。〜 詳細なリファクタリング過程まで紹介してくださって 他の方々にも大変参考になると思います。

      • graffiti님의 프로필 이미지
        graffiti

        受講レビュー 1

        平均評価 5.0

        5

        100% 受講後に作成

        ¥12,201

        indiegamemakerの他の講座

        知識共有者の他の講座を見てみましょう!

        似ている講座

        同じ分野の他の講座を見てみましょう!