Hacker News new | ask | show | jobs
by WorldMaker 1326 days ago
> The more interesting part of the story is Unreal is being used. For a while Unity and Unreal have been pushing out in-house engines.

This is exactly the case for CD Projekt Red. They built their own engine (RED Engine) for Witcher 1 and built on top of it for the two Witcher sequels and also pushed it to its very limits for Cyberpunk 2077. A lot of useful criticism of the technological pains (delays, marketplace reception issues) they experienced with Cyberpunk was that they were using an in-house game engine unprepared for that genre (jumping from a game series where the fastest vehicle was a horse to one with cars and flying cars and planes is maybe not the easiest straight line). CDPR responded to that criticism, especially from their shareholders, that they would be minimizing that risk in future games development and externalizing that dependency and moving to an out-of-the-box game engine moving forward (including in that announcement that it would be Unreal).

This announcement for the Witcher 1 remake seems like a proper and interesting "full circle" for this story: CDPR's last engine was built entirely for Witcher 1. Using off-the-shelf Unreal to remake Witcher 1 sounds like a smart way on paper to get their feet wet and move on from the old engine to the new one using a project they are already familiar with and can help them realign from old pipelines to new ones.

5 comments

> This is exactly the case for CD Projekt Red. They built their own engine (RED Engine) for Witcher 1 and built on top of it for the two Witcher sequels and also pushed it to its very limits for Cyberpunk 2077.

Close. REDEngine was created for Witcher 2: Assassins of Kings. Witcher 1 was built on a modified copy of Bioware's Aurora Engine (the Neverwinter Nights engine).

REDEngine versions were:

REDEngine 1: The Witcher 2: Assassins of Kings

REDEngine 2: The Witcher 2: Assassins of Kings – Enhanced Edition

REDEngine 3: The Witcher 3

REDEngine 4: Cyberpunk 2077

To add to that (since I'm somewhat of an expert on this), the engine for Cyberpunk 2077 was completely rewritten from scratch, and only small bits were either ported from W3 or inspired by what was done in W3.
Huh that’s super interesting — full rewrites aren’t super common. Do you know why they elected to rewrite the engine completely?
I have to be careful here, but the simple reason is that the previous engine was not designed to handle the density nor the verticality of the CP77 world.

Not that Unreal Engine 5 can handle a world like CP77 either, despite what people may think with the Matrix demo.

Game dev isn't my field, I always find it fascinating though.

Why can't Unreal handle something like CP2077? Could be an "explain like I'm five" - details would be cool but I'm not sure I would even fully understand them, haha.

I'm not an expert on the topic either, but from similar discussions I've followed, the answer tends to be that out of the box and with the base settings, an engine like UE5 will be optimised for certain use cases. Different genres will have different specific needs, and may require your developers to do a lot of heavy lifting to make the engine performant under their specific conditions. A good example might be sim racing titles, which generally have the player moving a lot faster than the default scenario for an engine (which is mostly a slow-moving FPS, for example). At these relatively high speeds, the default antialiasing methods may result in serious graphical artifacts, and at the rate at which physics needs to be calculated (90-300 hertz) the default physics of the engine may be less useful, and you're forced to implement your own from scratch. That's not to say it's impossible, but you're opting out from a lot of the engine features, or in some cases, it's actively making your life hard.
"can't handle" here means "can't handle performantly".

Think of it like using the wrong data structure for the problem.

In Cyberpunk 2077: you can go from one end of the open world to the other, without ever seeing a loading screen, you can even install a mod that allows your car to fly and you can see the whole city from the top, I haven't seen a game like that in UE5 at that level therefore there is a possibility that it would struggle with something like that if it's not designed to cope with it.

Video games use a trick called Level Of Detail, which means if something is far away, you only render a very low definition version of that object, UE5 has it as well, however we don't know if it's capable enough for something like Night City, obviously the RED engine was built with a very hardcore LOD system that might be a massive pain to do in UE5.

If Unreal Engine 5 can't handle a world like CP77, why are they making the sequel to CP77 in Unreal Engine? Are they betting on the engine being ready for CP77's sequel when they need it to be?
Interesting! I’m not at all familiar with game engine design or even game dev, but the only game series I can think of that reliably handles large, open-world scale well is GTA.

Here’s a dumb question: in theory, would Rockstar’s internal engine (RAGE) have worked for CP77, or are the technical challenges simply too different?

The easiest dumb answer is that Rockstar has never licensed RAGE to an external developer and presumably doesn't develop the engine with that in mind at all so it is probably under-documented and hard to work with for any team that isn't Rockstar.

Also, I think there are other engines that do as well as RAGE, but none of them are licensed for external use either and are secret sauce to their various developers.

How is Unreal limited in a way that prevents it from doing something like CP77?
Do they license their engine? Building it just for CP77 would be a shame.
And if i remember correctly the aurora engine started life as MDK2.
I remember Neverwinter Nights 2. Decently fun game, but extremely buggy. It had some strange local lag where it wasn’t that unusual to command a character to move only to have them freeze in place then teleport back where they were 10 seconds before.
NWN2 was such an odd duck from an engine reuse perspective. When development on NWN2 began, Obsidian was handed a much older version of the Aurora engine source than what was currently available. While they did do amazing work with what they had, many weird bugs that were addressed by updated versions of mainline Aurora were now things Obsidian had to address in addition to the challenges they had to update the engine for the new game.
> Using off-the-shelf Unreal to remake Witcher 1 sounds like a smart way on paper to get their feet wet and move on from the old engine to the new one using a project they are already familiar with and can help them realign from old pipelines to new ones.

You're wrong in more than one way. As others already noted, Witcher 1 did not use REDengine - but also, it's not CD Projekt RED who is remaking Witcher 1; they outsourced the development to another studio.

As far as I remember, the first Witcher engine was a weird mash of the engine from neverwinter nights 2 and their own modifications, and they introduced their own engine with the Witcher 2.
> A lot of useful criticism of the technological pains (delays, marketplace reception issues) they experienced with Cyberpunk was that they were using an in-house game engine unprepared for that genre (jumping from a game series where the fastest vehicle was a horse to one with cars and flying cars and planes is maybe not the easiest straight line).

What made it unprepared? What special needs did CP2077 pose against a game like Witcher 3 when both are similarly open-world exploration RPGs heavy on dialogue and cinematics?

Specifically implied there is that one of the technical complaints was "draw distance" at speed and issues with "pop in" where things that should be visible aren't visible until "too late" after when they should be. If you build and tune a game engine for traveling at horse speeds and then add in vehicles that move three/four/five times as fast and some of them can fly, that puts a lot of strain on however you tuned the engine for drawing things at horse speeds and the expected results line up with many of the complaints about "draw distance" at speed and issues with "pop in".

Which is not to say that that was definitely the reason for some of those issues existed, but it does line up with what you would expect adding faster vehicles to an engine that hadn't been prepared for that.

There was a UE5 Engine demo that used Witcher-like environments in their tech demo.
Heck, something like Witcher 1 is relatively easy to pull off in UE5. XCom did it in UE3.5.

Witcher 3 being a third person game with no fast movement is also very doable. There's a plenty of adventure games made in UE using stteaming mechanics.

The moment you as cars or planes it gets much trickier. There's no example of UE5 flight sim I know of, for instance...

We had janky vehicles in UE way back when in the old Unreal Tournament 2003 - but that did not involve streaming levels.

I don’t remember seeing that. I know of a demo in an arid environment and the Matrix demo.

Do you have a link to the one you’re referring to?

Finally found it: That's from Jasom Slama directly : https://youtu.be/zO9hRBRmPi8?t=34