Who am I? • Martin Pernica • @martindeveloper • Lead developer in Soulbound Games • Rendering • GPGPU • Engine extensions • Game code • … and sometimes CEO
First things first • Disclaimer – this presentation is not intended as “Unity3D hate” or „UE4 promotion“! • Only reflect our experience with Unity3D and UE4
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?
Indie budget • We are smal 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
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!
Team workflow • In our smal 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
Team workflow - materials
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 …
Team workflow - materials • Graphic designer needs to tune materials by yourself but it is real y 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
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
Team workflow – game logic
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 ful featured language – C# • But this was not enough for us
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
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
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 excel ent tool for game/level designers
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
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
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 “cal chain” of modules and some events • And also, in Unity3D you can buy extension for visual scripting, but we want ful featured engine where core features are “first-class-citizens” not only extensions
Source code and hot fixes • If you use UE4 you have ful access to engine source code (expect third party libraries) • What does it meant to our team?
Source code and hot fixes • We can modify the internal features of engine • Or also implement our custom features • Not a big deal for smal 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
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
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
Source code and hot fixes • And official Epic UE roadmap is public on Trel o! • And you can vote for your features
Visual quality • Some projects already switched from Unity3D to UE4 because better renderer and overal visual quality – Republic Sniper or Eve: Valkyrie … • Why?
Visual quality – Republic Sniper
Visual quality – Republic Sniper
Visual quality • This notes are compared to Unity3D 4.*, not 5! • UE4 features: • Ful y implemented DirectX 11 • Physical y-based shading • IES lighting profiles • GI • GPU particles • Particles light • Temporal AA • Multi-threaded renderer • Dynamic occlusion cul ing (using frustum cul ing)
Others • We have real y 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 …
Conclusion • UE4 is not option for everybody and also is not silver bul et for potential problems with Unity3D • But in our team we increased effectivity by using UE4 than Unity3D