1. From Unity3D to Unreal Engine 4
Martin Pernica | @martindeveloper
2. Who am I?
• Martin Pernica
• @martindeveloper
• Lead developer in Soulbound Games
• Rendering
• GPGPU
• Engine extensions
• Game code
• … and sometimes CEO
3. First things first
• Disclaimer – this presentation is not intended as “Unity3D hate” or
„UE4 promotion“!
• Only reflect our experience with Unity3D and UE4
4. Let's start …
• Unity3D is widely used game engine
• It has free edition and is easy to use
• We used to work with Unity3D for two years
• On the other hand UE4 is paid and have royalties
• And working with UE4 can be difficult for new users
• So why we decided move from Unity3D to UE4?
6. Indie budget
• We are small indie team with limited resources
• For Unity3D subscription we pay 225 USD per month
• And per seat!
• And no royalties
• For UE4 subscription we pay 19 USD per month
• Also per seat
• With 5% royalties
7. DRM
• In Unity3D is user limited only for 2 PC
• When we cancel subscription, we cant use Unity3D Pro anymore
• In UE4 you can use unlimited number of PC
• When we cancel UE4 subscription, we can still use UE4 and we
can also release the game!
9. Team workflow
• In our small team, effectivity is key element in development
• There are some areas where we are more effective with UE4
• Materials
• Game logic
• Visual quality
• Engine programming
11. Team workflow - materials
• Graphic: “Hey programmer, I need this material to be more shiny”
• Programmer: “Okay, tomorrow I will send you new shader”
• Tomorrow
• Graphic: “Thanks for new shader, but I think the previous version was better”
• Programmer opens window and jumps …
12. Team workflow - materials
• Graphic designer needs to tune materials by yourself but it is really
hard to teach them (read as impossible) ShaderLab, CG, GLSL or
HLSL …
• UE4 by default contains powerful material editor
• Yes, you can buy material editor for Unity3D, but why?
• Material editor needs to be by default feature
13. Team workflow - materials
• So we switched from “Hey” material workflow to UE4 material editor
• Results are better, because designer can test more versions by himself
15. Team workflow – game logic
• Game logic is often biggest code you need to write in your project
• You need to write it, test it with level/game designer and update it
• Unity3D was good with quick iteration and with high-level full featured
language – C#
• But this was not enough for us
16. Team workflow – game logic
• Our goal was same as materials workflow – give game designer tool
to create game using “modules”
• Modules can be configurable
• Properties
• Modules are created by programmer
• In native C++
• The C++ can be also problem for many programmers
• Game designer can modify game flow, in-game actions and etc
17. Team workflow – game logic
• In Unity3D we used “public properties” for more configurable game
logic
• But it was not enough
• We also have to develop editor extensions for more configurable
game logic
• But in UE4 we have built-in solution - Blueprints
18. Team workflow – game logic
• Blueprints in UE4 are exactly what we needed
• Blueprints are visual scripting tool/language
• Not suitable for most programmers (because we <3 code)
• But excellent tool for game/level designers
19. Team workflow – game logic
• Programmer will create “modules” with configurable properties
• Modules are standalone and with maximum configurable properties
• Game designer will use this “modules” to create game logic
20. Team workflow – game logic
• So we eliminated workflow when programmer needs to update game
logic in code and send (push) new code to designer for testing
21. Team workflow – game logic
• How our modules works?
• Blueprints are not “overhead” free
• So critical logic is implemented in C++
• And in BP we only implement “call chain” of modules and some events
• And also, in Unity3D you can buy extension for visual scripting,
but we want full featured engine where core features
are “first-class-citizens” not only extensions
23. Source code and hot fixes
• If you use UE4 you have full access to engine source code (expect third party
libraries)
• What does it meant to our team?
24. Source code and hot fixes
• We can modify the internal features of engine
• Or also implement our custom features
• Not a big deal for small teams but is it useful for us
• For example we adding new features to BP system, modifying engine UI and
we implementing our custom C/C++ libraries
25. Source code and hot fixes
• But the better thing is – we can “hot fix” engine by our own
• If you encourage the bug in Unity3D you need to report it and wait, and wait,
and wait
26. Source code and hot fixes
• At last but not least – engine is developed not only by Epic itself but
also by community
• Which means the new features/bug fixes are more frequently
released
27. Source code and hot fixes
• And official Epic UE roadmap is public on Trello!
• And you can vote for your features
29. Visual quality
• Some projects already switched from Unity3D to UE4 because
better renderer and overall visual quality – Republic Sniper or Eve:
Valkyrie …
• Why?
32. Visual quality
• This notes are compared to Unity3D 4.*, not 5!
• UE4 features:
• Fully implemented DirectX 11
• Physically-based shading
• IES lighting profiles
• GI
• GPU particles
• Particles light
• Temporal AA
• Multi-threaded renderer
• Dynamic occlusion culling (using frustum culling)
33. Others
• We have really great experience with UE4 email support and also
with forum and answers hub
• Often Epic staff comes to discussion and helps
• In the past we send some questions (email) about next-gen console
development to UE4 and also to Unity3D support
• For reaction from Unity3D we waited about 1 and half week!
• For reaction from UE4 we waited about 1 hour
• BTW: For nearly same questions we waited about 1 month for reactions
from CryEngine team …
34. Conclusion
• UE4 is not option for everybody and also is not silver bullet for
potential problems with Unity3D
• But in our team we increased effectivity by using UE4 than Unity3D