unreal engine 4 blueprints: odio e amore roberto de ioris - codemotion rome 2017
TRANSCRIPT
![Page 1: Unreal Engine 4 Blueprints: Odio e amore Roberto De Ioris - Codemotion Rome 2017](https://reader031.vdocuments.site/reader031/viewer/2022022410/58e4a1ea1a28abf5428b6451/html5/thumbnails/1.jpg)
Unreal Engine 4 Blueprints:
Hate and LoveRoberto De Ioris
@unbit http://aiv01.it
http://github.com/20tab
Codemotion Rome 2017
![Page 3: Unreal Engine 4 Blueprints: Odio e amore Roberto De Ioris - Codemotion Rome 2017](https://reader031.vdocuments.site/reader031/viewer/2022022410/58e4a1ea1a28abf5428b6451/html5/thumbnails/3.jpg)
Blueprints ?
![Page 4: Unreal Engine 4 Blueprints: Odio e amore Roberto De Ioris - Codemotion Rome 2017](https://reader031.vdocuments.site/reader031/viewer/2022022410/58e4a1ea1a28abf5428b6451/html5/thumbnails/4.jpg)
Blueprints …
![Page 5: Unreal Engine 4 Blueprints: Odio e amore Roberto De Ioris - Codemotion Rome 2017](https://reader031.vdocuments.site/reader031/viewer/2022022410/58e4a1ea1a28abf5428b6451/html5/thumbnails/5.jpg)
Blueprints :)
![Page 6: Unreal Engine 4 Blueprints: Odio e amore Roberto De Ioris - Codemotion Rome 2017](https://reader031.vdocuments.site/reader031/viewer/2022022410/58e4a1ea1a28abf5428b6451/html5/thumbnails/6.jpg)
Blueprints :|
![Page 7: Unreal Engine 4 Blueprints: Odio e amore Roberto De Ioris - Codemotion Rome 2017](https://reader031.vdocuments.site/reader031/viewer/2022022410/58e4a1ea1a28abf5428b6451/html5/thumbnails/7.jpg)
Blueprints :(
![Page 8: Unreal Engine 4 Blueprints: Odio e amore Roberto De Ioris - Codemotion Rome 2017](https://reader031.vdocuments.site/reader031/viewer/2022022410/58e4a1ea1a28abf5428b6451/html5/thumbnails/8.jpg)
!!!
![Page 9: Unreal Engine 4 Blueprints: Odio e amore Roberto De Ioris - Codemotion Rome 2017](https://reader031.vdocuments.site/reader031/viewer/2022022410/58e4a1ea1a28abf5428b6451/html5/thumbnails/9.jpg)
How to reduce Hate ?
![Page 10: Unreal Engine 4 Blueprints: Odio e amore Roberto De Ioris - Codemotion Rome 2017](https://reader031.vdocuments.site/reader031/viewer/2022022410/58e4a1ea1a28abf5428b6451/html5/thumbnails/10.jpg)
First Rule: Use Events
Tick is an antipattern in Unreal Engine
![Page 11: Unreal Engine 4 Blueprints: Odio e amore Roberto De Ioris - Codemotion Rome 2017](https://reader031.vdocuments.site/reader031/viewer/2022022410/58e4a1ea1a28abf5428b6451/html5/thumbnails/11.jpg)
Why Events ?• “Code” organization
• Networking friendly
• Time management for free
• Triggerable by animations too
• Easy to explain to non programmers: cause->effect
![Page 12: Unreal Engine 4 Blueprints: Odio e amore Roberto De Ioris - Codemotion Rome 2017](https://reader031.vdocuments.site/reader031/viewer/2022022410/58e4a1ea1a28abf5428b6451/html5/thumbnails/12.jpg)
Come on, we need Ticks…
Use Components
![Page 13: Unreal Engine 4 Blueprints: Odio e amore Roberto De Ioris - Codemotion Rome 2017](https://reader031.vdocuments.site/reader031/viewer/2022022410/58e4a1ea1a28abf5428b6451/html5/thumbnails/13.jpg)
MoveForwardComponent
![Page 14: Unreal Engine 4 Blueprints: Odio e amore Roberto De Ioris - Codemotion Rome 2017](https://reader031.vdocuments.site/reader031/viewer/2022022410/58e4a1ea1a28abf5428b6451/html5/thumbnails/14.jpg)
Generating events from components: Event Dispatchers
![Page 15: Unreal Engine 4 Blueprints: Odio e amore Roberto De Ioris - Codemotion Rome 2017](https://reader031.vdocuments.site/reader031/viewer/2022022410/58e4a1ea1a28abf5428b6451/html5/thumbnails/15.jpg)
Subscribing to Events
![Page 16: Unreal Engine 4 Blueprints: Odio e amore Roberto De Ioris - Codemotion Rome 2017](https://reader031.vdocuments.site/reader031/viewer/2022022410/58e4a1ea1a28abf5428b6451/html5/thumbnails/16.jpg)
NO-if/branch
https://cirillocompany.de/pages/anti-if-campaign
![Page 17: Unreal Engine 4 Blueprints: Odio e amore Roberto De Ioris - Codemotion Rome 2017](https://reader031.vdocuments.site/reader031/viewer/2022022410/58e4a1ea1a28abf5428b6451/html5/thumbnails/17.jpg)
Good Branch (single path)
![Page 18: Unreal Engine 4 Blueprints: Odio e amore Roberto De Ioris - Codemotion Rome 2017](https://reader031.vdocuments.site/reader031/viewer/2022022410/58e4a1ea1a28abf5428b6451/html5/thumbnails/18.jpg)
Evil Branch
![Page 19: Unreal Engine 4 Blueprints: Odio e amore Roberto De Ioris - Codemotion Rome 2017](https://reader031.vdocuments.site/reader031/viewer/2022022410/58e4a1ea1a28abf5428b6451/html5/thumbnails/19.jpg)
Anti-IF Weapons in Unreal Engine 4
• ENum’s
• Maps (UE4 >= 4.15)
• Switch statement (???)
• Events !
![Page 20: Unreal Engine 4 Blueprints: Odio e amore Roberto De Ioris - Codemotion Rome 2017](https://reader031.vdocuments.site/reader031/viewer/2022022410/58e4a1ea1a28abf5428b6451/html5/thumbnails/20.jpg)
ENum + Switch Example
![Page 21: Unreal Engine 4 Blueprints: Odio e amore Roberto De Ioris - Codemotion Rome 2017](https://reader031.vdocuments.site/reader031/viewer/2022022410/58e4a1ea1a28abf5428b6451/html5/thumbnails/21.jpg)
Organization: Multiple Graphs
![Page 22: Unreal Engine 4 Blueprints: Odio e amore Roberto De Ioris - Codemotion Rome 2017](https://reader031.vdocuments.site/reader031/viewer/2022022410/58e4a1ea1a28abf5428b6451/html5/thumbnails/22.jpg)
CommentsConsider them as “visual grouping” too
![Page 23: Unreal Engine 4 Blueprints: Odio e amore Roberto De Ioris - Codemotion Rome 2017](https://reader031.vdocuments.site/reader031/viewer/2022022410/58e4a1ea1a28abf5428b6451/html5/thumbnails/23.jpg)
Functions
![Page 24: Unreal Engine 4 Blueprints: Odio e amore Roberto De Ioris - Codemotion Rome 2017](https://reader031.vdocuments.site/reader031/viewer/2022022410/58e4a1ea1a28abf5428b6451/html5/thumbnails/24.jpg)
Functions VS Events
• Events can be replicated (networking)
• Events can be interrupted (delay, timelines)
• Events cannot return values
• Events have no local variables
![Page 25: Unreal Engine 4 Blueprints: Odio e amore Roberto De Ioris - Codemotion Rome 2017](https://reader031.vdocuments.site/reader031/viewer/2022022410/58e4a1ea1a28abf5428b6451/html5/thumbnails/25.jpg)
Macros• Raw way to re-organize code in function-like blocks
but without functions limits
![Page 26: Unreal Engine 4 Blueprints: Odio e amore Roberto De Ioris - Codemotion Rome 2017](https://reader031.vdocuments.site/reader031/viewer/2022022410/58e4a1ea1a28abf5428b6451/html5/thumbnails/26.jpg)
Blueprint Utility FunctionsFor Programmers: Static functions ;)
![Page 27: Unreal Engine 4 Blueprints: Odio e amore Roberto De Ioris - Codemotion Rome 2017](https://reader031.vdocuments.site/reader031/viewer/2022022410/58e4a1ea1a28abf5428b6451/html5/thumbnails/27.jpg)
Re-routing nodes
![Page 28: Unreal Engine 4 Blueprints: Odio e amore Roberto De Ioris - Codemotion Rome 2017](https://reader031.vdocuments.site/reader031/viewer/2022022410/58e4a1ea1a28abf5428b6451/html5/thumbnails/28.jpg)
Auto-Collapsing
![Page 29: Unreal Engine 4 Blueprints: Odio e amore Roberto De Ioris - Codemotion Rome 2017](https://reader031.vdocuments.site/reader031/viewer/2022022410/58e4a1ea1a28abf5428b6451/html5/thumbnails/29.jpg)
… collapsed to function
![Page 30: Unreal Engine 4 Blueprints: Odio e amore Roberto De Ioris - Codemotion Rome 2017](https://reader031.vdocuments.site/reader031/viewer/2022022410/58e4a1ea1a28abf5428b6451/html5/thumbnails/30.jpg)
Debugging• Real time graph traversing
• watch values
• clients/server attaching
• break points
• stepping
![Page 31: Unreal Engine 4 Blueprints: Odio e amore Roberto De Ioris - Codemotion Rome 2017](https://reader031.vdocuments.site/reader031/viewer/2022022410/58e4a1ea1a28abf5428b6451/html5/thumbnails/31.jpg)
A Debugging session
![Page 32: Unreal Engine 4 Blueprints: Odio e amore Roberto De Ioris - Codemotion Rome 2017](https://reader031.vdocuments.site/reader031/viewer/2022022410/58e4a1ea1a28abf5428b6451/html5/thumbnails/32.jpg)
Interfaces• Decoupling
• Decoupling
• Decoupling
• Decoupling
• …
![Page 33: Unreal Engine 4 Blueprints: Odio e amore Roberto De Ioris - Codemotion Rome 2017](https://reader031.vdocuments.site/reader031/viewer/2022022410/58e4a1ea1a28abf5428b6451/html5/thumbnails/33.jpg)
IDamageable
![Page 34: Unreal Engine 4 Blueprints: Odio e amore Roberto De Ioris - Codemotion Rome 2017](https://reader031.vdocuments.site/reader031/viewer/2022022410/58e4a1ea1a28abf5428b6451/html5/thumbnails/34.jpg)
Hey !• Functions
• Interfaces
• Debugging
• Variables
• Conditionals
• Type Casting
• …
![Page 35: Unreal Engine 4 Blueprints: Odio e amore Roberto De Ioris - Codemotion Rome 2017](https://reader031.vdocuments.site/reader031/viewer/2022022410/58e4a1ea1a28abf5428b6451/html5/thumbnails/35.jpg)
“I Fear Writing Blueprints IS programming…”
![Page 36: Unreal Engine 4 Blueprints: Odio e amore Roberto De Ioris - Codemotion Rome 2017](https://reader031.vdocuments.site/reader031/viewer/2022022410/58e4a1ea1a28abf5428b6451/html5/thumbnails/36.jpg)
Blueprints VS C++• The UE4 C++ API is not fully exposed
• Using blueprints for shaders (materials) is extremely advantageous
• Interfacing with C/C++ is a must for libraries
• Good designed Blueprints are easy to read even for non programmers
• Blueprints are sometimes too much “silent” on error
![Page 37: Unreal Engine 4 Blueprints: Odio e amore Roberto De Ioris - Codemotion Rome 2017](https://reader031.vdocuments.site/reader031/viewer/2022022410/58e4a1ea1a28abf5428b6451/html5/thumbnails/37.jpg)
The Obvious Truth ?
Honour the “good programming/design rules” and your blueprints will be more like coding instead of
spaghetti
![Page 38: Unreal Engine 4 Blueprints: Odio e amore Roberto De Ioris - Codemotion Rome 2017](https://reader031.vdocuments.site/reader031/viewer/2022022410/58e4a1ea1a28abf5428b6451/html5/thumbnails/38.jpg)
Alternatives
• UnrealEnginePython
• Unreal.js
• SkookumScript
![Page 39: Unreal Engine 4 Blueprints: Odio e amore Roberto De Ioris - Codemotion Rome 2017](https://reader031.vdocuments.site/reader031/viewer/2022022410/58e4a1ea1a28abf5428b6451/html5/thumbnails/39.jpg)
An Indie Success StoryDownward by Caracal Games
http://store.steampowered.com/app/506900/
![Page 40: Unreal Engine 4 Blueprints: Odio e amore Roberto De Ioris - Codemotion Rome 2017](https://reader031.vdocuments.site/reader031/viewer/2022022410/58e4a1ea1a28abf5428b6451/html5/thumbnails/40.jpg)
Thanks• http://aiv01.it
• https://github.com/20tab/UnrealEnginePython
• https://github.com/ncsoft/Unreal.js/
• http://skookumscript.com/