GDCE 2015: Blueprint Components to C++

Gerke Max Preussner
Gerke Max PreussnerVideo Game Developer at Epic Games
UE4 COMPONENT DESIGN:
FROM BLUEPRINT PROTOTYPE TO C++
Zak Parrish
zak.parrish@epicgames.com
Gerke Max Preussner
max.preussner@epicgames.com
Overview
● Key Terms and Concepts
○ UE4’s Framework (High Level)
■ Actors & Components
○ What is Blueprint?
● Prototyping a Custom Component using Blueprint
○ Where to begin
○ Building our first component (Hover Component)
● Converting to C++
○ Deconstructing artist’s intent
○ Adding code to project
○ Replacing Blueprint asset with native version
UE4 Framework at a Glance
● Object
○ Engine’s highest-level base class
■ In C++, UObject is the base of all classes
○ Lots of “under-the-hood” functionality
■ Garbage collection
■ Metadata (UProperty)
■ Support for exposing variables to the Editor
■ Serialization
■ Loading and Saving
○ Just about everything in Unreal inherits from (or gets some functionality from) Object
UE4 Framework at a Glance
● Actor
○ Inherits from Object
■ C++ class is AActor
○ Used for anything that is placed in your game’s world
○ Supports 3D transformations
■ Position
■ Rotation
■ Scale
○ There are many Actor types included with the Engine
■ If it is actually in your game, it’s probably some kind of actor
■ Characters, meshes, lights, particle systems… just about everything.
UE4 Framework at a Glance
● Component
○ Inherits from Object
■ C++ class is UActorComponent
○ The “building blocks” of Actors
○ Self-contained piece of modular functionality
○ Can be added to or removed from any Actor
And best of all…
YOU CAN MAKE THEM IN BLUEPRINT!
What is Blueprint?
● Powerful visual scripting language
● Tailored to artists, visual people
● Solves communication problems
between artists and programmers
● Allows you to create compiled script
using nodes and wires instead of
code
● Includes a variety of real-time
debugging features
Blueprint vs. C++
● Blueprint is great for fast iteration!
● Blueprint has lower performance than native C++
○ Runs on its own VM layer
○ Approximately 8-10x slower than native code
○ For most simple event-based game tasks, you probably won’t notice
○ Many AAA games are using Blueprint in shipping titles (incl. Epic!)
○ Anything running on every frame (tick) should probably be native (physics calculations)
● Still, Blueprint is excellent for prototyping!
○ Often faster for a designer to create what they want in Blueprint, then let a programmer
convert it to code
○ This is how we often use Blueprint at Epic
And now...
a demonstration!
Yay!
Conclusion
● Blueprint makes it easy for visual developers to implement ideas!
● The nature of the graph makes it easy for programmers to reproduce (and optimize!)
● Code can be added to any project right inside the Editor
● Faster collaboration, clearer communication
Questions?
1 of 10

Recommended

FMX 2017: Extending Unreal Engine 4 with Plug-ins (Master Class) by
FMX 2017: Extending Unreal Engine 4 with Plug-ins (Master Class)FMX 2017: Extending Unreal Engine 4 with Plug-ins (Master Class)
FMX 2017: Extending Unreal Engine 4 with Plug-ins (Master Class)Gerke Max Preussner
7.4K views62 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: Engine Overview - A Programmers Glimpse at UE4 by
West Coast DevCon 2014: Engine Overview - A Programmers Glimpse at UE4West Coast DevCon 2014: Engine Overview - A Programmers Glimpse at UE4
West Coast DevCon 2014: Engine Overview - A Programmers Glimpse at UE4Gerke Max Preussner
1.1K views18 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
West Coast DevCon 2014: The Slate UI Framework (Part 2) - Game UI & Unreal Mo... by
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...Gerke Max Preussner
2K views22 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

More Related Content

What's hot

West Coast DevCon 2014: Game Programming in UE4 - Game Framework & Sample Pro... by
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 Preussner
1.5K views19 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
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
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
East Coast DevCon 2014: The Slate UI Framework - Architecture & Tools by
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 & ToolsGerke Max Preussner
2.5K views24 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

What's hot(20)

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
East Coast DevCon 2014: Engine Overview - A Programmer’s Glimpse at UE4 by Gerke Max Preussner
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 UE4
Gerke Max Preussner1.1K views
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
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
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
East Coast DevCon 2014: Concurrency & Parallelism in UE4 - Tips for programmi... by Gerke Max Preussner
East Coast DevCon 2014: Concurrency & Parallelism in UE4 - Tips for programmi...East Coast DevCon 2014: Concurrency & Parallelism in UE4 - Tips for programmi...
East Coast DevCon 2014: Concurrency & Parallelism in UE4 - Tips for programmi...
Gerke Max Preussner2.7K 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
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
Future of unreal by Ning Hu
Future of unreal Future of unreal
Future of unreal
Ning Hu842 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
Unreal Engine 4 Introduction by Sperasoft
Unreal Engine 4 IntroductionUnreal Engine 4 Introduction
Unreal Engine 4 Introduction
Sperasoft7.9K 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
2D Endless Runner in Unity for Mobile - GDG DevFest Istanbul 2014 by Murat Gürel
2D Endless Runner in Unity for Mobile - GDG DevFest Istanbul 20142D Endless Runner in Unity for Mobile - GDG DevFest Istanbul 2014
2D Endless Runner in Unity for Mobile - GDG DevFest Istanbul 2014
Murat Gürel2.7K views
Game Programming - Cloud Development by Nick Pruehs
Game Programming - Cloud DevelopmentGame Programming - Cloud Development
Game Programming - Cloud Development
Nick Pruehs489 views
Unreal Engine (For Creating Games) Presentation by Nitin Sharma
Unreal Engine (For Creating Games) PresentationUnreal Engine (For Creating Games) Presentation
Unreal Engine (For Creating Games) Presentation
Nitin Sharma5.7K views
【Unite 2017 Tokyo】スクリプタブル・レンダーパイプラインのカスタマイズと拡張 by Unite2017Tokyo
【Unite 2017 Tokyo】スクリプタブル・レンダーパイプラインのカスタマイズと拡張【Unite 2017 Tokyo】スクリプタブル・レンダーパイプラインのカスタマイズと拡張
【Unite 2017 Tokyo】スクリプタブル・レンダーパイプラインのカスタマイズと拡張
Unite2017Tokyo23.8K views
Phaser Workshop Internet World 2014 by Alvinsight
Phaser Workshop Internet World 2014Phaser Workshop Internet World 2014
Phaser Workshop Internet World 2014
Alvinsight1K views
【Unite 2017 Tokyo】VRコンテンツを気持ちよくプレイさせるためのUI実装ガイド by Unite2017Tokyo
【Unite 2017 Tokyo】VRコンテンツを気持ちよくプレイさせるためのUI実装ガイド【Unite 2017 Tokyo】VRコンテンツを気持ちよくプレイさせるためのUI実装ガイド
【Unite 2017 Tokyo】VRコンテンツを気持ちよくプレイさせるためのUI実装ガイド
Unite2017Tokyo3.8K views

Similar to GDCE 2015: Blueprint Components to C++

How to build Kick Ass Games in the Cloud by
How to build Kick Ass Games in the CloudHow to build Kick Ass Games in the Cloud
How to build Kick Ass Games in the CloudChris Schalk
4.7K views45 slides
Green Custard Friday Talk 22: Flutter by
Green Custard Friday Talk 22: FlutterGreen Custard Friday Talk 22: Flutter
Green Custard Friday Talk 22: FlutterGreen Custard
249 views15 slides
Power of WebGL (FSTO 2014) by
Power of WebGL (FSTO 2014)Power of WebGL (FSTO 2014)
Power of WebGL (FSTO 2014)Verold
1.8K views37 slides
Introduction to Computing on GPU by
Introduction to Computing on GPUIntroduction to Computing on GPU
Introduction to Computing on GPUIlya Kuzovkin
1.1K views71 slides
Baiscs of OpenGL by
Baiscs of OpenGLBaiscs of OpenGL
Baiscs of OpenGLMrinmoy Dalal
1.2K views21 slides
Powering machine learning workflows with Apache Airflow and Python by
Powering machine learning workflows with Apache Airflow and PythonPowering machine learning workflows with Apache Airflow and Python
Powering machine learning workflows with Apache Airflow and PythonTatiana Al-Chueyr
1.4K views81 slides

Similar to GDCE 2015: Blueprint Components to C++(20)

How to build Kick Ass Games in the Cloud by Chris Schalk
How to build Kick Ass Games in the CloudHow to build Kick Ass Games in the Cloud
How to build Kick Ass Games in the Cloud
Chris Schalk4.7K views
Green Custard Friday Talk 22: Flutter by Green Custard
Green Custard Friday Talk 22: FlutterGreen Custard Friday Talk 22: Flutter
Green Custard Friday Talk 22: Flutter
Green Custard249 views
Power of WebGL (FSTO 2014) by Verold
Power of WebGL (FSTO 2014)Power of WebGL (FSTO 2014)
Power of WebGL (FSTO 2014)
Verold1.8K views
Introduction to Computing on GPU by Ilya Kuzovkin
Introduction to Computing on GPUIntroduction to Computing on GPU
Introduction to Computing on GPU
Ilya Kuzovkin1.1K views
Powering machine learning workflows with Apache Airflow and Python by Tatiana Al-Chueyr
Powering machine learning workflows with Apache Airflow and PythonPowering machine learning workflows with Apache Airflow and Python
Powering machine learning workflows with Apache Airflow and Python
Tatiana Al-Chueyr1.4K views
Oh the compilers you'll build by Mark Stoodley
Oh the compilers you'll buildOh the compilers you'll build
Oh the compilers you'll build
Mark Stoodley592 views
GDD 2011 - How to build kick ass video games for the cloud by Chris Schalk
GDD 2011 - How to build kick ass video games for the cloudGDD 2011 - How to build kick ass video games for the cloud
GDD 2011 - How to build kick ass video games for the cloud
Chris Schalk1.5K views
Данило Ульянич “C89 OpenGL for ARM microcontrollers on Cortex-M. Basic functi... by Lviv Startup Club
Данило Ульянич “C89 OpenGL for ARM microcontrollers on Cortex-M. Basic functi...Данило Ульянич “C89 OpenGL for ARM microcontrollers on Cortex-M. Basic functi...
Данило Ульянич “C89 OpenGL for ARM microcontrollers on Cortex-M. Basic functi...
Lviv Startup Club223 views
3D Programming Basics: WebGL by Globant
3D Programming Basics: WebGL3D Programming Basics: WebGL
3D Programming Basics: WebGL
Globant183 views
Summer Internship Project - Remote Render by Yen-Kuan Wu
Summer Internship Project - Remote RenderSummer Internship Project - Remote Render
Summer Internship Project - Remote Render
Yen-Kuan Wu267 views
Continuous Delivery: 5 years later (Incontro DevOps 2018) by Giovanni Toraldo
Continuous Delivery: 5 years later (Incontro DevOps 2018)Continuous Delivery: 5 years later (Incontro DevOps 2018)
Continuous Delivery: 5 years later (Incontro DevOps 2018)
Giovanni Toraldo247 views
Voxxed days Vilnius 2015 - Android Reverse Engineering Lab by Ron Munitz
Voxxed days Vilnius 2015 - Android Reverse Engineering LabVoxxed days Vilnius 2015 - Android Reverse Engineering Lab
Voxxed days Vilnius 2015 - Android Reverse Engineering Lab
Ron Munitz292 views
Electron JS | Build cross-platform desktop applications with web technologies by Bethmi Gunasekara
Electron JS | Build cross-platform desktop applications with web technologiesElectron JS | Build cross-platform desktop applications with web technologies
Electron JS | Build cross-platform desktop applications with web technologies
Bethmi Gunasekara2.5K views
ContainerDays NYC 2015: "Easing Your Way Into Docker: Lessons From a Journey ... by DynamicInfraDays
ContainerDays NYC 2015: "Easing Your Way Into Docker: Lessons From a Journey ...ContainerDays NYC 2015: "Easing Your Way Into Docker: Lessons From a Journey ...
ContainerDays NYC 2015: "Easing Your Way Into Docker: Lessons From a Journey ...
DynamicInfraDays784 views
Building Kick Ass Video Games for the Cloud by Chris Schalk
Building Kick Ass Video Games for the CloudBuilding Kick Ass Video Games for the Cloud
Building Kick Ass Video Games for the Cloud
Chris Schalk4.1K views
Cloud Conf 2015 - Develop and Deploy IOT Applications by Corley S.r.l.
Cloud Conf 2015 - Develop and Deploy IOT ApplicationsCloud Conf 2015 - Develop and Deploy IOT Applications
Cloud Conf 2015 - Develop and Deploy IOT Applications
Corley S.r.l.909 views
mloc.js 2014 - JavaScript and the browser as a platform for game development by David Galeano
mloc.js 2014 - JavaScript and the browser as a platform for game developmentmloc.js 2014 - JavaScript and the browser as a platform for game development
mloc.js 2014 - JavaScript and the browser as a platform for game development
David Galeano1.2K views

Recently uploaded

Copilot Prompting Toolkit_All Resources.pdf by
Copilot Prompting Toolkit_All Resources.pdfCopilot Prompting Toolkit_All Resources.pdf
Copilot Prompting Toolkit_All Resources.pdfRiccardo Zamana
6 views4 slides
Unleash The Monkeys by
Unleash The MonkeysUnleash The Monkeys
Unleash The MonkeysJacob Duijzer
7 views28 slides
DevsRank by
DevsRankDevsRank
DevsRankdevsrank786
11 views1 slide
DSD-INT 2023 Delft3D FM Suite 2024.01 2D3D - New features + Improvements - Ge... by
DSD-INT 2023 Delft3D FM Suite 2024.01 2D3D - New features + Improvements - Ge...DSD-INT 2023 Delft3D FM Suite 2024.01 2D3D - New features + Improvements - Ge...
DSD-INT 2023 Delft3D FM Suite 2024.01 2D3D - New features + Improvements - Ge...Deltares
16 views12 slides
Citi TechTalk Session 2: Kafka Deep Dive by
Citi TechTalk Session 2: Kafka Deep DiveCiti TechTalk Session 2: Kafka Deep Dive
Citi TechTalk Session 2: Kafka Deep Diveconfluent
17 views60 slides
Unmasking the Dark Art of Vectored Exception Handling: Bypassing XDR and EDR ... by
Unmasking the Dark Art of Vectored Exception Handling: Bypassing XDR and EDR ...Unmasking the Dark Art of Vectored Exception Handling: Bypassing XDR and EDR ...
Unmasking the Dark Art of Vectored Exception Handling: Bypassing XDR and EDR ...Donato Onofri
711 views34 slides

Recently uploaded(20)

Copilot Prompting Toolkit_All Resources.pdf by Riccardo Zamana
Copilot Prompting Toolkit_All Resources.pdfCopilot Prompting Toolkit_All Resources.pdf
Copilot Prompting Toolkit_All Resources.pdf
Riccardo Zamana6 views
DSD-INT 2023 Delft3D FM Suite 2024.01 2D3D - New features + Improvements - Ge... by Deltares
DSD-INT 2023 Delft3D FM Suite 2024.01 2D3D - New features + Improvements - Ge...DSD-INT 2023 Delft3D FM Suite 2024.01 2D3D - New features + Improvements - Ge...
DSD-INT 2023 Delft3D FM Suite 2024.01 2D3D - New features + Improvements - Ge...
Deltares16 views
Citi TechTalk Session 2: Kafka Deep Dive by confluent
Citi TechTalk Session 2: Kafka Deep DiveCiti TechTalk Session 2: Kafka Deep Dive
Citi TechTalk Session 2: Kafka Deep Dive
confluent17 views
Unmasking the Dark Art of Vectored Exception Handling: Bypassing XDR and EDR ... by Donato Onofri
Unmasking the Dark Art of Vectored Exception Handling: Bypassing XDR and EDR ...Unmasking the Dark Art of Vectored Exception Handling: Bypassing XDR and EDR ...
Unmasking the Dark Art of Vectored Exception Handling: Bypassing XDR and EDR ...
Donato Onofri711 views
SUGCON ANZ Presentation V2.1 Final.pptx by Jack Spektor
SUGCON ANZ Presentation V2.1 Final.pptxSUGCON ANZ Presentation V2.1 Final.pptx
SUGCON ANZ Presentation V2.1 Final.pptx
Jack Spektor22 views
DSD-INT 2023 Next-Generation Flood Inundation Mapping for Taiwan - Delft3D FM... by Deltares
DSD-INT 2023 Next-Generation Flood Inundation Mapping for Taiwan - Delft3D FM...DSD-INT 2023 Next-Generation Flood Inundation Mapping for Taiwan - Delft3D FM...
DSD-INT 2023 Next-Generation Flood Inundation Mapping for Taiwan - Delft3D FM...
Deltares7 views
DSD-INT 2023 FloodAdapt - A decision-support tool for compound flood risk mit... by Deltares
DSD-INT 2023 FloodAdapt - A decision-support tool for compound flood risk mit...DSD-INT 2023 FloodAdapt - A decision-support tool for compound flood risk mit...
DSD-INT 2023 FloodAdapt - A decision-support tool for compound flood risk mit...
Deltares13 views
DSD-INT 2023 Thermobaricity in 3D DCSM-FM - taking pressure into account in t... by Deltares
DSD-INT 2023 Thermobaricity in 3D DCSM-FM - taking pressure into account in t...DSD-INT 2023 Thermobaricity in 3D DCSM-FM - taking pressure into account in t...
DSD-INT 2023 Thermobaricity in 3D DCSM-FM - taking pressure into account in t...
Deltares9 views
Software evolution understanding: Automatic extraction of software identifier... by Ra'Fat Al-Msie'deen
Software evolution understanding: Automatic extraction of software identifier...Software evolution understanding: Automatic extraction of software identifier...
Software evolution understanding: Automatic extraction of software identifier...
BushraDBR: An Automatic Approach to Retrieving Duplicate Bug Reports by Ra'Fat Al-Msie'deen
BushraDBR: An Automatic Approach to Retrieving Duplicate Bug ReportsBushraDBR: An Automatic Approach to Retrieving Duplicate Bug Reports
BushraDBR: An Automatic Approach to Retrieving Duplicate Bug Reports
DSD-INT 2023 Dam break simulation in Derna (Libya) using HydroMT_SFINCS - Prida by Deltares
DSD-INT 2023 Dam break simulation in Derna (Libya) using HydroMT_SFINCS - PridaDSD-INT 2023 Dam break simulation in Derna (Libya) using HydroMT_SFINCS - Prida
DSD-INT 2023 Dam break simulation in Derna (Libya) using HydroMT_SFINCS - Prida
Deltares18 views
DSD-INT 2023 Simulation of Coastal Hydrodynamics and Water Quality in Hong Ko... by Deltares
DSD-INT 2023 Simulation of Coastal Hydrodynamics and Water Quality in Hong Ko...DSD-INT 2023 Simulation of Coastal Hydrodynamics and Water Quality in Hong Ko...
DSD-INT 2023 Simulation of Coastal Hydrodynamics and Water Quality in Hong Ko...
Deltares11 views
DSD-INT 2023 - Delft3D User Days - Welcome - Day 3 - Afternoon by Deltares
DSD-INT 2023 - Delft3D User Days - Welcome - Day 3 - AfternoonDSD-INT 2023 - Delft3D User Days - Welcome - Day 3 - Afternoon
DSD-INT 2023 - Delft3D User Days - Welcome - Day 3 - Afternoon
Deltares13 views
DSD-INT 2023 Modelling litter in the Yarra and Maribyrnong Rivers (Australia)... by Deltares
DSD-INT 2023 Modelling litter in the Yarra and Maribyrnong Rivers (Australia)...DSD-INT 2023 Modelling litter in the Yarra and Maribyrnong Rivers (Australia)...
DSD-INT 2023 Modelling litter in the Yarra and Maribyrnong Rivers (Australia)...
Deltares9 views
Fleet Management Software in India by Fleetable
Fleet Management Software in India Fleet Management Software in India
Fleet Management Software in India
Fleetable11 views
Elevate your SAP landscape's efficiency and performance with HCL Workload Aut... by HCLSoftware
Elevate your SAP landscape's efficiency and performance with HCL Workload Aut...Elevate your SAP landscape's efficiency and performance with HCL Workload Aut...
Elevate your SAP landscape's efficiency and performance with HCL Workload Aut...
HCLSoftware6 views

GDCE 2015: Blueprint Components to C++

  • 1. UE4 COMPONENT DESIGN: FROM BLUEPRINT PROTOTYPE TO C++ Zak Parrish zak.parrish@epicgames.com Gerke Max Preussner max.preussner@epicgames.com
  • 2. Overview ● Key Terms and Concepts ○ UE4’s Framework (High Level) ■ Actors & Components ○ What is Blueprint? ● Prototyping a Custom Component using Blueprint ○ Where to begin ○ Building our first component (Hover Component) ● Converting to C++ ○ Deconstructing artist’s intent ○ Adding code to project ○ Replacing Blueprint asset with native version
  • 3. UE4 Framework at a Glance ● Object ○ Engine’s highest-level base class ■ In C++, UObject is the base of all classes ○ Lots of “under-the-hood” functionality ■ Garbage collection ■ Metadata (UProperty) ■ Support for exposing variables to the Editor ■ Serialization ■ Loading and Saving ○ Just about everything in Unreal inherits from (or gets some functionality from) Object
  • 4. UE4 Framework at a Glance ● Actor ○ Inherits from Object ■ C++ class is AActor ○ Used for anything that is placed in your game’s world ○ Supports 3D transformations ■ Position ■ Rotation ■ Scale ○ There are many Actor types included with the Engine ■ If it is actually in your game, it’s probably some kind of actor ■ Characters, meshes, lights, particle systems… just about everything.
  • 5. UE4 Framework at a Glance ● Component ○ Inherits from Object ■ C++ class is UActorComponent ○ The “building blocks” of Actors ○ Self-contained piece of modular functionality ○ Can be added to or removed from any Actor And best of all… YOU CAN MAKE THEM IN BLUEPRINT!
  • 6. What is Blueprint? ● Powerful visual scripting language ● Tailored to artists, visual people ● Solves communication problems between artists and programmers ● Allows you to create compiled script using nodes and wires instead of code ● Includes a variety of real-time debugging features
  • 7. Blueprint vs. C++ ● Blueprint is great for fast iteration! ● Blueprint has lower performance than native C++ ○ Runs on its own VM layer ○ Approximately 8-10x slower than native code ○ For most simple event-based game tasks, you probably won’t notice ○ Many AAA games are using Blueprint in shipping titles (incl. Epic!) ○ Anything running on every frame (tick) should probably be native (physics calculations) ● Still, Blueprint is excellent for prototyping! ○ Often faster for a designer to create what they want in Blueprint, then let a programmer convert it to code ○ This is how we often use Blueprint at Epic
  • 9. Conclusion ● Blueprint makes it easy for visual developers to implement ideas! ● The nature of the graph makes it easy for programmers to reproduce (and optimize!) ● Code can be added to any project right inside the Editor ● Faster collaboration, clearer communication