West Coast DevCon 2014: Engine Overview - A Programmers Glimpse at UE4

Gerke Max Preussner
Gerke Max PreussnerVideo Game Developer at Epic Games
Engine Overview
A Programmer’s Glimpse at UE4
Gerke Max Preussner
max.preussner@epicgames.com
The Big Picture
Overview
Directories
Configuration
Modules
Projects
What’s Next?
This Is Not Your Grandma’s Engine
• UE4 is pretty hot… but also huge!
• 5000+ directories, 40,000+ files
• Bazillions of lines of code
• Hundreds of modules
• Dozens of tools, thousands of features
• Centuries of man years
How To Master All This?
• Start with toes, work your way up
• Most code & content you’ll never touch
• Nobody knows everything about UE4
• But you’ll see, it’s really quite easy!
The Big Picture
Overview
Directories
Configuration
Modules
Projects
What’s Next?
Root Directory
• /Engine – All code, content & configuration for the Engine
• /MyProject – All files for the game project ‘MyProject’
• /Templates – Templates for creating new projects
Inside the /Engine and Project Directories
• /Binaries – Executables & DLLs for the Engine
• /Build – Files needed for building the Engine
• /Config – Configuration files
• /Content – Shared Engine content
• /DerivedDataCache – Cached content data files (Engine only)
• /Intermediate – Temporary build products (Engine only)
• /Plugins – Shared and project specific plug-ins
• /Saved – Autosaves, local configs, screenshots, etc.
• /Source – Source code for all the things!
The Big Picture
Overview
Directories
Configuration
Modules
Projects
What’s Next?
INI Files
• Hold class default properties
• Will be loaded into CDOs on startup
• Organized in a hierarchy
• Higher INIs override lower ones
• Organized in sections
• Key-value pairs within sections
• Important ones exposed in Editor UI
• Low-level access with FConfig
The Big Picture
Overview
Directories
Configuration
Modules
Projects
What’s Next?
INI Files
• Hold class default properties
• Will be loaded into CDOs on startup
• Organized in a hierarchy
• Higher INIs override lower ones
• Organized in sections
• Key-value pairs within sections
• Important ones exposed in Editor UI
• Low-level access with FConfig
Class Constructor
BaseXXX.ini
DefaultXXX.ini
XXX.ini
Editor & Project Settings
Sections for UObjects
• [/Script/ModuleName.ClassName]
Sections for Custom Settings
• [SectionName]
Supported Value Types
• Numeric values, strings, enums
• Structured data
• Static and dynamic arrays
Automatic serialization for UObject properties
The Big Picture
Overview
Directories
Configuration
Modules
Projects
What’s Next?
Modularity Promotes
• Reusability
• Extensibility
• Maintainability
• Decoupling
• Efficiency
Monolithic builds are
still possible though!
The Big Picture
Overview
Directories
Configuration
Modules
Projects
What’s Next?
Module Types
• Developer – Used by Editor & Programs, not Games
• Editor – Used by Unreal Editor only
• Runtime – Used by Editor, Games & Programs
• ThirdParty – External code from other companies
• Plugins – Extensions for Editor, Games, or both
• Programs – Standalone applications & tools
Module Dependency Rules
• Runtime modules must not have dependencies to Editor or
Developer modules
• Plug-in modules must not have dependencies to other plug-ins
The Big Picture
Overview
Directories
Configuration
Modules
Projects
What’s Next?
Module Type
UnrealEd App Game
Runtime √ √ √
ThirdParty √ √ √
Plugins √ √ √
Developer √ √ X
Editor √ X X
Module usage across different types of applications
The Big Picture
Overview
Directories
Configuration
Modules
Projects
What’s Next?
Important Modules for Beginners
• Core – Fundamental core types & functions
• CoreUObject – Implements the UObject sub-system
• Engine – Game classes & engine framework
• OnlineSubsystem – Online & social networking features
• Slate – Widget library & high-level UI features
The Big Picture
Overview
Directories
Configuration
Modules
Projects
What’s Next?
Interesting Modules for Advanced Programmers
• DesktopPlatform – Useful APIs for Windows, Mac & Linux
• DetailCustomizations – Editor’s Details panel customizations
• Launch – Main loop classes & functions
• Messaging – Message passing sub-system
• Sockets – Network socket implementations
• Settings – Editor & Project Settings API
• SlateCore – Fundamental UI functionality
• TargetPlatform – Platform abstraction layer
• UMG – Unreal Motion Graphics implementation
• UnrealEd – Unreal Editor main frame & features
The Big Picture
Overview
Directories
Configuration
Modules
Projects
What’s Next?
Interesting Modules for Cool Features
• Analytics – Collects usage statistics from Editor & games
• AssetRegistry – Database for assets in Unreal Editor
• GameLiveStreaming – Twitch Streaming
• HeadMountedDisplay – HMD Support API (Oculus, etc.)
• JsonUtilities & XmlParser – Handle Json & XML files
• SourceControl – API for custom source control providers
The Big Picture
Overview
Directories
Configuration
Modules
Projects
What’s Next?
Your Game Projects can…
• Use Blueprints, C++ Code or both
• Contain any number of modules & plug-ins
• Be moved around and shared with others
Project Templates to Get You Started
• Blank (with or without sample content)
• First Person Shooter
• Side scroller, top-down & puzzle games
• Flying & driving games
• They all come in Blueprint and C++ flavors
• More to come, and make your own!
Project Templates & Samples
Project Packaging & Deployment
Overview
Directories
Configuration
Modules
Projects
What’s Next?
Questions?
Documentation, Tutorials and Help at:
• AnswerHub:
• Engine Documentation:
• Official Forums:
• Community Wiki:
• YouTube Videos:
• Community IRC:
Unreal Engine 4 Roadmap
• lmgtfy.com/?q=Unreal+engine+Trello+
http://answers.unrealengine.com
http://docs.unrealengine.com
http://forums.unrealengine.com
http://wiki.unrealengine.com
http://www.youtube.com/user/UnrealDevelopmentKit
#unrealengine on FreeNode
1 of 18

Recommended

East Coast DevCon 2014: Extensibility in UE4 - Customizing Your Games and the... by
East Coast DevCon 2014: Extensibility in UE4 - Customizing Your Games and the...East Coast DevCon 2014: Extensibility in UE4 - Customizing Your Games and the...
East Coast DevCon 2014: Extensibility in UE4 - Customizing Your Games and the...Gerke Max Preussner
1.2K views17 slides
East Coast DevCon 2014: Engine Overview - A Programmer’s Glimpse at UE4 by
East Coast DevCon 2014: Engine Overview - A Programmer’s Glimpse at UE4East Coast DevCon 2014: Engine Overview - A Programmer’s Glimpse at UE4
East Coast DevCon 2014: Engine Overview - A Programmer’s Glimpse at UE4Gerke Max Preussner
1.1K views20 slides
Plug-ins & Third-Party SDKs in UE4 by
Plug-ins & Third-Party SDKs in UE4Plug-ins & Third-Party SDKs in UE4
Plug-ins & Third-Party SDKs in UE4Gerke Max Preussner
11K views75 slides
West Coast DevCon 2014: Extensibility in UE4 - Customizing Your Games and the... by
West Coast DevCon 2014: Extensibility in UE4 - Customizing Your Games and the...West Coast DevCon 2014: Extensibility in UE4 - Customizing Your Games and the...
West Coast DevCon 2014: Extensibility in UE4 - Customizing Your Games and the...Gerke Max Preussner
1.1K views16 slides
East Coast DevCon 2014: Programming in UE4 - A Quick Orientation for Coders by
East Coast DevCon 2014: Programming in UE4 - A Quick Orientation for CodersEast Coast DevCon 2014: Programming in UE4 - A Quick Orientation for Coders
East Coast DevCon 2014: Programming in UE4 - A Quick Orientation for CodersGerke Max Preussner
1.5K views24 slides
GDCE 2015: Blueprint Components to C++ by
GDCE 2015: Blueprint Components to C++GDCE 2015: Blueprint Components to C++
GDCE 2015: Blueprint Components to C++Gerke Max Preussner
2.7K views10 slides

More Related Content

What's hot

East Coast DevCon 2014: Game Programming in UE4 - Game Framework & Sample Pro... by
East Coast DevCon 2014: Game Programming in UE4 - Game Framework & Sample Pro...East Coast DevCon 2014: Game Programming in UE4 - Game Framework & Sample Pro...
East Coast DevCon 2014: Game Programming in UE4 - Game Framework & Sample Pro...Gerke Max Preussner
1.7K views23 slides
GDC Europe 2014: Unreal Engine 4 for Programmers - Lessons Learned & Things t... by
GDC Europe 2014: Unreal Engine 4 for Programmers - Lessons Learned & Things t...GDC Europe 2014: Unreal Engine 4 for Programmers - Lessons Learned & Things t...
GDC Europe 2014: Unreal Engine 4 for Programmers - Lessons Learned & Things t...Gerke Max Preussner
12.7K views138 slides
West Coast DevCon 2014: Concurrency & Parallelism in UE4 - Tips for programmi... by
West Coast DevCon 2014: Concurrency & Parallelism in UE4 - Tips for programmi...West Coast DevCon 2014: Concurrency & Parallelism in UE4 - Tips for programmi...
West Coast DevCon 2014: Concurrency & Parallelism in UE4 - Tips for programmi...Gerke Max Preussner
1.3K views17 slides
West Coast DevCon 2014: Build Automation - Epic’s Build Tools & Infrastructure by
West Coast DevCon 2014: Build Automation - Epic’s Build Tools & InfrastructureWest Coast DevCon 2014: Build Automation - Epic’s Build Tools & Infrastructure
West Coast DevCon 2014: Build Automation - Epic’s Build Tools & InfrastructureGerke Max Preussner
2K views17 slides
West Coast DevCon 2014: The Slate UI Framework (Part 1) - Introduction by
West Coast DevCon 2014: The Slate UI Framework (Part 1) - IntroductionWest Coast DevCon 2014: The Slate UI Framework (Part 1) - Introduction
West Coast DevCon 2014: The Slate UI Framework (Part 1) - IntroductionGerke Max Preussner
2.1K views18 slides
West Coast DevCon 2014: Programming in UE4 - A Quick Orientation for Coders by
West Coast DevCon 2014: Programming in UE4 - A Quick Orientation for CodersWest Coast DevCon 2014: Programming in UE4 - A Quick Orientation for Coders
West Coast DevCon 2014: Programming in UE4 - A Quick Orientation for CodersGerke Max Preussner
1K views20 slides

What's hot(20)

East Coast DevCon 2014: Game Programming in UE4 - Game Framework & Sample Pro... by Gerke Max Preussner
East Coast DevCon 2014: Game Programming in UE4 - Game Framework & Sample Pro...East Coast DevCon 2014: Game Programming in UE4 - Game Framework & Sample Pro...
East Coast DevCon 2014: Game Programming in UE4 - Game Framework & Sample Pro...
Gerke Max Preussner1.7K views
GDC Europe 2014: Unreal Engine 4 for Programmers - Lessons Learned & Things t... by Gerke Max Preussner
GDC Europe 2014: Unreal Engine 4 for Programmers - Lessons Learned & Things t...GDC Europe 2014: Unreal Engine 4 for Programmers - Lessons Learned & Things t...
GDC Europe 2014: Unreal Engine 4 for Programmers - Lessons Learned & Things t...
Gerke Max Preussner12.7K views
West Coast DevCon 2014: Concurrency & Parallelism in UE4 - Tips for programmi... by Gerke Max Preussner
West Coast DevCon 2014: Concurrency & Parallelism in UE4 - Tips for programmi...West Coast DevCon 2014: Concurrency & Parallelism in UE4 - Tips for programmi...
West Coast DevCon 2014: Concurrency & Parallelism in UE4 - Tips for programmi...
Gerke Max Preussner1.3K views
West Coast DevCon 2014: Build Automation - Epic’s Build Tools & Infrastructure by Gerke Max Preussner
West Coast DevCon 2014: Build Automation - Epic’s Build Tools & InfrastructureWest Coast DevCon 2014: Build Automation - Epic’s Build Tools & Infrastructure
West Coast DevCon 2014: Build Automation - Epic’s Build Tools & Infrastructure
West Coast DevCon 2014: The Slate UI Framework (Part 1) - Introduction by Gerke Max Preussner
West Coast DevCon 2014: The Slate UI Framework (Part 1) - IntroductionWest Coast DevCon 2014: The Slate UI Framework (Part 1) - Introduction
West Coast DevCon 2014: The Slate UI Framework (Part 1) - Introduction
Gerke Max Preussner2.1K views
West Coast DevCon 2014: Programming in UE4 - A Quick Orientation for Coders by Gerke Max Preussner
West Coast DevCon 2014: Programming in UE4 - A Quick Orientation for CodersWest Coast DevCon 2014: Programming in UE4 - A Quick Orientation for Coders
West Coast DevCon 2014: Programming in UE4 - A Quick Orientation for Coders
West Coast DevCon 2014: Game Programming in UE4 - Game Framework & Sample Pro... by Gerke Max Preussner
West Coast DevCon 2014: Game Programming in UE4 - Game Framework & Sample Pro...West Coast DevCon 2014: Game Programming in UE4 - Game Framework & Sample Pro...
West Coast DevCon 2014: Game Programming in UE4 - Game Framework & Sample Pro...
Gerke Max Preussner1.5K views
West Coast DevCon 2014: The Slate UI Framework (Part 2) - Game UI & Unreal Mo... by Gerke Max Preussner
West Coast DevCon 2014: The Slate UI Framework (Part 2) - Game UI & Unreal Mo...West Coast DevCon 2014: The Slate UI Framework (Part 2) - Game UI & Unreal Mo...
West Coast DevCon 2014: The Slate UI Framework (Part 2) - Game UI & Unreal Mo...
East Coast DevCon 2014: The Slate UI Framework - Architecture & Tools by Gerke Max Preussner
East Coast DevCon 2014: The Slate UI Framework - Architecture & ToolsEast Coast DevCon 2014: The Slate UI Framework - Architecture & Tools
East Coast DevCon 2014: The Slate UI Framework - Architecture & Tools
Gerke Max Preussner2.5K views
From Unity3D to Unreal Engine 4 by Martin Pernica
From Unity3D to Unreal Engine 4From Unity3D to Unreal Engine 4
From Unity3D to Unreal Engine 4
Martin Pernica5.8K views
Unreal Engine 4 Introduction by Sperasoft
Unreal Engine 4 IntroductionUnreal Engine 4 Introduction
Unreal Engine 4 Introduction
Sperasoft7.9K views
Endless runner game in unreal engine 4 by Vasilis Kamakaris
Endless runner game in unreal engine 4Endless runner game in unreal engine 4
Endless runner game in unreal engine 4
Vasilis Kamakaris1.8K views
Project Soundtracks - Competitors Assessment + Roadmap by Levente Dudas
Project Soundtracks - Competitors Assessment + RoadmapProject Soundtracks - Competitors Assessment + Roadmap
Project Soundtracks - Competitors Assessment + Roadmap
Levente Dudas29 views
Developing Success in Mobile with Unreal Engine 4 | David Stelzer by Jessica Tams
Developing Success in Mobile with Unreal Engine 4 | David StelzerDeveloping Success in Mobile with Unreal Engine 4 | David Stelzer
Developing Success in Mobile with Unreal Engine 4 | David Stelzer
Jessica Tams1.2K views
Game Programming - Cloud Development by Nick Pruehs
Game Programming - Cloud DevelopmentGame Programming - Cloud Development
Game Programming - Cloud Development
Nick Pruehs490 views
【Unite 2017 Tokyo】スクリプタブル・レンダーパイプラインのカスタマイズと拡張 by Unite2017Tokyo
【Unite 2017 Tokyo】スクリプタブル・レンダーパイプラインのカスタマイズと拡張【Unite 2017 Tokyo】スクリプタブル・レンダーパイプラインのカスタマイズと拡張
【Unite 2017 Tokyo】スクリプタブル・レンダーパイプラインのカスタマイズと拡張
Unite2017Tokyo23.8K views
DevOps: What is This Puppet You Speak Of? by Rob Reynolds
DevOps: What is This Puppet You Speak Of?DevOps: What is This Puppet You Speak Of?
DevOps: What is This Puppet You Speak Of?
Rob Reynolds699 views
.NET MeetUp Prague 2017 - Challenges of Managing CoreFX repo -- Karel Zikmund by Karel Zikmund
.NET MeetUp Prague 2017 - Challenges of Managing CoreFX repo -- Karel Zikmund.NET MeetUp Prague 2017 - Challenges of Managing CoreFX repo -- Karel Zikmund
.NET MeetUp Prague 2017 - Challenges of Managing CoreFX repo -- Karel Zikmund
Karel Zikmund231 views
.NET Fringe 2017 - Challenges of Managing CoreFX repo -- Karel Zikmund by Karel Zikmund
.NET Fringe 2017 - Challenges of Managing CoreFX repo -- Karel Zikmund.NET Fringe 2017 - Challenges of Managing CoreFX repo -- Karel Zikmund
.NET Fringe 2017 - Challenges of Managing CoreFX repo -- Karel Zikmund
Karel Zikmund166 views

Similar to West Coast DevCon 2014: Engine Overview - A Programmers Glimpse at UE4

Innovations in Sencha Tooling and Framework by
Innovations in Sencha Tooling and FrameworkInnovations in Sencha Tooling and Framework
Innovations in Sencha Tooling and FrameworkSandeep Adwankar
110 views72 slides
Modular PHP Development using CodeIgniter Bonfire by
Modular PHP Development using CodeIgniter BonfireModular PHP Development using CodeIgniter Bonfire
Modular PHP Development using CodeIgniter BonfireJeff Fox
22.7K views39 slides
Ch1Ch2Sept10.pdf by
Ch1Ch2Sept10.pdfCh1Ch2Sept10.pdf
Ch1Ch2Sept10.pdfSamSami69
4 views17 slides
DevOps Supercharged with Docker on Exadata by
DevOps Supercharged with Docker on ExadataDevOps Supercharged with Docker on Exadata
DevOps Supercharged with Docker on ExadataMarketingArrowECS_CZ
983 views27 slides
Anna Fedoruk.Theworkflow.DrupalCamp Kyiv 2011 by
Anna Fedoruk.Theworkflow.DrupalCamp Kyiv 2011Anna Fedoruk.Theworkflow.DrupalCamp Kyiv 2011
Anna Fedoruk.Theworkflow.DrupalCamp Kyiv 2011camp_drupal_ua
1.1K views32 slides
Domain Specific Development using T4 by
Domain Specific Development using T4Domain Specific Development using T4
Domain Specific Development using T4Joubin Najmaie
1.1K views46 slides

Similar to West Coast DevCon 2014: Engine Overview - A Programmers Glimpse at UE4(20)

Innovations in Sencha Tooling and Framework by Sandeep Adwankar
Innovations in Sencha Tooling and FrameworkInnovations in Sencha Tooling and Framework
Innovations in Sencha Tooling and Framework
Sandeep Adwankar110 views
Modular PHP Development using CodeIgniter Bonfire by Jeff Fox
Modular PHP Development using CodeIgniter BonfireModular PHP Development using CodeIgniter Bonfire
Modular PHP Development using CodeIgniter Bonfire
Jeff Fox22.7K views
Ch1Ch2Sept10.pdf by SamSami69
Ch1Ch2Sept10.pdfCh1Ch2Sept10.pdf
Ch1Ch2Sept10.pdf
SamSami694 views
Anna Fedoruk.Theworkflow.DrupalCamp Kyiv 2011 by camp_drupal_ua
Anna Fedoruk.Theworkflow.DrupalCamp Kyiv 2011Anna Fedoruk.Theworkflow.DrupalCamp Kyiv 2011
Anna Fedoruk.Theworkflow.DrupalCamp Kyiv 2011
camp_drupal_ua1.1K views
Domain Specific Development using T4 by Joubin Najmaie
Domain Specific Development using T4Domain Specific Development using T4
Domain Specific Development using T4
Joubin Najmaie1.1K views
Shift Remote AI: Behind the Scenes Development in an AI Company - Matija Ilij... by Shift Conference
Shift Remote AI: Behind the Scenes Development in an AI Company - Matija Ilij...Shift Remote AI: Behind the Scenes Development in an AI Company - Matija Ilij...
Shift Remote AI: Behind the Scenes Development in an AI Company - Matija Ilij...
Shift Conference91 views
Shift Remote: AI: Behind the scenes development in an AI company - Matija Ili... by Shift Conference
Shift Remote: AI: Behind the scenes development in an AI company - Matija Ili...Shift Remote: AI: Behind the scenes development in an AI company - Matija Ili...
Shift Remote: AI: Behind the scenes development in an AI company - Matija Ili...
Shift Conference36 views
Visual studio 2012 - What's in it for me? by Jeff Bramwell
Visual studio 2012 - What's in it for me?Visual studio 2012 - What's in it for me?
Visual studio 2012 - What's in it for me?
Jeff Bramwell1.9K views
Dot net Online Training | .Net Training and Placement online by Garuda Trainings
Dot net Online Training | .Net Training and Placement onlineDot net Online Training | .Net Training and Placement online
Dot net Online Training | .Net Training and Placement online
Garuda Trainings3.8K views
Chapter 7 by carnillr
Chapter 7 Chapter 7
Chapter 7
carnillr7.4K views
Entity Framework Core 1.0 by Senthil Kumar
Entity Framework Core 1.0Entity Framework Core 1.0
Entity Framework Core 1.0
Senthil Kumar1.5K views
Why Upgrade to v8.6? by BillCavaUs
Why Upgrade to v8.6?Why Upgrade to v8.6?
Why Upgrade to v8.6?
BillCavaUs850 views
Resources for Navigating Drupal Upgrades: Versions 6 Through 8 And What It Me... by Steve Kessler
Resources for Navigating Drupal Upgrades: Versions 6 Through 8 And What It Me...Resources for Navigating Drupal Upgrades: Versions 6 Through 8 And What It Me...
Resources for Navigating Drupal Upgrades: Versions 6 Through 8 And What It Me...
Steve Kessler630 views
Container Orchestration for .NET Developers by Mike Melusky
Container Orchestration for .NET DevelopersContainer Orchestration for .NET Developers
Container Orchestration for .NET Developers
Mike Melusky455 views
Alfresco Summit 2014 - Crafter CMS - Case European Bank by Piergiorgio Lucidi
Alfresco Summit 2014 - Crafter CMS - Case European BankAlfresco Summit 2014 - Crafter CMS - Case European Bank
Alfresco Summit 2014 - Crafter CMS - Case European Bank
Piergiorgio Lucidi1.7K views
DevOpsCon 2015 - DevOps in Mobile Games by Andreas Katzig
DevOpsCon 2015 - DevOps in Mobile GamesDevOpsCon 2015 - DevOps in Mobile Games
DevOpsCon 2015 - DevOps in Mobile Games
Andreas Katzig190 views

Recently uploaded

The Era of Large Language Models.pptx by
The Era of Large Language Models.pptxThe Era of Large Language Models.pptx
The Era of Large Language Models.pptxAbdulVahedShaik
7 views9 slides
Navigating container technology for enhanced security by Niklas Saari by
Navigating container technology for enhanced security by Niklas SaariNavigating container technology for enhanced security by Niklas Saari
Navigating container technology for enhanced security by Niklas SaariMetosin Oy
14 views34 slides
Dev-HRE-Ops - Addressing the _Last Mile DevOps Challenge_ in Highly Regulated... by
Dev-HRE-Ops - Addressing the _Last Mile DevOps Challenge_ in Highly Regulated...Dev-HRE-Ops - Addressing the _Last Mile DevOps Challenge_ in Highly Regulated...
Dev-HRE-Ops - Addressing the _Last Mile DevOps Challenge_ in Highly Regulated...TomHalpin9
6 views29 slides
Flask-Python.pptx by
Flask-Python.pptxFlask-Python.pptx
Flask-Python.pptxTriloki Gupta
7 views12 slides
Top-5-production-devconMunich-2023.pptx by
Top-5-production-devconMunich-2023.pptxTop-5-production-devconMunich-2023.pptx
Top-5-production-devconMunich-2023.pptxTier1 app
8 views40 slides
nintendo_64.pptx by
nintendo_64.pptxnintendo_64.pptx
nintendo_64.pptxpaiga02016
5 views7 slides

Recently uploaded(20)

Navigating container technology for enhanced security by Niklas Saari by Metosin Oy
Navigating container technology for enhanced security by Niklas SaariNavigating container technology for enhanced security by Niklas Saari
Navigating container technology for enhanced security by Niklas Saari
Metosin Oy14 views
Dev-HRE-Ops - Addressing the _Last Mile DevOps Challenge_ in Highly Regulated... by TomHalpin9
Dev-HRE-Ops - Addressing the _Last Mile DevOps Challenge_ in Highly Regulated...Dev-HRE-Ops - Addressing the _Last Mile DevOps Challenge_ in Highly Regulated...
Dev-HRE-Ops - Addressing the _Last Mile DevOps Challenge_ in Highly Regulated...
TomHalpin96 views
Top-5-production-devconMunich-2023.pptx by Tier1 app
Top-5-production-devconMunich-2023.pptxTop-5-production-devconMunich-2023.pptx
Top-5-production-devconMunich-2023.pptx
Tier1 app8 views
DRYiCE™ iAutomate: AI-enhanced Intelligent Runbook Automation by HCLSoftware
DRYiCE™ iAutomate: AI-enhanced Intelligent Runbook AutomationDRYiCE™ iAutomate: AI-enhanced Intelligent Runbook Automation
DRYiCE™ iAutomate: AI-enhanced Intelligent Runbook Automation
HCLSoftware6 views
Dev-Cloud Conference 2023 - Continuous Deployment Showdown: Traditionelles CI... by Marc Müller
Dev-Cloud Conference 2023 - Continuous Deployment Showdown: Traditionelles CI...Dev-Cloud Conference 2023 - Continuous Deployment Showdown: Traditionelles CI...
Dev-Cloud Conference 2023 - Continuous Deployment Showdown: Traditionelles CI...
Marc Müller42 views
20231129 - Platform @ localhost 2023 - Application-driven infrastructure with... by sparkfabrik
20231129 - Platform @ localhost 2023 - Application-driven infrastructure with...20231129 - Platform @ localhost 2023 - Application-driven infrastructure with...
20231129 - Platform @ localhost 2023 - Application-driven infrastructure with...
sparkfabrik8 views
predicting-m3-devopsconMunich-2023.pptx by Tier1 app
predicting-m3-devopsconMunich-2023.pptxpredicting-m3-devopsconMunich-2023.pptx
predicting-m3-devopsconMunich-2023.pptx
Tier1 app7 views
360 graden fabriek by info33492
360 graden fabriek360 graden fabriek
360 graden fabriek
info33492143 views
Dapr Unleashed: Accelerating Microservice Development by Miroslav Janeski
Dapr Unleashed: Accelerating Microservice DevelopmentDapr Unleashed: Accelerating Microservice Development
Dapr Unleashed: Accelerating Microservice Development
Miroslav Janeski12 views
Ports-and-Adapters Architecture for Embedded HMI by Burkhard Stubert
Ports-and-Adapters Architecture for Embedded HMIPorts-and-Adapters Architecture for Embedded HMI
Ports-and-Adapters Architecture for Embedded HMI
Burkhard Stubert26 views
Sprint 226 by ManageIQ
Sprint 226Sprint 226
Sprint 226
ManageIQ10 views

West Coast DevCon 2014: Engine Overview - A Programmers Glimpse at UE4

  • 1. Engine Overview A Programmer’s Glimpse at UE4 Gerke Max Preussner max.preussner@epicgames.com
  • 2. The Big Picture Overview Directories Configuration Modules Projects What’s Next? This Is Not Your Grandma’s Engine • UE4 is pretty hot… but also huge! • 5000+ directories, 40,000+ files • Bazillions of lines of code • Hundreds of modules • Dozens of tools, thousands of features • Centuries of man years How To Master All This? • Start with toes, work your way up • Most code & content you’ll never touch • Nobody knows everything about UE4 • But you’ll see, it’s really quite easy!
  • 3. The Big Picture Overview Directories Configuration Modules Projects What’s Next? Root Directory • /Engine – All code, content & configuration for the Engine • /MyProject – All files for the game project ‘MyProject’ • /Templates – Templates for creating new projects Inside the /Engine and Project Directories • /Binaries – Executables & DLLs for the Engine • /Build – Files needed for building the Engine • /Config – Configuration files • /Content – Shared Engine content • /DerivedDataCache – Cached content data files (Engine only) • /Intermediate – Temporary build products (Engine only) • /Plugins – Shared and project specific plug-ins • /Saved – Autosaves, local configs, screenshots, etc. • /Source – Source code for all the things!
  • 4. The Big Picture Overview Directories Configuration Modules Projects What’s Next? INI Files • Hold class default properties • Will be loaded into CDOs on startup • Organized in a hierarchy • Higher INIs override lower ones • Organized in sections • Key-value pairs within sections • Important ones exposed in Editor UI • Low-level access with FConfig
  • 5. The Big Picture Overview Directories Configuration Modules Projects What’s Next? INI Files • Hold class default properties • Will be loaded into CDOs on startup • Organized in a hierarchy • Higher INIs override lower ones • Organized in sections • Key-value pairs within sections • Important ones exposed in Editor UI • Low-level access with FConfig Class Constructor BaseXXX.ini DefaultXXX.ini XXX.ini
  • 6. Editor & Project Settings
  • 7. Sections for UObjects • [/Script/ModuleName.ClassName] Sections for Custom Settings • [SectionName] Supported Value Types • Numeric values, strings, enums • Structured data • Static and dynamic arrays Automatic serialization for UObject properties
  • 8. The Big Picture Overview Directories Configuration Modules Projects What’s Next? Modularity Promotes • Reusability • Extensibility • Maintainability • Decoupling • Efficiency Monolithic builds are still possible though!
  • 9. The Big Picture Overview Directories Configuration Modules Projects What’s Next? Module Types • Developer – Used by Editor & Programs, not Games • Editor – Used by Unreal Editor only • Runtime – Used by Editor, Games & Programs • ThirdParty – External code from other companies • Plugins – Extensions for Editor, Games, or both • Programs – Standalone applications & tools Module Dependency Rules • Runtime modules must not have dependencies to Editor or Developer modules • Plug-in modules must not have dependencies to other plug-ins
  • 10. The Big Picture Overview Directories Configuration Modules Projects What’s Next? Module Type UnrealEd App Game Runtime √ √ √ ThirdParty √ √ √ Plugins √ √ √ Developer √ √ X Editor √ X X Module usage across different types of applications
  • 11. The Big Picture Overview Directories Configuration Modules Projects What’s Next? Important Modules for Beginners • Core – Fundamental core types & functions • CoreUObject – Implements the UObject sub-system • Engine – Game classes & engine framework • OnlineSubsystem – Online & social networking features • Slate – Widget library & high-level UI features
  • 12. The Big Picture Overview Directories Configuration Modules Projects What’s Next? Interesting Modules for Advanced Programmers • DesktopPlatform – Useful APIs for Windows, Mac & Linux • DetailCustomizations – Editor’s Details panel customizations • Launch – Main loop classes & functions • Messaging – Message passing sub-system • Sockets – Network socket implementations • Settings – Editor & Project Settings API • SlateCore – Fundamental UI functionality • TargetPlatform – Platform abstraction layer • UMG – Unreal Motion Graphics implementation • UnrealEd – Unreal Editor main frame & features
  • 13. The Big Picture Overview Directories Configuration Modules Projects What’s Next? Interesting Modules for Cool Features • Analytics – Collects usage statistics from Editor & games • AssetRegistry – Database for assets in Unreal Editor • GameLiveStreaming – Twitch Streaming • HeadMountedDisplay – HMD Support API (Oculus, etc.) • JsonUtilities & XmlParser – Handle Json & XML files • SourceControl – API for custom source control providers
  • 14. The Big Picture Overview Directories Configuration Modules Projects What’s Next? Your Game Projects can… • Use Blueprints, C++ Code or both • Contain any number of modules & plug-ins • Be moved around and shared with others Project Templates to Get You Started • Blank (with or without sample content) • First Person Shooter • Side scroller, top-down & puzzle games • Flying & driving games • They all come in Blueprint and C++ flavors • More to come, and make your own!
  • 16. Project Packaging & Deployment
  • 18. Questions? Documentation, Tutorials and Help at: • AnswerHub: • Engine Documentation: • Official Forums: • Community Wiki: • YouTube Videos: • Community IRC: Unreal Engine 4 Roadmap • lmgtfy.com/?q=Unreal+engine+Trello+ http://answers.unrealengine.com http://docs.unrealengine.com http://forums.unrealengine.com http://wiki.unrealengine.com http://www.youtube.com/user/UnrealDevelopmentKit #unrealengine on FreeNode

Editor's Notes

  1. Prepared and presented by Gerke Max Preussner for West Coast MiniDevCon 2014, July 21-24th Email max.preussner@epicgames.com in case of comments, questions or suggestions or visit our AnswerHub at http://answers.unrealengine.com
  2. Unreal Engine has been developed over a period of over 20 years and contains code and content from hundreds of developers. The result is an unprecedented feature set for game development, but also a very large number of things to learn. Despite the large number of components and concepts, you should find it relatively easy to get started. We have put a lot of effort into hierarchically organizing everything, so that the Engine as a whole is really just a big collection of simple parts.
  3. The very first things you will encounter after downloading Unreal Engine 4 are the various directories on your hard drive. Most of the files are located within the Engine directory, which contains everything needed to make and run games. Over time, you will add your own directories, one for each project you are creating.
  4. After looking at a few sample projects and perhaps creating your own first project, you may wonder how the Engine knows what to load and what to do. The answer to this are configuration files – we call them INIs. Many systems, such as the Engine, the Editor and games have their own INI file stack.
  5. There is not just one INI file, but multiple ones that are stacked hierarchically.
  6. In previous versions of Unreal Engine, users had to modify INI files quite frequently. This was tedious and error prone. In Unreal Engine 4 we are making a big push to expose all the important settings directly in the Editor. We hope that, in the future, users will no longer have to edit INI files directly.
  7. For some very advanced settings you may still have to edit the INI files directly. It cannot hurt to familiarize yourself with the syntax. Here you can see a portion of the BaseGame.ini file. The different types of sections and key-value pairs are easily recognized.
  8. In previous versions of Unreal Engine all code was split into a small number of DLLs. Each DLL had a large number of responsibilities, which lead to a lot of very tightly coupled code that was difficult to maintain and extend. For Unreal Engine 4 we have rewritten large parts of the code base from scratch and reorganized it into hundreds of modules, each of which has one particular purpose. Modules are still compiled into DLLs, but they can also still be compiled into one large monolithic binary. The important point is that the code base is now much more organized and easier to use.
  9. We split our modules into various categories. Modules that are used by the Engine can be found in the Runtime directory. Modules that are used to build the Editor can be found in the Editor directory. We also have some standalone programs, which share their modules with the Editor. Those modules are located in the Developer directory. One important convention to remember is that Runtime modules must not have any dependencies to Developer or Editor modules.
  10. Like I said, there are now hundreds of modules in the code base, but you only need to know a few of them. When you first begin programming with Unreal Engine, you will frequently use features from Core, CoreUObject, Engine and Slate. Nearly all other modules in the code base are built on top of one or more of these.
  11. Once you are more familiar with programming games and tools for Unreal Engine, you may also be interested in other more advanced modules. Most of the remaining modules in the code base implement features for Unreal Editor. You can use them as a learning resource for implementing your own plug-ins and applications.
  12. There are also several modules that will make it easier for you to add cool new features to the Editor or your game. We recently added the GameLiveStreaming module, which allows your users to stream their game play to Twitch. There is also a module for 3D Head Mounted Display support – the Oculus plug-in uses it to add Oculus support to the Engine. There are also various utility modules, such as Json and XML helpers.
  13. All these modules are used in the Engine, the Editor and our tools. However, you will actually spend most of your time in your own projects. Projects are really easy to create in Unreal Engine 4. We provide a number of both Blueprint and C++ project samples for various types of games. More templates will be added over time, and you can even add your own.
  14. Here you can see the project template browser and the sample project browser.
  15. When your project is ready for testing, you can cook, package and deploy it. Cooking is the process of optimizing your game’s content for the desired target platforms. Packaging will arrange all content files and binaries in a way that is best for the target device, usually a .pak file. Deployment is the process of getting your packaged files onto the device. Cooking and packaging each time is very time consuming. We recommend that you use the Quick Launch feature instead, which utilizes Cook-On-The-Fly.
  16. Of course, ten minutes is not even remotely enough to introduce you to all the components of the Engine. We have prepared a number of other talks for today that will provide more detail on various topics.
  17. Make sure to check out our extensive documentation on the internet!