The Witcher 4 Bets on Unreal Engine - We've Asked Other Polish Devs If It's Good Decision
The engine is any game's foundation and framework. It has to be robust and modern. We've asked the developers working with different engines every day about the ins and outs of game dev, with particular focus on pros and cons of different engines.
By following the announcements of new, high-budget games, we increasingly often pay attention to what engine a given title will use. The fact becomes more and more relevant, and we can make an educated guess as what to expect from a given production just by learning what engine it uses. For example, EA's Frostbite seems to spell technical hitches, Bethesda's Creation means outdated graphics, Ubisoft's Snowdrop brings incredibly detailed cities, and Unreal 5 seems to be the engine to definitely thrust games into the new generation. The word "engine" has become exceptionally comfy in computing. But it has a broader meaning here than it does in terms of mechanical energy conversion.
The development engine is a core, comprehensive platform or template for creating applications. Pretty much any kind of software uses one. Web browsers and databases also have their engines, but the most interesting cases for us are, of course, games. The engine consists of many elements responsible for the operation of physics and collisions of objects, sound effects, network code, scripts, animations, artificial intelligence behavior, etc. It may also contain a graphics renderer. Efficient work with any engine requires dedicated programming tools.
Such a tool set allows developers to significantly simplify and accelerate the creation of many components of the game, often reusing ready code fragments. This reduces costs, keeps bugs in check, and so on – essentially, it shortens the entire development process. Of course, the complete engine is not a cure for all the ills of gamedev, and not everything goes according to plan always. As recipients, we only get to know the final effect, i.e., how the game looks and works. But it looks completely different when you go behind-the-scenes.
How exactly? What are the biggest advantages and disadvantages that game engines present? How to decide whether a proprietary engine will be more apt than third-party? We asked these and a few different questions to developers from several well-known Polish studios: Techland, Flying Wild Hog, Frozen District, Frozen Way and Destructive Creations.
Proprietary or licensed?
Gamepressure: One of the most interesting decisions that have to be made before undertaking any programming effort is the choice of the engine. Some studios spare no resources creating their own platforms. Others, even large ones, use ready-made, third-party solutions available on the market: Unreal, Unity, CryEngine, etc. Techland, for example, used its own engines for Dying Light 1 & 2: Chrome-6 and C-Engine, respectively. With the third part of Shadow Warrior, FWH studios switched from Road Hog Engine to the well-known product by Epic – the Unreal 4. What are the reasons behind such choices? When is it viable to start from scratch?
Grzegorz Rdzany (Flying Wild Hog): Looking at it purely in terms of budget, creating your own engine is usually more expensive than licensing a third-party one. Especially when you look at it in the context of just a couple games. But there are several factors that sometimes make it more profitable to use your own technology. First of all, own technology can allow much more freedom in the implementation of own ideas. Commercial engines, since they must be universal to at least some extent, are sometimes suboptimal in some respects or even lack specific functions that we would like to have in our game. This means that you have to adapt the engine to your needs anyway.
Own technology is usually much more familiar and better understood by the developers working on it, so it's easier for them to implement more unconventional solutions. If a company specializes in a certain type of games and has a set of unique solutions for them, then maintaining your own technology may turn out to be more beneficial in the long run, especially when you have the appropriate human and financial resources.
Patryk Czajka (Frozen Way): Unity and Unreal Engine are flexible and offer many ready-made functionalities, but they also have many elements that are useless or do not match the specific requirements of a particular game. When creating their own engine, developers implement only the solutions they need, so they're not limited at later stages of work. Creating a game in a ready-made universal engine is simpler, but often requires a compromise.
Jaroslaw Zielinski (Destructive Creations): Rather few new companies create their own engines; they rather use the available ones. In the case of older companies, it's more a matter of how they've evolved. Twelve years ago, you had to pay hundreds of thousands of dollars to license Unreal Engine 3 and release a game on it. Due to lack of robust and less expensive alternatives, companies treated their own engines as treasure. Some of these companies have survived, and they often continue creating their own tech developed over the years. However, there's a tendency to move away from that; now it's much cheaper and more convenient to pay for a complete engine than to develop your own from scratch. Developing your own engine is rarely beneficial at all. At least not for companies that are primarily concerned with developing games.
Kris Krej (Frozen District): They're not created anymore in general. Even here in Poland, we have numerous examples of companies that are moving away from their own engines to Unreal or Unity (e.g., The Witcher 4 uses Unreal, Layers of Fear Unity), although the authors of them both have their own engines. I haven't heard of a single team that worked on either of these third-party engines and then decided to switch back to their own.
Show me your engine, I'll tell you what game you are
GP: In some cases, the choice of engine is not just a financial one. It's also influenced by the game's genre, as some platforms are more suitable for a specific type of gameplay than others. The studios that create their games on the Frostbite engine, originally intended for the network FPP shooter Battlefield, probably know it best. What do the devs think?
Lukas Burdka (Techland): Game engines have different capabilities and each is best suited to a specific type of game. Engines meant for TPP, FPP, strategy and sports games put emphasis on very different sets of functionalities. [...] The fact that different engines are suitable for different types of games is more a matter of specialization than limitations. It's just like cars. Off-road car, rally car and F1 car are technologically adapted to completely different goals and it is difficult to even compare them with each other. In the case of game engines, the systems they consist in are dedicated to specific types of productions. For example, real-time strategy doesn't need super realistic animations nor facial expressions, but an extensive artificial intelligence system is invaluable.
Kris Krej (Frozen District): I would not see any point in making a game on Unreal Engine that doesn't fully use its graphical capabilities. So, using it to develop card games or simple logical games wouldn't make much sense. I have the impression that the more code you have to write yourself, the more encouraging Unity seems.
Xibuk: (Frozen District): Unreal was originally an engine designed to develop multiplayer FPS games. It's now much less apparent than it used to be, but you can still see this heritage. Unity allows you to create complex programming concepts that are relatively easy to maintain. In the UE, it also is possible, of course, but probably more difficult.
GP: Is there a truly universal engine at all – one for everything?
Xibuk: (Frozen District): In my opinion it is not possible to create a truly universal engine. Such an idea seems tempting, as it would theoretically let you cover the entire market, but such a behemoth would lose versatility as soon as you wanted to do something more specialized and complicated. A different approach is used for RTS games, a different one for FPS games. Rendering is differently, we have to create logic. Universal engines pay for their versatility with complicated editors, significant times of project building or the weight of the initial project itself.
Kris Krej (Frozen District): In my opinion the engines are already very versatile. I don't know if it would be possible and necessary to push that any further. If I wanted to develop a text-based game on Unreal Engine that works as an html page, it would be an incredibly weird idea. It's a bit like wondering why you can't make one universal knife: one that's good for spreading butter, bushcraft, and precision surgery. Maybe you could, but what's the point?
Grzegorz Rdzany (Flying Wild Hog): Theoretically it is possible, but probably no one has done it yet, because it would require enormous effort, perfect architecture and immense discipline in implementation. It also seems that it would not be beneficial. The problem is that different types of games have different requirements for each individual engine system. Some games need to display a lot of animated objects, but with relatively low detail (such as strategies), and others need less objects, but with a high level of fidelity (e.g., FPP games). In some, the player moves relatively slowly (walking sims), and in others, very quickly (e.g., all kinds of racing games and some arcade). There are hundreds, if not thousands, of these parameters and their extreme values. Reconciling them within one technology is a real challenge. Usually, it's easier to just apply different engines to different needs.
When the engine fails...
GP: Since there are no fully universal engines, issues such as lack of some essential functionalities or inability to add given mechanics arise during the development of most games. This requires particularly hard work and compromises, which – unfortunately – may entail giving up interesting and innovative ideas.
Patryk Czajka (Frozen Way): We can try to write our own solutions or use an external package or plug-ins. If we're unable to implement it in this way, we have to resort to creating a forum thread and hope that we're not alone with the given issue, i.e., that we will get the right number of "upvotes," and the engineers will have time to fix or implement the required functionality. Until that happens, you need to trim the mechanics in the game to match engine capabilities. Game development is a compromise, but it's important to realize that the engine is only a framework, a project tool, not a game proper.
Grzegorz Rdzany (Flying Wild Hog): We usually have several options at hand. The most obvious one is to create the missing feature – and so we often patch the engines ourselves. However, in doing so we also need to keep in mind that these changes may arise further issues with subsequent engine updates. Other possibilities are: finding ready-made solutions in the UE Marketplace that meet our needs, using middleware and third-party libraries, or determining whether such a function will eventually appear in the engine development process, and adjusting our plans to wait for it.
Kris Krej (Frozen District): We can create this feature, abandon the part of the project that requires it, or change the engine – in that order!
Sir, that's how the thing works!
GP: The presence or absence of some functionalities in the game engine allows you to create a quick list of advantages and disadvantages of a specific platform based on it. On top of that, there's the complexity of a given engine – some are easier to learn, and more accommodating for own solutions, others less so. What is it like with the most popular engines – Unity and Unreal Engine?
Patryk Czajka (Frozen Way): Unreal Engine is complicated for programmers, but easy for artists. I would describe Unity as difficult for artists to work with, but accessible to programmers up to a certain level.
Kris Krej (Frozen District): One of the advantages of Unity is that it prototypes very quickly; the engine can be easily expanded, creating custom editor tools is quite easy, and its relatively "light" – it will work without any problems on an average laptop. It's also very popular – it's easy to find experts, it's easy to find solutions to most problems you may encounter. The disadvantages include lack of a meaningful character generator (Unreal offers a dedicated MetaHuman Creator) and not the best lighting system.
Xibuk (Frozen District): Additionally, a great advantage of using Unity is the ability to write code in the high-level programming C# language, which, compared to C++, is much more convenient to use in UE. Unity's main weakness is the inability to edit the engine code. The work environment is more conducive to programmers, at the expense of comfort of graphic designers and developers.
Valdur (Frozen District): Disadvantages of Unity? Slow development of DirectX 12 and ray tracing support. Additionally, at the present time, many key components, such as networking, rendering and UI, are implemented in several ways, some of which are still in infancy, while others are obsolete.
Grzegorz Rdzany (Flying Wild Hog): Certainly, in the context of learning any technology, it's important to have access to detailed and up-to-date documentation, training materials, the size of the community around the technology, the number of available examples of solutions, etc. If we consider all of this, we have to admit that Unreal Engine is one of the most affordable engines. Other commercially available engines also provide a lot of concrete support to new users. You could say that the most difficult engines to learn are those made for internal needs of individual studios.
There are two kinds of help, only one of them is free
GP: With a proprietary engine, the studio depends on its own strength and its own specialists. With widely available solutions, you can count on the help of the engine's publisher, for example Epic. So, what is this support like? What can you count on?
Grzegorz Rdzany (Flying Wild Hog): Epic has quite extensive documentation and a lot of training materials. There's also a forum where the community helps each other. There's also UDN – a portal dedicated to license holders, where you can get direct support from Epic engineers in more difficult cases.
Patryk Czajka (Frozen Way): Two people from our team are currently talking to the developer of the Meta Sounds system, solving problems on an ongoing basis. This is possible thanks to the open Unreal Engine Discord, where you can meet such people. The courses on the official website of the engine are a great support as well. Some of them are free, however there is an option to pay for the extended version. The thing we like the most are the streams from the Unreal Engine developers where they often spend their time showing off and promoting community created projects.
Unreal Engine 5 – a revolution...
GP: We're waiting for the first games on the new Epic engine – Unreal Engine 5. The technology demos shown so far herald next-gen graphics, awakening hopes for a technological leap that we haven't seen in many years. Will it be the same with the physics, or artificial intelligence? Time will tell. How did the professionals react to UE5?
Jaroslaw Zielinski (Destructive Creations): UE5 is, in my view, simply an upgraded UE4. It could as well not have a five in its name. Actually, this is not the level of revolution that happened between UE3 and 4. Epic attached a few things to UE5, mainly designed for FPP/TPP games. It also intensively develops tools to make it more accessible for beginners, who are still learning programming. It will probably have a lot of new crash-inducing problems, a lot of new, under-tested mechanics. But you have to switch to it, because it's the engine that will be further developed by Epic, with the previous iteration now walking towards the oblivion.
Grzegorz Rdzany (Flying Wild Hog): There are a lot of new products in UE5 that make developers happy. Of course, there are some new bells and whistles in rendering, such as Lumen and Nanite, but from our perspective, the changes in the tools themselves, their reorganization, improved stability and ergonomics, and simplification of some processes are also noteworthy. Added to this is a new data management and streaming mechanism (World Partition), which should finally enhance the possibilities of building large open worlds.
The new Chaos Physics system has great potential, but requires a few more iterations to reach maturity and provide the full advantage. It's also worth mentioning MetaHuman. It's not a technology strictly dependent on UE5, because it can also be used in UE4. Nevertheless, it's an impressive solution created by Epic and it will undoubtedly change a lot in future games, giving wider and easier access to cinematic experiences.
Patryk Czajka (Frozen Way): The Matrix demo made quite an impression on us. In the end, they managed to show the capabilities of the Nanite, Lumen, MetaHuman and World Partition systems in a single presentation. For now, we consider MetaHuman a good tool for creating movies, not games, for example. We are impressed with the Lumen system, which, with a good graphics card, provides incredibly realistic lighting in real time, and with a stable number of FPS. Frame-by-frame rendering of an image in another graphics program has a similar effect, so it's quite formidable a system. Nanite allows you to create almost photorealistic scenes, it gives a lot of freedom to artists, while in our project, it will be well suited to speeding up the stage of creating 3D models and polishing them.
Kris Krej (Frozen District): The Nanite – an approach that allows you to throw a very complex model on the scene, with the engine itself "virtualizing" its geometry so that the player sees the optimal number of details. This should be a significant facilitation for game developers.
Valdur (Frozen District): And Lumen – dynamic lighting without the need to "bake" maps in advance will make worlds less static, more susceptible to player input.
Lukas Burdka (Techland): We're constantly watching market trends, but at the moment, we are satisfied with our own solutions.
...won't Unreal's popularity hurt games?
GP: We can already notice a certain trend in the dominance of the Epic engine. Many productions are developed on it, and despite the arguments above that one, universal engine exists for all genres, it's Unreal that seems to have the greatest potential here. This begs the question: will the market not become flooded with "factory-line," extremely derivative productions? Essentially: can Unreal Engine's monopoly negatively impact the market?
Xibuk (Frozen District): The engine itself doesn't define the game, it's just the foundation. Even games on the same engine can differ in graphics style, functionalities, genres and many other things. I do not believe that even the complete domination of the UE on the market would result in the complete unification of games created on it.
Patryk Czajka (Frozen Way): I wouldn't worry about that! The engine is not the game and the end result depends only on the developers. Sure, the so-called asset flips will look the same, but that goes for any engine.
Grzegorz Rdzany (Flying Wild Hog): Of course, there's such a risk. But it must be admitted that a lot has changed in this regard since UE3. UE4 already allows for quite a significant influence on the final appearance of the games developed on it. UE5 should provide even more tools and possibilities to implement tailored artistic style and unique gameplay elements. So, a lot will depend on the creators themselves – their ingenuity and knowledge of technology. Some will do things according to the "template," others will put more unique characters into their games.