How Does Unreal Engine 4's Rendering Engine Stand Out

Started by
13 comments, last by LeGreg 8 years, 9 months ago

I am a C++ programmer with an intermediate knowledge of graphics programming. I have written a game engine as a hobbyist project over the past few years and hope to finish it soon. I like developing games but also enjoy creating technology. I was thinking of using UE4 to develop a game but I was also considering writing another game engine where the renderer would use DirectX 12 instead of 11 which I'm used to. I am not sure if I would have the time to create a renderer that would perform as well as UE4's but its impossible to know how long such a task would take. Unreal Engine 4 has an excellent editor and workflow but from a rendering stand point, what features has it that are very difficult to implement? Is it feasible for one programmer to write a rendering engine that has the same features and performs as well? Its one thing to be able to implement physically based shading and baked global illumination but its another thing to be able to implement them efficiently.

Advertisement
Performs as well? Maybe... I'm still trying to read through their code and it has a lot of indirections. Doing so within the next few years may be a different story. The Unreal engine's biggest advantage is from it's material and particle systems from what I am seeing. That's what really makes it stand out so well.

The lighting has many different competitive options, and can generally be fine tuned for specific implementations. But... for particles and materials... Unreal just seems to have everyone else beaten.

Unreal engine's strength has historically been editors/tools, and being feature rich, not really the engine quality which was about average.

I'm not sure about UE4, the tools are once again impressive, I haven't read the code so I don't really know how it is.

The problem isn't whether a programmer can do as good or better, the problem is how long it will take...

AFAIK, UE4 doesn't contain any tech beyond what is already publicly available if you survey the field. (ie read all GDC/SIGGRAPH... papers, and forums.)

-* So many things to do, so little time to spend. *-

Personally, would say that this https://docs.unrealengine.com/latest/INT/Engine/Rendering/LightingAndShadows/ReflectionEnvironment/index.html is the best Unreal 4 feature. Having a lot of fun as a artist with Unreal and it's materials, it's a fast and beautiful engine.

Remember that as a single person it would take you a long time to make a game engine on the same level as the Unreal 4, that was made by many professional programmers.


Unreal engine's strength has historically been editors/tools, and being feature rich, not really the engine quality which was about avera
Whereas the ID Tech's strength has historically been the engine itself, not really the editors and tools :D (until recently apparently).

"I AM ZE EMPRAH OPENGL 3.3 THE CORE, I DEMAND FROM THEE ZE SHADERZ AND MATRIXEZ"

My journals: dustArtemis ECS framework and Making a Terrain Generator

Thanks for the replies. I know it would take a long time to make a rendering engine like UE4's but then again, it is a general purpose engine and if I was to make a proper rendering engine, I would tailor it towards the type of game I would like to make. Though seeing as the source is available for UE4, there really isn't much of a reason not to use it for the purpose of game development. I just wish Epic would release more detailed documentation on the rendering engine.

rendering wise all modern engines are the same, because all the tech available is usually in papers way before the actual tech is available to you. In the end, the only real difference is the price. (for me, as a graphics engineer, that's quite a sad situation. Implementing papers does not require much problem solving skills, it's rather code-monkey work sad.png, anyway...)

if you want to make some a specialized engine, you can still start with the generic engine and modify it to the needs you have. It's common knowledge in engineering that 10% of the code is the critical one, 90% has just to be there. So it's more time effective for you to take the Unity/Unreal/Cry -Engine and just modify those 10% with 100% of your time, rather then wasting 90% of your time with your own custom engine that will anyway need (at least some of)
-editors
-scripting
-logging
-console system
-event system
-resource handling
-streaming
-ai
-sound
-physics
...

UnrealEngine follows those engineering principles too by rather integrating middleware than re-inventing the wheel. just important key elements are custom.

AFAIK, UE4 doesn't contain any tech beyond what is already publicly available if you survey the field.

To be fair, that is largely because they themselves release their technology and papers describing their techniques.


L. Spiro

I restore Nintendo 64 video-game OST’s into HD! https://www.youtube.com/channel/UCCtX_wedtZ5BoyQBXEhnVZw/playlists?view=1&sort=lad&flow=grid

Also, remember that an engine by itself useless, you can have the most kickass engine in town, but without the artwork ( artist needed ), you are stuck with a kickass engine that doesn't do anything. So make sure you design with your artist in mind.

@KryptOn

I agree that mostly every graphics technique used in modern AAA game engines has been discovered by researchers and is present in published academic papers. However, when implementing something like physically based shading, the equations and algorithms can be got for papers but there are a lot of choices to be made on how to actually implement it. This is where the engineering comes in. Its not just about implementing one feature efficiently but also integrating numerous features efficiently. When you look at what a rendering engine does, there are a lot of things that can go wrong. It is responsible for handling rigid and skeletal meshes, materials, skinning for skeletal animations, deferred and forward lighting, shadow mapping, ambient occlusion, frustum culling, occlusion culling, screen space particles, multi-threading, instancing, transparency, translucency and many different post processing effects such as blur. These elements can be implemented one by one but implementing them optimally takes a huge amount of time. Time does seem to be the issue here and this is only the graphics engine. For that reason, I will probably use UE4 and modify it if necessary.

This topic is closed to new replies.

Advertisement