SlideShare a Scribd company logo
Unreal Engine Basics
Chapter 1: Game Framework
Nick Prühs
Let’s Make Something Unreal!
About Me
Lead Programmer
Daedalic Entertainment, 2011 – 2012
Co-Founder
Slash Games, 2013 – 2016
Technical Director
since 2016
First Things First
• At slideshare.net/npruehs you’ll always find these slides
• At github.com/npruehs you’ll find the source code of this module
• Ask your questions – any time!
• Each lecture will close with
▪ Further reading
▪ An optional assignment
• Contact me any time npruehs@outlook.com
Objectives
• Getting familiar with Unreal Engine as a technology, framework and
toolset
• Learning the basics about writing Unreal Engine C++ code
What is Unreal Engine?
• State-of-the-art 4th generation industry-leading game engine
• Created by highly skilled developers at Epic Games since 1995
• Huge community
• Completely open-source* and public roadmap
• Immense code base
* except for console platform integration (NDA)
What is Unreal Engine?
• Mature asset pipeline and editor
• Powerful animation and motion systems
• Highly performant renderer
• Engine and editor support for visual effects, AI, UI, audio, and more
• Engine-level multiplayer
• Visual scripting
• Desktop, console, mobile, web, TV, XR, streaming platforms
• Configuration, debugging, profiling, test automation
UObjects
• Base class for all objects (similar to Java, C#)
• Garbage collection
▪ Don’t worry about memory allocation and deallocation – too much
• Reflection
▪ In C++. It’s black magic.
• Serialization
▪ Reading and writing property values for data objects and levels
• Editor integration
▪ Expose properties and functions to editor windows
Actor
• Any object that can be placed in a level
▪ Almost everything in Unreal is an actor
• Translation, rotation, and scale
• Can be spawned (created) and destroyed through gameplay code
• Ticked (updated) by the engine
▪ If you want it to
• Replicates to clients or server
▪ If you want it to
Actor Components
• Can be attached to actors to provide additional functionality
• Can tick and replicate as well
• Allow for a very clean, modular gameplay setup through re-usable
components
▪ Basic units in A Year Of Rain had 40 (!) components attached, e.g.
Abilities, Orders, Health, Attack, Name, Cost, Vision, Containable,
DestructionEffects, SpawnAudio, Footprints, MinimapIcon, …
Game Mode
• Gameplay rules, e.g.
▪ Which GameState, PlayerController, PlayerState, Pawn to use
▪ Game initialization
▪ Player initialization
▪ Teams
▪ Victory & defeat conditions
• As an Actor, can tick as well
• Server only
Game State
• Global data relevant for all players, e.g.
▪ Match duration
▪ Score
• Server & client
Pawn
• Base class of all Actors that can be controlled by players or AI
• Physical representation of a player or AI within the world
▪ Location
▪ Visuals
▪ Collision
Character
• Special type of Pawn that has the ability to walk around
▪ SkeletalMeshComponent for animations
▪ CapsuleComponent for collision
▪ CharacterMovementComponent for movement
• Can walk, run, jump, fly, and swim
▪ Yes, swim.
▪ Did I mention that the engine has been used for 25 years already?
• Default implementations of networking and input
Controller
• Non-physical Actors that can possess a Pawn to control its actions
• One-to-one relationship between Controllers and Pawns
▪ PlayerController handles input by human players to control Pawns
o Create and update UI
o Authorative on (“owned by”) clients
▪ AIController implements the AI for the Pawns they control
o Setup and update behavior trees and blackboards
o Server only
Player State
• Player-specific data relevant for all players, e.g.
▪ Name
▪ Scores
• Server & client
What’s with all those prefixes?
UnrealHeaderTool requires the correct prefixes, so it's important to provide
them.
▪ Classes that inherit from UObject are prefixed by U.
▪ Classes that inherit from AActor are prefixed by A.
▪ Enums are prefixed by E (e.g. ENetRole).
▪ Template classes are prefixed by T (e.g. TArray).
▪ Classes that inherit from SWidget are prefixed by S.
▪ Classes that are abstract interfaces are prefixed by I.
▪ Most other classes are prefixed by F.
Project Layout
• Binaries. Compiled editor and game binaries.
• Config. Editor and game configuration files.
• Content. All (created and imported) game content (e.g. meshes, maps).
• Intermediate. Intermediate compiler output.
• Saved. Log files and local configuration.
• Source. Game and editor source code.
• .sln. Visual Studio solution file.
• .uproject. Unreal Engine project file.
Coding Standard
• You’ll read much more code than you write
▪ Most of the time, not even your own code
• Code conventions allow you to understand new code more quickly
▪ File layout
▪ Naming conventions
▪ Formatting & indentation
▪ Language features
• Cross-platform compatibility
https://docs.unrealengine.com/en-
US/Programming/Development/CodingStandard/index.html
C++ Codebase
By convention, put
▪ Header files in a Classes subfolder
▪ Source files in a Private subfolder
This allows for easier #include‘ing from other sources and modules.
I recommend creating C++ subclasses for the engine core game
framework first, as you‘re going to need them anyway.
Hint!
After moving or renaming files in your file system,
you can always regenerate your Visual Studio solution
from the context menu of your .uproject file.
Hint!
After moving or renaming files in your file system,
you can always regenerate your Visual Studio solution
from the context menu of your .uproject file.
You should also do so after updating from source control,
To make sure not to miss any new files.
Hint!
Because of how the UnrealHeaderTool works,
C++ namespace are (mostly) unsupported by Unreal Engine.
Hint!
Because of how the UnrealHeaderTool works,
C++ namespace are (mostly) unsupported by Unreal Engine.
By convention, you can append a shorthand of your
project name as prefix for your class names
to avoid naming collisions with existing classes.
Unreal Header File Layout
#pragma once
#include "CoreMinimal.h"
#include "GameFramework/GameModeBase.h"
#include "ASGameMode.generated.h"
UCLASS()
class AWESOMESHOOTER_API AASGameMode : public AGameModeBase
{
GENERATED_BODY()
};
#include Statement Order
1. Pre-compiled header of the module
2. Arbitrary headers – but I recommend:
1. Base class header
2. Other engine headers
3. Other module headers
3. Generated header
Unreal Engine 4 Macros
• UCLASS indicates the type should be reflected for Unreal’s type system
• AWESOMESHOOTER_API exports the type for other modules (similar to
DLL_EXPORT)
• GENERATED_BODY injects additional functions and typedefs into the
class body
Assignment #1 – Setup Development Environment
• Install Visual Studio 2017 with Game Development With C++
• Download the Epic Games Launcher from
https://www.unrealengine.com/en-US/get-now
• Install Unreal Engine 4.23.1, including
▪ Starter Content
▪ Engine Source
▪ Editor symbols for debugging
Assignment #1 – Setup Project
• Create a new C++ Basic Code project with starter content
• Create C++ subclasses for the engine core game framework
▪ Character
▪ Game Mode
▪ Game State
▪ Player Controller
▪ Player State
References
• Epic Games. Reflections Real-Time Ray Tracing Demo | Project Spotlight | Unreal
Engine. https://www.youtube.com/watch?v=J3ue35ago3Y, March 21, 2018.
• Epic Games. Unreal Engine Features. https://www.unrealengine.com/en-
US/features, February 2020.
• Epic Games. Unreal Engine Gameplay Guide. https://docs.unrealengine.com/en-
US/Gameplay/index.html, February 2020
• Epic Games. Unreal Engine Programming Guide.
https://docs.unrealengine.com/en-US/Programming/index.html, February 2020.
• Epic Games. Unreal Property System (Reflection).
https://www.unrealengine.com/en-US/blog/unreal-property-system-reflection,
February 2020.
See you next time!
https://www.slideshare.net/npruehs
https://github.com/npruehs/teaching-
unreal-engine/releases/tag/assignment01
npruehs@outlook.com
5 Minute Review Session
• What is the base class of all Unreal Engine objects?
• What type of object is put in Uneal Engine levels?
• Which part of the game framework is responsible of your game rules?
• What are GameState and PlayerState classes mainly used for?
• How does Unreal Engine abstract Pawns from how they decide to
move?
• Which parts of your header files are essential for the
UnrealHeaderTool and type system to work?

More Related Content

What's hot

GDC 2016: Modular Level Design of Fallout 4
GDC 2016: Modular Level Design of Fallout 4 GDC 2016: Modular Level Design of Fallout 4
GDC 2016: Modular Level Design of Fallout 4
Joel Burgess
 
DirectX 11 Rendering in Battlefield 3
DirectX 11 Rendering in Battlefield 3DirectX 11 Rendering in Battlefield 3
DirectX 11 Rendering in Battlefield 3
Electronic Arts / DICE
 
Unite2019 HLOD를 활용한 대규모 씬 제작 방법
Unite2019 HLOD를 활용한 대규모 씬 제작 방법Unite2019 HLOD를 활용한 대규모 씬 제작 방법
Unite2019 HLOD를 활용한 대규모 씬 제작 방법
장규 서
 
Intro to unreal with framework and vr
Intro to unreal with framework and vrIntro to unreal with framework and vr
Intro to unreal with framework and vr
Luis Cataldi
 
[NDC 2014] 던전앤파이터 클라이언트 로딩 최적화
[NDC 2014] 던전앤파이터 클라이언트 로딩 최적화[NDC 2014] 던전앤파이터 클라이언트 로딩 최적화
[NDC 2014] 던전앤파이터 클라이언트 로딩 최적화
Jaeseung Ha
 
Tips and experience of DX12 Engine development .
Tips and experience of DX12 Engine development .Tips and experience of DX12 Engine development .
Tips and experience of DX12 Engine development .
YEONG-CHEON YOU
 
Introduction to Game Engine: Concepts & Components
Introduction to Game Engine: Concepts & ComponentsIntroduction to Game Engine: Concepts & Components
Introduction to Game Engine: Concepts & Components
Pouya Pournasir
 
Unreal Open Day 2017 UE4 for Mobile: The Future of High Quality Mobile Games
Unreal Open Day 2017 UE4 for Mobile: The Future of High Quality Mobile GamesUnreal Open Day 2017 UE4 for Mobile: The Future of High Quality Mobile Games
Unreal Open Day 2017 UE4 for Mobile: The Future of High Quality Mobile Games
Epic Games China
 
레퍼런스만 알면 언리얼 엔진이 제대로 보인다
레퍼런스만 알면 언리얼 엔진이 제대로 보인다레퍼런스만 알면 언리얼 엔진이 제대로 보인다
레퍼런스만 알면 언리얼 엔진이 제대로 보인다
Lee Dustin
 
Core Game Design (Game Architecture)
Core Game Design (Game Architecture)Core Game Design (Game Architecture)
Core Game Design (Game Architecture)
Rajkumar Pawar
 
Unreal Engine (For Creating Games) Presentation
Unreal Engine (For Creating Games) PresentationUnreal Engine (For Creating Games) Presentation
Unreal Engine (For Creating Games) Presentation
Nitin Sharma
 
PRESENTATION ON Game Engine
PRESENTATION ON Game EnginePRESENTATION ON Game Engine
PRESENTATION ON Game Engine
Diksha Bhargava
 
멀티스레드 렌더링 (Multithreaded rendering)
멀티스레드 렌더링 (Multithreaded rendering)멀티스레드 렌더링 (Multithreaded rendering)
멀티스레드 렌더링 (Multithreaded rendering)
Bongseok Cho
 
Unity 3D, A game engine
Unity 3D, A game engineUnity 3D, A game engine
Unity 3D, A game engine
Md. Irteza rahman Masud
 
Unity
UnityUnity
쩌는게임기획서 이렇게 쓴다
쩌는게임기획서 이렇게 쓴다쩌는게임기획서 이렇게 쓴다
쩌는게임기획서 이렇게 쓴다
Jinho Jung
 
Android internals 07 - Android graphics (rev_1.1)
Android internals 07 - Android graphics (rev_1.1)Android internals 07 - Android graphics (rev_1.1)
Android internals 07 - Android graphics (rev_1.1)
Egor Elizarov
 
게임회사 실무용어 완전정복! 쿡앱스 용어정리집
게임회사 실무용어 완전정복! 쿡앱스 용어정리집 게임회사 실무용어 완전정복! 쿡앱스 용어정리집
게임회사 실무용어 완전정복! 쿡앱스 용어정리집
CookApps
 
Introduction to Game Development
Introduction to Game DevelopmentIntroduction to Game Development
Introduction to Game Development
Sumit Jain
 
Game Design Document - Step by Step Guide
Game Design Document - Step by Step GuideGame Design Document - Step by Step Guide
Game Design Document - Step by Step Guide
DevBatch Inc.
 

What's hot (20)

GDC 2016: Modular Level Design of Fallout 4
GDC 2016: Modular Level Design of Fallout 4 GDC 2016: Modular Level Design of Fallout 4
GDC 2016: Modular Level Design of Fallout 4
 
DirectX 11 Rendering in Battlefield 3
DirectX 11 Rendering in Battlefield 3DirectX 11 Rendering in Battlefield 3
DirectX 11 Rendering in Battlefield 3
 
Unite2019 HLOD를 활용한 대규모 씬 제작 방법
Unite2019 HLOD를 활용한 대규모 씬 제작 방법Unite2019 HLOD를 활용한 대규모 씬 제작 방법
Unite2019 HLOD를 활용한 대규모 씬 제작 방법
 
Intro to unreal with framework and vr
Intro to unreal with framework and vrIntro to unreal with framework and vr
Intro to unreal with framework and vr
 
[NDC 2014] 던전앤파이터 클라이언트 로딩 최적화
[NDC 2014] 던전앤파이터 클라이언트 로딩 최적화[NDC 2014] 던전앤파이터 클라이언트 로딩 최적화
[NDC 2014] 던전앤파이터 클라이언트 로딩 최적화
 
Tips and experience of DX12 Engine development .
Tips and experience of DX12 Engine development .Tips and experience of DX12 Engine development .
Tips and experience of DX12 Engine development .
 
Introduction to Game Engine: Concepts & Components
Introduction to Game Engine: Concepts & ComponentsIntroduction to Game Engine: Concepts & Components
Introduction to Game Engine: Concepts & Components
 
Unreal Open Day 2017 UE4 for Mobile: The Future of High Quality Mobile Games
Unreal Open Day 2017 UE4 for Mobile: The Future of High Quality Mobile GamesUnreal Open Day 2017 UE4 for Mobile: The Future of High Quality Mobile Games
Unreal Open Day 2017 UE4 for Mobile: The Future of High Quality Mobile Games
 
레퍼런스만 알면 언리얼 엔진이 제대로 보인다
레퍼런스만 알면 언리얼 엔진이 제대로 보인다레퍼런스만 알면 언리얼 엔진이 제대로 보인다
레퍼런스만 알면 언리얼 엔진이 제대로 보인다
 
Core Game Design (Game Architecture)
Core Game Design (Game Architecture)Core Game Design (Game Architecture)
Core Game Design (Game Architecture)
 
Unreal Engine (For Creating Games) Presentation
Unreal Engine (For Creating Games) PresentationUnreal Engine (For Creating Games) Presentation
Unreal Engine (For Creating Games) Presentation
 
PRESENTATION ON Game Engine
PRESENTATION ON Game EnginePRESENTATION ON Game Engine
PRESENTATION ON Game Engine
 
멀티스레드 렌더링 (Multithreaded rendering)
멀티스레드 렌더링 (Multithreaded rendering)멀티스레드 렌더링 (Multithreaded rendering)
멀티스레드 렌더링 (Multithreaded rendering)
 
Unity 3D, A game engine
Unity 3D, A game engineUnity 3D, A game engine
Unity 3D, A game engine
 
Unity
UnityUnity
Unity
 
쩌는게임기획서 이렇게 쓴다
쩌는게임기획서 이렇게 쓴다쩌는게임기획서 이렇게 쓴다
쩌는게임기획서 이렇게 쓴다
 
Android internals 07 - Android graphics (rev_1.1)
Android internals 07 - Android graphics (rev_1.1)Android internals 07 - Android graphics (rev_1.1)
Android internals 07 - Android graphics (rev_1.1)
 
게임회사 실무용어 완전정복! 쿡앱스 용어정리집
게임회사 실무용어 완전정복! 쿡앱스 용어정리집 게임회사 실무용어 완전정복! 쿡앱스 용어정리집
게임회사 실무용어 완전정복! 쿡앱스 용어정리집
 
Introduction to Game Development
Introduction to Game DevelopmentIntroduction to Game Development
Introduction to Game Development
 
Game Design Document - Step by Step Guide
Game Design Document - Step by Step GuideGame Design Document - Step by Step Guide
Game Design Document - Step by Step Guide
 

Similar to Unreal Engine Basics 01 - Game Framework

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...
East Coast DevCon 2014: Game Programming in UE4 - Game Framework & Sample Pro...
Gerke Max Preussner
 
BYOD: Build Your First VR Experience with Unreal Engine
BYOD: Build Your First VR Experience with Unreal EngineBYOD: Build Your First VR Experience with Unreal Engine
BYOD: Build Your First VR Experience with Unreal Engine
Michael Sheyahshe
 
East Coast DevCon 2014: Engine Overview - A Programmer’s Glimpse at UE4
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 Preussner
 
Unity 3D VS your team
Unity 3D VS your teamUnity 3D VS your team
Unity 3D VS your team
Christoph Becher
 
1-Introduction (Game Design and Development)
1-Introduction (Game Design and Development)1-Introduction (Game Design and Development)
1-Introduction (Game Design and Development)
Hafiz Ammar Siddiqui
 
Mallory game developmentpipeline
Mallory game developmentpipelineMallory game developmentpipeline
Mallory game developmentpipeline
KarynNarramore
 
Ch03lect2 ud
Ch03lect2 udCh03lect2 ud
Ch03lect2 ud
Ahmet Balkan
 
West Coast DevCon 2014: Engine Overview - A Programmers Glimpse at UE4
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 UE4
Gerke Max Preussner
 
Cross-Platform Juggling
Cross-Platform JugglingCross-Platform Juggling
Cross-Platform Juggling
DevGAMM Conference
 
Software Engineer- A unity 3d Game
Software Engineer- A unity 3d GameSoftware Engineer- A unity 3d Game
Software Engineer- A unity 3d Game
Isfand yar Khan
 
Supersize your production pipe enjmin 2013 v1.1 hd
Supersize your production pipe    enjmin 2013 v1.1 hdSupersize your production pipe    enjmin 2013 v1.1 hd
Supersize your production pipe enjmin 2013 v1.1 hd
slantsixgames
 
Maximize Your Production Effort (English)
Maximize Your Production Effort (English)Maximize Your Production Effort (English)
Maximize Your Production Effort (English)
slantsixgames
 
Deep Dive: Amazon Lumberyard & Amazon GameLift
Deep Dive: Amazon Lumberyard & Amazon GameLiftDeep Dive: Amazon Lumberyard & Amazon GameLift
Deep Dive: Amazon Lumberyard & Amazon GameLift
Amazon Web Services
 
Initial design (Game Architecture)
Initial design (Game Architecture)Initial design (Game Architecture)
Initial design (Game Architecture)
Rajkumar Pawar
 
De Re PlayStation Vita
De Re PlayStation VitaDe Re PlayStation Vita
De Re PlayStation Vita
Slide_N
 
Introduction to html5 game programming with impact js
Introduction to html5 game programming with impact jsIntroduction to html5 game programming with impact js
Introduction to html5 game programming with impact js
Luca Galli
 
Pong
PongPong
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)
FMX 2017: Extending Unreal Engine 4 with Plug-ins (Master Class)
Gerke Max Preussner
 
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...
East Coast DevCon 2014: Extensibility in UE4 - Customizing Your Games and the...
Gerke Max Preussner
 
Soc research
Soc researchSoc research
Soc research
Bryan Duggan
 

Similar to Unreal Engine Basics 01 - Game Framework (20)

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...
East Coast DevCon 2014: Game Programming in UE4 - Game Framework & Sample Pro...
 
BYOD: Build Your First VR Experience with Unreal Engine
BYOD: Build Your First VR Experience with Unreal EngineBYOD: Build Your First VR Experience with Unreal Engine
BYOD: Build Your First VR Experience with Unreal Engine
 
East Coast DevCon 2014: Engine Overview - A Programmer’s Glimpse at UE4
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
 
Unity 3D VS your team
Unity 3D VS your teamUnity 3D VS your team
Unity 3D VS your team
 
1-Introduction (Game Design and Development)
1-Introduction (Game Design and Development)1-Introduction (Game Design and Development)
1-Introduction (Game Design and Development)
 
Mallory game developmentpipeline
Mallory game developmentpipelineMallory game developmentpipeline
Mallory game developmentpipeline
 
Ch03lect2 ud
Ch03lect2 udCh03lect2 ud
Ch03lect2 ud
 
West Coast DevCon 2014: Engine Overview - A Programmers Glimpse at UE4
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 UE4
 
Cross-Platform Juggling
Cross-Platform JugglingCross-Platform Juggling
Cross-Platform Juggling
 
Software Engineer- A unity 3d Game
Software Engineer- A unity 3d GameSoftware Engineer- A unity 3d Game
Software Engineer- A unity 3d Game
 
Supersize your production pipe enjmin 2013 v1.1 hd
Supersize your production pipe    enjmin 2013 v1.1 hdSupersize your production pipe    enjmin 2013 v1.1 hd
Supersize your production pipe enjmin 2013 v1.1 hd
 
Maximize Your Production Effort (English)
Maximize Your Production Effort (English)Maximize Your Production Effort (English)
Maximize Your Production Effort (English)
 
Deep Dive: Amazon Lumberyard & Amazon GameLift
Deep Dive: Amazon Lumberyard & Amazon GameLiftDeep Dive: Amazon Lumberyard & Amazon GameLift
Deep Dive: Amazon Lumberyard & Amazon GameLift
 
Initial design (Game Architecture)
Initial design (Game Architecture)Initial design (Game Architecture)
Initial design (Game Architecture)
 
De Re PlayStation Vita
De Re PlayStation VitaDe Re PlayStation Vita
De Re PlayStation Vita
 
Introduction to html5 game programming with impact js
Introduction to html5 game programming with impact jsIntroduction to html5 game programming with impact js
Introduction to html5 game programming with impact js
 
Pong
PongPong
Pong
 
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)
FMX 2017: Extending Unreal Engine 4 with Plug-ins (Master Class)
 
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...
East Coast DevCon 2014: Extensibility in UE4 - Customizing Your Games and the...
 
Soc research
Soc researchSoc research
Soc research
 

More from Nick Pruehs

Unreal Engine Basics 06 - Animation, Audio, Visual Effects
Unreal Engine Basics 06 - Animation, Audio, Visual EffectsUnreal Engine Basics 06 - Animation, Audio, Visual Effects
Unreal Engine Basics 06 - Animation, Audio, Visual Effects
Nick Pruehs
 
Unreal Engine Basics 04 - Behavior Trees
Unreal Engine Basics 04 - Behavior TreesUnreal Engine Basics 04 - Behavior Trees
Unreal Engine Basics 04 - Behavior Trees
Nick Pruehs
 
Game Programming - Cloud Development
Game Programming - Cloud DevelopmentGame Programming - Cloud Development
Game Programming - Cloud Development
Nick Pruehs
 
Game Programming - Git
Game Programming - GitGame Programming - Git
Game Programming - Git
Nick Pruehs
 
Eight Rules for Making Your First Great Game
Eight Rules for Making Your First Great GameEight Rules for Making Your First Great Game
Eight Rules for Making Your First Great Game
Nick Pruehs
 
Designing an actor model game architecture with Pony
Designing an actor model game architecture with PonyDesigning an actor model game architecture with Pony
Designing an actor model game architecture with Pony
Nick Pruehs
 
Game Programming 13 - Debugging & Performance Optimization
Game Programming 13 - Debugging & Performance OptimizationGame Programming 13 - Debugging & Performance Optimization
Game Programming 13 - Debugging & Performance Optimization
Nick Pruehs
 
Scrum - but... Agile Game Development in Small Teams
Scrum - but... Agile Game Development in Small TeamsScrum - but... Agile Game Development in Small Teams
Scrum - but... Agile Game Development in Small Teams
Nick Pruehs
 
Component-Based Entity Systems (Demo)
Component-Based Entity Systems (Demo)Component-Based Entity Systems (Demo)
Component-Based Entity Systems (Demo)
Nick Pruehs
 
What Would Blizzard Do
What Would Blizzard DoWhat Would Blizzard Do
What Would Blizzard Do
Nick Pruehs
 
School For Games 2015 - Unity Engine Basics
School For Games 2015 - Unity Engine BasicsSchool For Games 2015 - Unity Engine Basics
School For Games 2015 - Unity Engine Basics
Nick Pruehs
 
Tool Development A - Git
Tool Development A - GitTool Development A - Git
Tool Development A - Git
Nick Pruehs
 
Game Programming 12 - Shaders
Game Programming 12 - ShadersGame Programming 12 - Shaders
Game Programming 12 - Shaders
Nick Pruehs
 
Game Programming 11 - Game Physics
Game Programming 11 - Game PhysicsGame Programming 11 - Game Physics
Game Programming 11 - Game Physics
Nick Pruehs
 
Game Programming 10 - Localization
Game Programming 10 - LocalizationGame Programming 10 - Localization
Game Programming 10 - Localization
Nick Pruehs
 
Game Programming 09 - AI
Game Programming 09 - AIGame Programming 09 - AI
Game Programming 09 - AI
Nick Pruehs
 
Game Development Challenges
Game Development ChallengesGame Development Challenges
Game Development Challenges
Nick Pruehs
 
Game Programming 08 - Tool Development
Game Programming 08 - Tool DevelopmentGame Programming 08 - Tool Development
Game Programming 08 - Tool Development
Nick Pruehs
 
Game Programming 07 - Procedural Content Generation
Game Programming 07 - Procedural Content GenerationGame Programming 07 - Procedural Content Generation
Game Programming 07 - Procedural Content Generation
Nick Pruehs
 
Game Programming 06 - Automated Testing
Game Programming 06 - Automated TestingGame Programming 06 - Automated Testing
Game Programming 06 - Automated Testing
Nick Pruehs
 

More from Nick Pruehs (20)

Unreal Engine Basics 06 - Animation, Audio, Visual Effects
Unreal Engine Basics 06 - Animation, Audio, Visual EffectsUnreal Engine Basics 06 - Animation, Audio, Visual Effects
Unreal Engine Basics 06 - Animation, Audio, Visual Effects
 
Unreal Engine Basics 04 - Behavior Trees
Unreal Engine Basics 04 - Behavior TreesUnreal Engine Basics 04 - Behavior Trees
Unreal Engine Basics 04 - Behavior Trees
 
Game Programming - Cloud Development
Game Programming - Cloud DevelopmentGame Programming - Cloud Development
Game Programming - Cloud Development
 
Game Programming - Git
Game Programming - GitGame Programming - Git
Game Programming - Git
 
Eight Rules for Making Your First Great Game
Eight Rules for Making Your First Great GameEight Rules for Making Your First Great Game
Eight Rules for Making Your First Great Game
 
Designing an actor model game architecture with Pony
Designing an actor model game architecture with PonyDesigning an actor model game architecture with Pony
Designing an actor model game architecture with Pony
 
Game Programming 13 - Debugging & Performance Optimization
Game Programming 13 - Debugging & Performance OptimizationGame Programming 13 - Debugging & Performance Optimization
Game Programming 13 - Debugging & Performance Optimization
 
Scrum - but... Agile Game Development in Small Teams
Scrum - but... Agile Game Development in Small TeamsScrum - but... Agile Game Development in Small Teams
Scrum - but... Agile Game Development in Small Teams
 
Component-Based Entity Systems (Demo)
Component-Based Entity Systems (Demo)Component-Based Entity Systems (Demo)
Component-Based Entity Systems (Demo)
 
What Would Blizzard Do
What Would Blizzard DoWhat Would Blizzard Do
What Would Blizzard Do
 
School For Games 2015 - Unity Engine Basics
School For Games 2015 - Unity Engine BasicsSchool For Games 2015 - Unity Engine Basics
School For Games 2015 - Unity Engine Basics
 
Tool Development A - Git
Tool Development A - GitTool Development A - Git
Tool Development A - Git
 
Game Programming 12 - Shaders
Game Programming 12 - ShadersGame Programming 12 - Shaders
Game Programming 12 - Shaders
 
Game Programming 11 - Game Physics
Game Programming 11 - Game PhysicsGame Programming 11 - Game Physics
Game Programming 11 - Game Physics
 
Game Programming 10 - Localization
Game Programming 10 - LocalizationGame Programming 10 - Localization
Game Programming 10 - Localization
 
Game Programming 09 - AI
Game Programming 09 - AIGame Programming 09 - AI
Game Programming 09 - AI
 
Game Development Challenges
Game Development ChallengesGame Development Challenges
Game Development Challenges
 
Game Programming 08 - Tool Development
Game Programming 08 - Tool DevelopmentGame Programming 08 - Tool Development
Game Programming 08 - Tool Development
 
Game Programming 07 - Procedural Content Generation
Game Programming 07 - Procedural Content GenerationGame Programming 07 - Procedural Content Generation
Game Programming 07 - Procedural Content Generation
 
Game Programming 06 - Automated Testing
Game Programming 06 - Automated TestingGame Programming 06 - Automated Testing
Game Programming 06 - Automated Testing
 

Recently uploaded

Y-Combinator seed pitch deck template PP
Y-Combinator seed pitch deck template PPY-Combinator seed pitch deck template PP
Y-Combinator seed pitch deck template PP
c5vrf27qcz
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
Jason Packer
 
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
DanBrown980551
 
Essentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation ParametersEssentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation Parameters
Safe Software
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Tosin Akinosho
 
Northern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving | Modern Metal Trim, Nameplates and Appliance PanelsNorthern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving
 
What is an RPA CoE? Session 1 – CoE Vision
What is an RPA CoE?  Session 1 – CoE VisionWhat is an RPA CoE?  Session 1 – CoE Vision
What is an RPA CoE? Session 1 – CoE Vision
DianaGray10
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
Tatiana Kojar
 
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
Alex Pruden
 
Apps Break Data
Apps Break DataApps Break Data
Apps Break Data
Ivo Velitchkov
 
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectorsConnector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
DianaGray10
 
Christine's Product Research Presentation.pptx
Christine's Product Research Presentation.pptxChristine's Product Research Presentation.pptx
Christine's Product Research Presentation.pptx
christinelarrosa
 
Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)
Jakub Marek
 
Christine's Supplier Sourcing Presentaion.pptx
Christine's Supplier Sourcing Presentaion.pptxChristine's Supplier Sourcing Presentaion.pptx
Christine's Supplier Sourcing Presentaion.pptx
christinelarrosa
 
"$10 thousand per minute of downtime: architecture, queues, streaming and fin...
"$10 thousand per minute of downtime: architecture, queues, streaming and fin..."$10 thousand per minute of downtime: architecture, queues, streaming and fin...
"$10 thousand per minute of downtime: architecture, queues, streaming and fin...
Fwdays
 
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and BioinformaticiansBiomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Neo4j
 
"Scaling RAG Applications to serve millions of users", Kevin Goedecke
"Scaling RAG Applications to serve millions of users",  Kevin Goedecke"Scaling RAG Applications to serve millions of users",  Kevin Goedecke
"Scaling RAG Applications to serve millions of users", Kevin Goedecke
Fwdays
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
ssuserfac0301
 
Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
Brandon Minnick, MBA
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
Zilliz
 

Recently uploaded (20)

Y-Combinator seed pitch deck template PP
Y-Combinator seed pitch deck template PPY-Combinator seed pitch deck template PP
Y-Combinator seed pitch deck template PP
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
 
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
 
Essentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation ParametersEssentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation Parameters
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
 
Northern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving | Modern Metal Trim, Nameplates and Appliance PanelsNorthern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
 
What is an RPA CoE? Session 1 – CoE Vision
What is an RPA CoE?  Session 1 – CoE VisionWhat is an RPA CoE?  Session 1 – CoE Vision
What is an RPA CoE? Session 1 – CoE Vision
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
 
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
 
Apps Break Data
Apps Break DataApps Break Data
Apps Break Data
 
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectorsConnector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
 
Christine's Product Research Presentation.pptx
Christine's Product Research Presentation.pptxChristine's Product Research Presentation.pptx
Christine's Product Research Presentation.pptx
 
Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)
 
Christine's Supplier Sourcing Presentaion.pptx
Christine's Supplier Sourcing Presentaion.pptxChristine's Supplier Sourcing Presentaion.pptx
Christine's Supplier Sourcing Presentaion.pptx
 
"$10 thousand per minute of downtime: architecture, queues, streaming and fin...
"$10 thousand per minute of downtime: architecture, queues, streaming and fin..."$10 thousand per minute of downtime: architecture, queues, streaming and fin...
"$10 thousand per minute of downtime: architecture, queues, streaming and fin...
 
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and BioinformaticiansBiomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
 
"Scaling RAG Applications to serve millions of users", Kevin Goedecke
"Scaling RAG Applications to serve millions of users",  Kevin Goedecke"Scaling RAG Applications to serve millions of users",  Kevin Goedecke
"Scaling RAG Applications to serve millions of users", Kevin Goedecke
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
 
Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
 

Unreal Engine Basics 01 - Game Framework

  • 1. Unreal Engine Basics Chapter 1: Game Framework Nick Prühs
  • 3. About Me Lead Programmer Daedalic Entertainment, 2011 – 2012 Co-Founder Slash Games, 2013 – 2016 Technical Director since 2016
  • 4.
  • 5. First Things First • At slideshare.net/npruehs you’ll always find these slides • At github.com/npruehs you’ll find the source code of this module • Ask your questions – any time! • Each lecture will close with ▪ Further reading ▪ An optional assignment • Contact me any time npruehs@outlook.com
  • 6. Objectives • Getting familiar with Unreal Engine as a technology, framework and toolset • Learning the basics about writing Unreal Engine C++ code
  • 7. What is Unreal Engine? • State-of-the-art 4th generation industry-leading game engine • Created by highly skilled developers at Epic Games since 1995 • Huge community • Completely open-source* and public roadmap • Immense code base * except for console platform integration (NDA)
  • 8. What is Unreal Engine? • Mature asset pipeline and editor • Powerful animation and motion systems • Highly performant renderer • Engine and editor support for visual effects, AI, UI, audio, and more • Engine-level multiplayer • Visual scripting • Desktop, console, mobile, web, TV, XR, streaming platforms • Configuration, debugging, profiling, test automation
  • 9.
  • 10. UObjects • Base class for all objects (similar to Java, C#) • Garbage collection ▪ Don’t worry about memory allocation and deallocation – too much • Reflection ▪ In C++. It’s black magic. • Serialization ▪ Reading and writing property values for data objects and levels • Editor integration ▪ Expose properties and functions to editor windows
  • 11.
  • 12.
  • 13. Actor • Any object that can be placed in a level ▪ Almost everything in Unreal is an actor • Translation, rotation, and scale • Can be spawned (created) and destroyed through gameplay code • Ticked (updated) by the engine ▪ If you want it to • Replicates to clients or server ▪ If you want it to
  • 14.
  • 15.
  • 16. Actor Components • Can be attached to actors to provide additional functionality • Can tick and replicate as well • Allow for a very clean, modular gameplay setup through re-usable components ▪ Basic units in A Year Of Rain had 40 (!) components attached, e.g. Abilities, Orders, Health, Attack, Name, Cost, Vision, Containable, DestructionEffects, SpawnAudio, Footprints, MinimapIcon, …
  • 17.
  • 18.
  • 19.
  • 20. Game Mode • Gameplay rules, e.g. ▪ Which GameState, PlayerController, PlayerState, Pawn to use ▪ Game initialization ▪ Player initialization ▪ Teams ▪ Victory & defeat conditions • As an Actor, can tick as well • Server only
  • 21.
  • 22.
  • 23. Game State • Global data relevant for all players, e.g. ▪ Match duration ▪ Score • Server & client
  • 24.
  • 25.
  • 26. Pawn • Base class of all Actors that can be controlled by players or AI • Physical representation of a player or AI within the world ▪ Location ▪ Visuals ▪ Collision
  • 27.
  • 28.
  • 29. Character • Special type of Pawn that has the ability to walk around ▪ SkeletalMeshComponent for animations ▪ CapsuleComponent for collision ▪ CharacterMovementComponent for movement • Can walk, run, jump, fly, and swim ▪ Yes, swim. ▪ Did I mention that the engine has been used for 25 years already? • Default implementations of networking and input
  • 30.
  • 31.
  • 32.
  • 33.
  • 34. Controller • Non-physical Actors that can possess a Pawn to control its actions • One-to-one relationship between Controllers and Pawns ▪ PlayerController handles input by human players to control Pawns o Create and update UI o Authorative on (“owned by”) clients ▪ AIController implements the AI for the Pawns they control o Setup and update behavior trees and blackboards o Server only
  • 35.
  • 36.
  • 37. Player State • Player-specific data relevant for all players, e.g. ▪ Name ▪ Scores • Server & client
  • 38. What’s with all those prefixes? UnrealHeaderTool requires the correct prefixes, so it's important to provide them. ▪ Classes that inherit from UObject are prefixed by U. ▪ Classes that inherit from AActor are prefixed by A. ▪ Enums are prefixed by E (e.g. ENetRole). ▪ Template classes are prefixed by T (e.g. TArray). ▪ Classes that inherit from SWidget are prefixed by S. ▪ Classes that are abstract interfaces are prefixed by I. ▪ Most other classes are prefixed by F.
  • 39. Project Layout • Binaries. Compiled editor and game binaries. • Config. Editor and game configuration files. • Content. All (created and imported) game content (e.g. meshes, maps). • Intermediate. Intermediate compiler output. • Saved. Log files and local configuration. • Source. Game and editor source code. • .sln. Visual Studio solution file. • .uproject. Unreal Engine project file.
  • 40. Coding Standard • You’ll read much more code than you write ▪ Most of the time, not even your own code • Code conventions allow you to understand new code more quickly ▪ File layout ▪ Naming conventions ▪ Formatting & indentation ▪ Language features • Cross-platform compatibility https://docs.unrealengine.com/en- US/Programming/Development/CodingStandard/index.html
  • 41. C++ Codebase By convention, put ▪ Header files in a Classes subfolder ▪ Source files in a Private subfolder This allows for easier #include‘ing from other sources and modules. I recommend creating C++ subclasses for the engine core game framework first, as you‘re going to need them anyway.
  • 42. Hint! After moving or renaming files in your file system, you can always regenerate your Visual Studio solution from the context menu of your .uproject file.
  • 43. Hint! After moving or renaming files in your file system, you can always regenerate your Visual Studio solution from the context menu of your .uproject file. You should also do so after updating from source control, To make sure not to miss any new files.
  • 44. Hint! Because of how the UnrealHeaderTool works, C++ namespace are (mostly) unsupported by Unreal Engine.
  • 45. Hint! Because of how the UnrealHeaderTool works, C++ namespace are (mostly) unsupported by Unreal Engine. By convention, you can append a shorthand of your project name as prefix for your class names to avoid naming collisions with existing classes.
  • 46. Unreal Header File Layout #pragma once #include "CoreMinimal.h" #include "GameFramework/GameModeBase.h" #include "ASGameMode.generated.h" UCLASS() class AWESOMESHOOTER_API AASGameMode : public AGameModeBase { GENERATED_BODY() };
  • 47. #include Statement Order 1. Pre-compiled header of the module 2. Arbitrary headers – but I recommend: 1. Base class header 2. Other engine headers 3. Other module headers 3. Generated header
  • 48. Unreal Engine 4 Macros • UCLASS indicates the type should be reflected for Unreal’s type system • AWESOMESHOOTER_API exports the type for other modules (similar to DLL_EXPORT) • GENERATED_BODY injects additional functions and typedefs into the class body
  • 49. Assignment #1 – Setup Development Environment • Install Visual Studio 2017 with Game Development With C++ • Download the Epic Games Launcher from https://www.unrealengine.com/en-US/get-now • Install Unreal Engine 4.23.1, including ▪ Starter Content ▪ Engine Source ▪ Editor symbols for debugging
  • 50. Assignment #1 – Setup Project • Create a new C++ Basic Code project with starter content • Create C++ subclasses for the engine core game framework ▪ Character ▪ Game Mode ▪ Game State ▪ Player Controller ▪ Player State
  • 51. References • Epic Games. Reflections Real-Time Ray Tracing Demo | Project Spotlight | Unreal Engine. https://www.youtube.com/watch?v=J3ue35ago3Y, March 21, 2018. • Epic Games. Unreal Engine Features. https://www.unrealengine.com/en- US/features, February 2020. • Epic Games. Unreal Engine Gameplay Guide. https://docs.unrealengine.com/en- US/Gameplay/index.html, February 2020 • Epic Games. Unreal Engine Programming Guide. https://docs.unrealengine.com/en-US/Programming/index.html, February 2020. • Epic Games. Unreal Property System (Reflection). https://www.unrealengine.com/en-US/blog/unreal-property-system-reflection, February 2020.
  • 52. See you next time! https://www.slideshare.net/npruehs https://github.com/npruehs/teaching- unreal-engine/releases/tag/assignment01 npruehs@outlook.com
  • 53. 5 Minute Review Session • What is the base class of all Unreal Engine objects? • What type of object is put in Uneal Engine levels? • Which part of the game framework is responsible of your game rules? • What are GameState and PlayerState classes mainly used for? • How does Unreal Engine abstract Pawns from how they decide to move? • Which parts of your header files are essential for the UnrealHeaderTool and type system to work?