A game is nothing but an idea without an engine, and in today’s gaming industry there are many options when it comes to engines and APIs. When cost and royalties are factored in, the choice may become difficult. But in this article we are putting that aside and focusing purely on video game technology, and believe it or not, for the most part it is quite clear which technologies have the most potential.
By game technology, as you may have guessed we are largely referring to game engines, but also physics engines, graphics APIs, and audio APIs.
Several engines are worthy of respect, and many are not. Far too many studios stick to their own inferior, outdated, and terrible engines just because of familiarity. Bethesda Game Studios and Bohemia Interactive are perhaps most guilty of this because their games are in need of a new engine more than most others.
But one engine seems to have it all. One engine supports practically every platform you can name, has an array of both graphics and audio API options, is very easy to use even for newcomers, is loaded with most of the features one could ask for, and allows you to build essentially any kind of game. And it’s free to install and use, and is even open source! This engine is Unreal Engine 4.
Unreal Engine has come a long way. Unreal Engine 3 was perhaps the most used game engine for the last 9 years. Examples of UE3 games include, but are not limited to:
- Every game by Epic Games since 2007 obviously, such as Unreal Tournament 3 and the Gears of War games.
- Mass Effect trilogy
- Every Batman game since and including Arkham Asylum.
- Borderlands and Borderlands 2
- Red Orchestra 2: Heroes of Stalingrad, Rising Storm, and Rising Storm 2: Vietnam
- Killing Floor 2
- The Vanishing of Ethan Carter
- XCOM: Enemy Unknown and XCOM 2
This is a relatively small list. Here is a more complete one.
Unreal Engine 3 is not a great engine. Thief might make you think otherwise, but it’s known for severe and seemingly random stuttering issues. It’s also limited to older, inferior graphics APIs. It was made for 2006 era computers and consoles, so it is time to leave it behind ten years later.
Epic Games sure has come a long way since then. Since Unreal Engine 4 is free to use and has many free demos and free content available, developers are encouraged to download it and give it a try. See their home page here, the marketplace here, the documentation website here, and the official Epic Games GitHub page here. Be sure to check out the tutorial videos if starting out.
An obvious core design principle for UE4’s SDK, or as they like to say UDK, is integration. Everything is integrated and at your fingertips, whether it’s the asset editor, visual scripting system, optional integration with Microsoft Visual Studio, the content browser, or the tutorials and guides themselves. The Epic Games launcher has it all, including the free alpha build of Unreal Tournament 4 among other games, the marketplace, community hub, and much more.
It also features easy exporting to different platforms such as Windows, Linux, current gen consoles, Android, and iOS. Which means it is easily capable of supporting what is best for the gaming industry: Linux as well as the technologies listed on the next pages.
To see some examples of various aspects of UE4, see the following videos:
C++ is the language that this engine relies most on. The visual scripting is all C++ as well. C++ is common and easier to learn than many others, so we applaud the extensive use of it.
So not only does it support virtually every modern platform, and not only is it perhaps the easiest engine to use, it does produce the most realistic graphics of any game engine. It also has excellent optimization, among the best of any engine, and it also has arguably the best all-around anti-aliasing implementation with its Temporal anti-aliasing (TAA). Its TAA is almost comparable to 2x supersampling in quality, yet it has next to no performance impact on modern GPUs (at least for NVIDIA). Supersampling, especially more than 2x, removes more aliasing but even 2x is so much more costly. UE4’s TAA should be the standard, and supersampling should be included as well since it’s simple and the most effective.
Also see the screenshots below:
For even more impressive screenshots, have a look at this gallery.
The engine can produce visuals so good that it can easily be used for CGI movies:
Most if not all of those demo videos showcase DirectX 11 (DX11) builds, but Unreal Engine 4 now has both Vulkan and DX12 support. All the more reason to use it, but we’ll talk a bit more about these APIs later.
Other engines such as Unity 5 may possess lower royalties, but for AAA studios Unreal Engine 4 should be a no brainer. Because of how easy it is to use, the familiarity excuse (sticking with a dated inferior engine because of familiarity) isn’t even a good one.
In a dream world, the vast majority of video games would be made on Unreal Engine 4, as well as the graphics and audio APIs discussed in the following pages. This is an unrealistic wish of course, but it would be nice if it had the same widespread use that Unreal Engine 3 saw, but unfortunately the opposite is true.
EA made the noteworthy decision to move all of their games to Frostbite 3 engine. While not even close to an excellent well rounded game engine, it is the best they have and it might have been a good move. It would certainly be a good thing if Bethesda did the same thing with id Tech 6, since that is one of the very best engines available and they own it. Its use of Vulkan is extraordinary, and as if it wasn’t good enough, id Tech 7 is in the works with focus on Ryzen CPUs so expect top tier multithreading.
Croteam’s Serious Engine is ever improving, especially its Vulkan support. 4A Engine in the upcoming Metro Exodus will be interesting to evaluate. CryEngine V is a fairly well optimized engine capable of gorgeous visuals, very good physics, and can support a decent amount of genres and also DX12. It adds Vulkan support as of July 2017.
The Physics Engine
The Physics Engine
Unreal Engine 4 uses NVIDIA PhysX by default, albeit on a CPU level. But the ideal physics engine, if one simply wants the most advanced game, is indeed PhysX but at a GPU level. GPU physics processing can potentially be much faster than CPU implementations, resulting in more potential physics effects in games as well as better performance.
So this is our only chosen technology in this article that is not open source. But it is the best, which is why we choose it. PhysX is by far the most advanced, realistic, and capable physics engine for games. It can do it all, whether you’re talking about solid object physics, soft body physics, fluids, gases, you name it. And it does it all on a level that is unbelievably realistic. The funny thing is, PhysX has been essentially this advanced for at least eight years. The reason it hasn’t caught on much is because for years it has been limited to running off of NVIDIA GPUs (utilizing NVIDIA CUDA), or CPUs which are too inefficient. CPU physics will always be very limited, and game consoles use AMD video cards so GPU PhysX was out of the question.
This has changed now as PhysX now supports DirectCompute, and early indicators show it might perform even faster there. DirectCompute is an API introduced by DX11 and survives in DX12, which means it is Windows exclusive. A better option than CUDA, but the best option remains OpenCL GPU acceleration which would yield the best potential performance (ironically on AMD’s more efficient, more parallel architecture).
NVIDIA FleX is based on PhysX technology. Basically a rebrand and it is a smaller library of PhysX.
All credit to the rightful owners of the videos and content below:
The video below was recorded by me personally:
The ideal solution is to have PhysX ported to OpenCL, which, as the name implies, is a multiplatform computing language which supports GPU acceleration, and it is open source. This way, all GPUs can run GPU accelerated PhysX and we can all get more advanced physics in games, with more physics effects too such as destruction. Although AMD’s OpenCL performance is generally better than NVIDIA’s, so AMD would be defeating NVIDIA at its own game if this happens.
With DirectCompute GPU PhysX, more games should use it. No game uses it so far.
Graphics and Sound APIs
The Graphics API
All the talk is on both DirectX 12 (or DX12) and Vulkan today, as it should be. We have AMD and their Mantle API to thank for these, as both Vulkan and DX12 stem from Mantle. They are largely the same API, with the main difference being that DX12 is owned by Microsoft and requires Windows 10, while Vulkan is an open source API that does not require Windows 10. In fact, Khronos Group preaches multiplatform compatibility unlike Microsoft. For this reason, we want Vulkan to become the standard API. Open standard is better than closed standard for the consumers, and Windows 10 has slightly limited backwards compatibility. This, combined with the fact that Microsoft wants to force everyone to use Windows 10 is awful for the computer industry and gaming industry. Vulkan and Linux are ideal, objectively the best paths for the advancement of gaming.
While DX11 focused on graphical improvement (and certainly succeeded), both DX12 and Vulkan focus on cleaning up the part that DX11 didn’t improve upon enough, and that is optimization. Both DX12 and Vulkan can lead to incredible performance gains on all systems, especially AMD graphics cards (but not only these).
The key features to both DX12 and Vulkan are reduced driver overhead thus better GPU optimization, reduced CPU overhead (alleviating CPU bottlenecking), superior multicore/multithread CPU usage, and greatly improved multi-GPU capabilities.
Some might be convinced that NVIDIA cards are doomed to perform worse in DX12/Vulkan than DX11, but that isn’t true despite many present day results showing it to be the case. The reason NVIDIA cards perform worse in many DX12/Vulkan titles is because those games do not have a true, complete DX12/Vulkan implementation, rather they just enable asynchronous shading. NVIDIA cards can perform asynchronous compute at a driver level only, while AMD cards can do it on a hardware level. As a result of this architectural deficiency on NVIDIA’s behalf, they perform a bit worse when asynchronous shading is used. NVIDIA needs to cut the slack because this is one of many features that can boost performance, as seen by AMD video cards.
But even with today’s NVIDIA graphics cards, they would perform much better in a game built from the ground up in DX12 or Vulkan compared to any other graphics API. Even if asynchronous shading was used in the game; the other benefits of DX12/Vulkan would greatly outweigh NVIDIA’s inefficiencies at asynchronous compute. This is proven by 3DMark’s low level API tests.
In conclusion, Vulkan is the ideal graphics API, but if DX12 is used instead (which it likely will be) we can’t complain much. DX12 and Vulkan are very much equals with both representing a remarkable technological leap for video game development, except for the fact that DX12 requires Windows 10 and is a closed standard owned by Microsoft, while Vulkan is open standard like OpenGL and has multiplatform compatibility.
The Audio API
Continuing the theme of open source being potentially the best option (e.g. open source Unreal Engine 4, open source Vulkan, and now this), the best potential audio API is none other than OpenAL. It is the spiritual successor to DirectSound3D, which Microsoft and Creative killed with Windows Vista. It is the most advanced, and once again is open source (although there are closed implementations too), supports many platforms including Linux, so what’s not to like?
OpenAL, like DirectSound3D, is capable of 3D HRTF sound processing, or simulating a 360 degree sound field and taking into account the coordinates of everything in the game world, and mapping it to a stereo system accordingly. Binaural audio simulation, in simpler terms. See the video below for a real world example of binaural audio:
OpenAL has numerous advantages over the now depreciated DirectSound3D: open source is one of them as is its cross-platform nature, but it also doesn’t require hardware (X-Fi sound cards by Creative, although Auzentech used to make sound cards with Creative’s X-Fi chips as well) to take advantage of it. If playing an OpenAL game, follow these steps to enable advanced 3D HRTF via software. This results in binaural sound simulation for stereo/headphones, and better surround spatialization for surround systems. It is not as good as hardware acceleration via X-Fi sound cards, but still better than what every other audio API can accomplish (minus DirectSound3D which is the same as OpenAL hardware acceleration).
Then there is EFX which is its open standard successor to Creative EAX. Some of the features EFX offers are more realistic positional sound processing (distance based), dynamic echoes and reverb (combine these with the distance travelling and you have amazing sound effects), environmental occlusion (sound dynamically passing through objects), more simultaneous environments and sound processing in general. OpenAL games have the best possible surround localization, thus better surround support.
Since it’s open source, OpenAL games with broken/dated implementations, such as Amnesia: A Machine for Pigs, can be modified to have excellent surround support, EFX, and even hardware acceleration, just by updating some dll files with the latest ones found here.
Sound processing has largely gone backwards over the years, with the old DirectSound3D games from 10-15 years ago having more advanced sound processing and effects than any of today’s games.
The use of OpenAL is becoming more and more rare. It might not be used anymore at all. There is no good reason for this. OpenAL (OpenAL Soft at least) is open source and free to use, and while “out of the box” it lacks features, you can easily find implementations and files online that have the work done for you, enabling things like surround support and EFX. The benefit of open source Thus, OpenAL is bar-none the best audio API, it’s free to use, it’s not particularly challenging to implement, and a developer can find much of what is needed online. Yet it is not being used… this is just one example of the sad state of the gaming industry.
To find out what audio API games are using, check out the link below although it isn’t complete.
Unreal Engine 4 is the most capable game engine and few can do better than it in any genre. NVIDIA PhysX (GPU accelerated) is the most advanced, realistic, capable physics engine. Vulkan is the ultimate graphics API, beating out DX12 simply because it is open standard and multiplatform capable. OpenAL is without a doubt the best audio API. Unreal Engine 4 can use all of these things, not just in Windows but Linux as well, although its Vulkan support is premature.
These four things are the best, and three of them (NVIDIA PhysX being the exception) are open source. Do you know what else they have in common? All four of them are almost never used. Just another example of the sad state of the gaming industry.
DX12 will undoubtedly become standard, which is exciting even though it’s a Microsoft closed standard that requires Windows 10. Unreal Engine 4 is gaining popularity, but whether or not it will see the same widespread adoption as Unreal Engine 3 remains to be seen. We had better hope it takes over for UE3. OpenAL and GPU PhysX are both abandoned; there aren’t really any good reasons for the former being abandoned, and the latter is stuck in the water due to NVIDIA making it proprietary.
Of course, there are other beneficial technologies that the industry is not pushing for strongly enough. How about better surround standards? We mentioned Dolby Atmos and DTS:X earlier; having these as standard, or something comparable with up to 7.2.4 channel surround support, would be ideal (should be possible purely through OpenAL). As far as graphics technology goes, we should have a stronger push for tessellation (although this has improved substantially over the past 3 years), Temporal anti-aliasing, more dynamic lighting in place of static, real time global illumination, and of course more physics-based games. Support for wider color gamuts like DCI-P3 or better yet Rec 2020 would be an excellent improvement as long as support for the usual sRGB isn’t ignored. Support for HDR technology (not just the usual HDR rendering) should be a focus once OLED displays become more common (it’s an even bigger issue that LCD support/development hasn’t been totally dropped in favor of OLED). More work yes, but not typically an issue as long as developers have the resources and more importantly publishers don’t rush them. But publishers will continue to rush heavily for the foreseeable future.
The fact that the industry doesn’t push for any of these technologies, except for the graphics APIs discussed (but even then, DX12 more than Vulkan which is a mistake), shows how misguided and flawed the industry (as well as NVIDIA) is. Just like with the games themselves where the goal is usually not to make an improved product, rather it’s typically to maximize profits and minimize expenses, made especially amusing when one considers how many big name publishers make such incorrect assumptions about what the consumers really want.
When 2000s games such as Half-Life 2 (2004), F.E.A.R. (2005), Dark Messiah: Of Might and Magic (2006), Crysis (2007), Cryostasis: Sleep of Reason (2009), Wolfenstein (2009), and believe it or not many others outclass most of today’s games in the same genres (especially AAA games) in some of the most important, gameplay-affecting technological areas such as physics, particle effects, AI, dynamic lighting and shadows, you know something is wrong with the gaming industry. Not to mention how almost every 2000s PC game is years more advanced than any of today’s games in sound processing. Don’t be mistaken, this is the current state of the industry. Technology hasn’t gone backwards (except for sound excluding OpenAL), but the games have.