SlideShare a Scribd company logo
Unite Copenhagen 2019
Creating a third-person zombie
horde shooter with DOTS
Simon Eliasson
simon.eliasson@farnorthentertainment.com
Disposition
● The Game
● Introducing DOTS
○ Prelude & Planning
○ Static World Objects
○ Enemy Updates
● Conclusion
Project FNZ
What are we working on?
Creating a third-person zombie horde shooter using DOTS – Unite Copenhagen
Survival
Horde Encounters
The Game World
Modding Support
Introducing DOTS
How & why did we do it?
● MVC pattern
● Server calculates
● Client observes
● Tick vs. Frame rate
● View bottleneck
Architecture
● Does it make sense?
● Why sceptical?
● Identify applications
○ Start small - world objects
○ Do enemies next
Build-up
Archetypes & Archetype Chunks
World Objects (ECS)
Archetypes & Archetype Chunks
World Objects (ECS)
Code: Archetype
Archetypes & Archetype Chunks
World Objects (ECS)
Code: Create Entity
Instantiation & Destruction
World Objects (ECS)
Instantiation & Destruction
World Objects (ECS)
Instantiation & Destruction
World Objects (ECS)
Instantiation & Destruction
World Objects (ECS)
Recap
World Objects (ECS)
● Data-oriented approach
● Archetype
● Archetype chunks
● Instantiation
● Destruction
The full DOTS experience
Updating Enemies - ECS + Jobs + Burst Compiler
Enemy Requirements
Updating Enemies - ECS + Jobs + Burst Compiler
● Archetype
○ Position + Rotation
○ Target Position
○ 3D Mesh
○ Enemy Tag
○ Animation Data
● System
○ Position Lerping
○ Animation Updates
Systems = ECS Updates
Updating Enemies - ECS + Jobs + Burst Compiler
Systems = ECS Updates
Updating Enemies - ECS + Jobs + Burst Compiler
Systems = ECS Updates
Updating Enemies - ECS + Jobs + Burst Compiler
Code: Query
Why Data Layout Matters
Updating Enemies - ECS + Jobs + Burst Compiler
Cache Optimization Comparison
Updating Enemies - ECS + Jobs + Burst Compiler
Cache Optimization Comparison
Updating Enemies - ECS + Jobs + Burst Compiler
Cache Optimization Comparison
Updating Enemies - ECS + Jobs + Burst Compiler
Cache Optimization Comparison
Updating Enemies - ECS + Jobs + Burst Compiler
Cache Optimization Comparison
Updating Enemies - ECS + Jobs + Burst Compiler
The full DOTS experience
Updating Enemies - ECS + Jobs + Burst Compiler
Job Systems
Updating Enemies - ECS + Jobs + Burst Compiler
Job Systems
Updating Enemies - ECS + Jobs + Burst Compiler
Job Systems
Updating Enemies - ECS + Jobs + Burst Compiler
Job Systems
Updating Enemies - ECS + Jobs + Burst Compiler
Job Systems
Updating Enemies - ECS + Jobs + Burst Compiler
Code: Scheduling
Code: Execute
The full DOTS experience
Updating Enemies - ECS + Jobs + Burst Compiler
The Burst Compiler
Updating Enemies - ECS + Jobs + Burst Compiler
Highly optimized machine code
The Burst Compiler - Highly Optimized Machine Code
Updating Enemies - ECS + Jobs + Burst Compiler
Highly optimized machine code
The Burst Compiler - Highly Optimized Machine Code
Updating Enemies - ECS + Jobs + Burst Compiler
The Burst Compiler
Updating Enemies - ECS + Jobs + Burst Compiler
The Burst Compiler
Updating Enemies - ECS + Jobs + Burst Compiler
The full DOTS experience
Updating Enemies - ECS + Jobs + Burst Compiler
The full DOTS experience
Updating Enemies - ECS + Jobs + Burst Compiler
● Archetype chunks gives optimal memory layout
● Systems
○ Looping over arrays instead of accessing GameObjects
○ Cache lines contains relevant data when updating
○ Utilizes CPU Cache, Avoids RAM accesses
● Job Systems - Uses all CPU cores to the fullest
● Burst Compiler
○ Produces highly optimized machine code
○ Targets specific CPU architecture of running machine
Recap - Enemy Updates in DOTS
Creating a third-person zombie horde shooter using DOTS – Unite Copenhagen
Conclusion
● GameObjects are not dead
Conclusion
● GameObjects are not dead
● DOTS hybrid is viable
Conclusion
● GameObjects are not dead
● DOTS hybrid is viable
● Embrace the data-oriented mindset
Conclusion
● GameObjects are not dead
● DOTS hybrid is viable
● Embrace the data-oriented mindset
● Consider using DOTS!
Unite Copenhagen 2019
Thank you!
Simon Eliasson
simon.eliasson@farnorthentertainment.com

More Related Content

PDF
個人開発でゲーム一本完成させるまでの苦難の道のり 〜企画編〜
PDF
200人での対戦も可能!?Photon 新SDKについて
PDF
A modern approach to game analysis and design: the AGE framework
PDF
Albion Online - Software Architecture of an MMO (talk at Quo Vadis 2016, Berlin)
PPTX
Unityで PhotonCloudを使ってリアルタイム・マルチプレイヤーゲームを作っちゃおう【導入編】
PDF
MMO Design Architecture by Andrew
PDF
EOS On-boarding ~サンプルを動かしてみよう~
PPTX
A-Frameで始めるWebXRとハンドトラッキング (HoloLens2/Oculus Quest対応)
個人開発でゲーム一本完成させるまでの苦難の道のり 〜企画編〜
200人での対戦も可能!?Photon 新SDKについて
A modern approach to game analysis and design: the AGE framework
Albion Online - Software Architecture of an MMO (talk at Quo Vadis 2016, Berlin)
Unityで PhotonCloudを使ってリアルタイム・マルチプレイヤーゲームを作っちゃおう【導入編】
MMO Design Architecture by Andrew
EOS On-boarding ~サンプルを動かしてみよう~
A-Frameで始めるWebXRとハンドトラッキング (HoloLens2/Oculus Quest対応)

What's hot (20)

PDF
Steam ゲーム内購入 サーバーサイド実装について
PDF
Fpsにおけるレベルデザイン web u_pver
PDF
게임 인공지능 설계
PPTX
ゲーム開発とデザインパターン
PPTX
DeNAの最新のマスタデータ管理システム Oyakata の全容
PPTX
KLabインターンシップ成果報告会
PDF
ゲームAI入門(後半)
PPTX
MVPパターンによる設計アプローチ「あなたのアプリ報連相できてますか」
PDF
【Unity道場スペシャル 2017京都】最適化をする前に覚えておきたい技術
PDF
Unityネイティブプラグインの勧め 〜UnityでiOS, AndroidのAPIを利用する方法〜
PPTX
Game Architecture with Scriptable Objects
PDF
전형규, 프로젝트DH의 절차적 애니메이션 시스템, NDC2017
PDF
Unityではじめるオープンワールド制作 エンジニア編
PPTX
LAFS Game Mechanics - The Core Mechanic
PDF
次世代ゲームにおける自動生成技術
PDF
ソーシャルゲーム案件におけるDB分割のPHP実装
PDF
김동건, 구세대 개발자의 신세대 플레이어를 위한 게임 만들기, NDC2011
PDF
【Unity道場 2月】シェーダを書けるプログラマになろう
PPTX
게임 BM 설계를 위해 알아야 할 게임 Entity
PDF
ゲームAI製作のためのワークショップ(II)
Steam ゲーム内購入 サーバーサイド実装について
Fpsにおけるレベルデザイン web u_pver
게임 인공지능 설계
ゲーム開発とデザインパターン
DeNAの最新のマスタデータ管理システム Oyakata の全容
KLabインターンシップ成果報告会
ゲームAI入門(後半)
MVPパターンによる設計アプローチ「あなたのアプリ報連相できてますか」
【Unity道場スペシャル 2017京都】最適化をする前に覚えておきたい技術
Unityネイティブプラグインの勧め 〜UnityでiOS, AndroidのAPIを利用する方法〜
Game Architecture with Scriptable Objects
전형규, 프로젝트DH의 절차적 애니메이션 시스템, NDC2017
Unityではじめるオープンワールド制作 エンジニア編
LAFS Game Mechanics - The Core Mechanic
次世代ゲームにおける自動生成技術
ソーシャルゲーム案件におけるDB分割のPHP実装
김동건, 구세대 개발자의 신세대 플레이어를 위한 게임 만들기, NDC2011
【Unity道場 2月】シェーダを書けるプログラマになろう
게임 BM 설계를 위해 알아야 할 게임 Entity
ゲームAI製作のためのワークショップ(II)
Ad

Similar to Creating a third-person zombie horde shooter using DOTS – Unite Copenhagen (16)

PDF
DOTS - Unity meets Data Oriented Design
PPTX
We Love Performance! How Tic Toc Games Uses ECS in Mobile Puzzle Games
PPTX
Get moving: An overview of physics in DOTS – Unite Copenhagen 2019
PPTX
GameDev 2017 - Анатолій Ландишев "AAA architecture in Unity3D"
PDF
Developing a Multiplayer RTS with the Unreal Engine 3
PDF
【Unite 2018 Tokyo】C# Job SystemとECS(Entity Component System)解説
PDF
Transforming Gaming: How Unity 3D Shapes Modern Game Development.pdf
PPTX
Killzone Shadow Fall: Threading the Entity Update on PS4
PDF
Entity System
PPTX
Scaling CPU Experiences: An Introduction to the Entity Component System
PDF
Component-Based Entity Systems (Demo)
PDF
What to expect in 2020: Unity roadmap - Unite Copenhagen 2019
PDF
Unite Copehagen 2019 - Unity Roadmap 2020
PPTX
Knock Knock on GameDev Gate
PDF
Game Models - A Different Approach
PPTX
ECS: Making the Entity Debugger - Unite LA
DOTS - Unity meets Data Oriented Design
We Love Performance! How Tic Toc Games Uses ECS in Mobile Puzzle Games
Get moving: An overview of physics in DOTS – Unite Copenhagen 2019
GameDev 2017 - Анатолій Ландишев "AAA architecture in Unity3D"
Developing a Multiplayer RTS with the Unreal Engine 3
【Unite 2018 Tokyo】C# Job SystemとECS(Entity Component System)解説
Transforming Gaming: How Unity 3D Shapes Modern Game Development.pdf
Killzone Shadow Fall: Threading the Entity Update on PS4
Entity System
Scaling CPU Experiences: An Introduction to the Entity Component System
Component-Based Entity Systems (Demo)
What to expect in 2020: Unity roadmap - Unite Copenhagen 2019
Unite Copehagen 2019 - Unity Roadmap 2020
Knock Knock on GameDev Gate
Game Models - A Different Approach
ECS: Making the Entity Debugger - Unite LA
Ad

More from Unity Technologies (20)

PDF
Build Immersive Worlds in Virtual Reality
PDF
Augmenting reality: Bring digital objects into the real world
PDF
Let’s get real: An introduction to AR, VR, MR, XR and more
PDF
Using synthetic data for computer vision model training
PDF
The Tipping Point: How Virtual Experiences Are Transforming Global Industries
PDF
Unity Roadmap 2020: Live games
PDF
Unity Roadmap 2020: Core Engine & Creator Tools
PDF
How ABB shapes the future of industry with Microsoft HoloLens and Unity - Uni...
PPTX
Unity XR platform has a new architecture – Unite Copenhagen 2019
PDF
Turn Revit Models into real-time 3D experiences
PDF
How Daimler uses mobile mixed realities for training and sales - Unite Copenh...
PDF
How Volvo embraced real-time 3D and shook up the auto industry- Unite Copenha...
PDF
QA your code: The new Unity Test Framework – Unite Copenhagen 2019
PDF
Engineering.com webinar: Real-time 3D and digital twins: The power of a virtu...
PDF
Supplying scalable VR training applications with Innoactive - Unite Copenhage...
PDF
XR and real-time 3D in automotive digital marketing strategies | Visionaries ...
PDF
Real-time CG animation in Unity: unpacking the Sherman project - Unite Copenh...
PDF
Creating next-gen VR and MR experiences using Varjo VR-1 and XR-1 - Unite Cop...
PDF
What's ahead for film and animation with Unity 2020 - Unite Copenhagen 2019
PDF
How to Improve Visual Rendering Quality in VR - Unite Copenhagen 2019
Build Immersive Worlds in Virtual Reality
Augmenting reality: Bring digital objects into the real world
Let’s get real: An introduction to AR, VR, MR, XR and more
Using synthetic data for computer vision model training
The Tipping Point: How Virtual Experiences Are Transforming Global Industries
Unity Roadmap 2020: Live games
Unity Roadmap 2020: Core Engine & Creator Tools
How ABB shapes the future of industry with Microsoft HoloLens and Unity - Uni...
Unity XR platform has a new architecture – Unite Copenhagen 2019
Turn Revit Models into real-time 3D experiences
How Daimler uses mobile mixed realities for training and sales - Unite Copenh...
How Volvo embraced real-time 3D and shook up the auto industry- Unite Copenha...
QA your code: The new Unity Test Framework – Unite Copenhagen 2019
Engineering.com webinar: Real-time 3D and digital twins: The power of a virtu...
Supplying scalable VR training applications with Innoactive - Unite Copenhage...
XR and real-time 3D in automotive digital marketing strategies | Visionaries ...
Real-time CG animation in Unity: unpacking the Sherman project - Unite Copenh...
Creating next-gen VR and MR experiences using Varjo VR-1 and XR-1 - Unite Cop...
What's ahead for film and animation with Unity 2020 - Unite Copenhagen 2019
How to Improve Visual Rendering Quality in VR - Unite Copenhagen 2019

Recently uploaded (20)

PDF
Machine learning based COVID-19 study performance prediction
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PPTX
Cloud computing and distributed systems.
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Electronic commerce courselecture one. Pdf
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PPTX
MYSQL Presentation for SQL database connectivity
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Encapsulation theory and applications.pdf
PDF
Encapsulation_ Review paper, used for researhc scholars
Machine learning based COVID-19 study performance prediction
“AI and Expert System Decision Support & Business Intelligence Systems”
Cloud computing and distributed systems.
The AUB Centre for AI in Media Proposal.docx
Spectral efficient network and resource selection model in 5G networks
Chapter 3 Spatial Domain Image Processing.pdf
Building Integrated photovoltaic BIPV_UPV.pdf
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Network Security Unit 5.pdf for BCA BBA.
Electronic commerce courselecture one. Pdf
Understanding_Digital_Forensics_Presentation.pptx
Unlocking AI with Model Context Protocol (MCP)
Reach Out and Touch Someone: Haptics and Empathic Computing
20250228 LYD VKU AI Blended-Learning.pptx
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
MYSQL Presentation for SQL database connectivity
Digital-Transformation-Roadmap-for-Companies.pptx
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Encapsulation theory and applications.pdf
Encapsulation_ Review paper, used for researhc scholars

Creating a third-person zombie horde shooter using DOTS – Unite Copenhagen