Image from Ray Traced Distance Field Soft Shadows in Unreal Engine 4
A second day on evaluating engines and being pretty sure about moving development of our internal project over to Unreal (Unreal Engine 4). That about sums up the day really, I am feeling more and more confident in taking the risk of switching development of Dethol over.
Yesterday (effectively day 1 on the project), I sat down and evaluated many of the engines out there, with this preconceived idea that I would ultimately find myself wanting to use Unreal, but I tried to remain objective. We have used Unreal in the past on different projects, but we’re most notably known for our Unity expertise, and moving away from that for an internal project really pushes us outside our comfort zone. We can could accomplish the scope of our project inside of Unity in a relatively short period, however there was one requirement that simply couldn’t be met “it’s gotta look goooooood!” (hold that ‘o’ for a while).
A lot of developers are coming out at GDC, and different events this year talking about how we all love Unity for its simplicity, easy uptake, advanced user features; but we all seem to eventually hit a stumbling block of what to do in large teams, a lack of optimized pipelines for assets, and the general problem of Unreal out of the box just looks good. Albeit, Unity’s new standard shader definitely comes a long way in catching up, it’s just some of the graphical features which I’m looking for, just aren’t there, and won’t be any time soon.
For example Distance Field Soft Shadows, this beautiful shadowing technique bakes shadowing information into each mesh itself so that a shadow can be generated from it at runtime that looks pretty damn good. Why is that important? Well, in our case we plan on having almost the entirety of our level geometry being procedurally created. Being able to have our placed decorators having a high fidelity on their shadows is going to be killer.
Now the argument can definitely be made that we could build out the technology we need on top of the Unity engine, but that is just it, “on top of”. We have a limited time and a limited budget, which means we need to focus on features and technology that is going to separate Dethol out from other games, not worry about a specific shadowing technique. This extends out to the terrain system in Unity as well, with Unity 2017 being announced, and a quick evaluation of the product roadmap an upgrade to the terrain system (which ironically runs “on top of” the engine already) is not likely in the timespan we have for getting a proof of concept together.
All that being said, I’m spending a fair bit of time right now going over all of the features new and old in Unreal and making notes on how we might utilize them when we finally get the ball rolling on development of this beast, as well as finding areas of concern which need a little more testing.
Being agnostic is an important when considering game engines, being a fanboy only limits your ability to make an educated decision.