Naughty Dog using PS3 engine on PS4

In terms of improvements ND need to make, they may well need to rewrite some underlying mechanics on various algorithms as they have a different style CPU to Cell, but these should be transparent to the engine as a whole. Art pipelines remain the same, just with potentially more opportunities with shaders. Modern features like tessellation should be able to be slotted in. If not, if the art pipeline doesn't allow for it, then they'll need to start rethinking the base engine, but I guess they choice shows this isn't the case.

The main reason for any rewrite in coding is if your source material is poop (either poop because it's old and built on the remains of remains of old, old code, or because it just can't be adapted to new technology) and it's better and more efficient to start again from scratch. ND have the luxury of maintaining a top-tier in-house engine team who can focus on the backend technology with absolute attention and design an engine perfect for their needs. The only obvious need for a rewrite would be if they changed game style.

In contrast, something like the LBP engine may well need a rewrite as it was created by a small team for a specific game to a short deadline. It probably wasn't engineered with a future in mind so much as the current project, and solutions were probably shoe-horned in as the code spaghettied.

That's a lot of presuming by me, but I just want to convey the gist of what it means to develop an engine for a game. Something like CryEngine needed a rewrite because the source was designed around insane PC builds. CryTek's experience on console will hopefully have opened their eyes to alternative ways of doing things with efficiency in mind, and they can take that knowhow and apply it to a new engine built around different principles. You only change an engine if you have to.
 
They could rewrite parts of the engine if the want to hop on the bandwagon for The Cloud.

Or not. They might be able to create a job or agent type that encapsulates a game entity with a buffered/smoothed remote update stream.
There might need to be a cloud engine.
 
Most likely games that were pretty far in development getting switch over to the new system.
Perhaps the code is easy to port because of how developer-friendly the PS4 is , but even so it doesn't seem to be a menial task to transform the code and instruction sets to x86 format.

The PS4 is certainly a more sophisticated, modern machine. Perhaps they want to launch this game during the release date of the console or they are waiting now that half of the work was done to abandon the current engine forever and work on a new one later.
 
I would say compile the source with an x86 target. That leaves some minority of the code that isn't in a higher-level language, and low-level code that was written specifically to the architecture, particularly the weird SPEs.

A lot of this is written at a higher level, wrapped in libraries, or intrinsics.
The next step is getting it to perform at a decent level, but getting it to at least not explode everywhere is not anywhere near the same effort as rewriting an engine.
 
In terms of improvements ND need to make, they may well need to rewrite some underlying mechanics on various algorithms as they have a different style CPU to Cell, but these should be transparent to the engine as a whole.
This is it. We've moved CPU architectures (again), GPU architectures (again) but the basic design philosophy of of the PlayStation 3, which was an architecture whose power could only be tapped by breaking tasks down into bite-size joblets that could be run in parallel on the SPEs remains the same, albeit with the choice of CPU cores or GCN compute unit tasks to do the work.

Thinkings about it from a game architecture angle, the approaching next generation is far more similar to current generation than any previous PlayStation generational leap, and this time the hardware won't drive developers insane.
 
They could rewrite parts of the engine if the want to hop on the bandwagon for The Cloud.

Or not. They might be able to create a job or agent type that encapsulates a game entity with a buffered/smoothed remote update stream.
I wonder if the Sony CPU/GPGPU concept could be easily adapted to cloud computing? If a job could be marked with priorities, low latency jobs could be farmed off site. The developers could package it appropriately knowing it may find its way to the cloud, or maybe only jobs with a certain amount of data are selected for the cloud. This would probably be the ideal solution for developers, letting the underlying architecture manage where jobs go and making a transition to a pure cloud future transparent. You just write joblets and don't care where they get processed as long as they are.

Perhaps the code is easy to port because of how developer-friendly the PS4 is , but even so it doesn't seem to be a menial task to transform the code and instruction sets to x86 format.
I don't imagine optimised SPE code will be trivial to port, but ND's engine developers need some work to do to justify their employment. ;) Anything running on PPU should be easy to port to a Jaguar core. I honestly don't know if the low clockspeed would impact that though. High level RSX code should port easily, basically recompiling for the new architecture. That means ND can keep their highly evolved toolchain and and get a running start. As they poke around with the hardware, they can make improvements just like they did with PS3.
 
This is not surprising, a game engine is built around multiple subsystems totalizing several millions lines of code. For a large part, most of this code is perfectly good even for the PS4.

The jobs subsystem, the collision subsystem, the input/output, the text rendering component etc etc all this code has been well tested and offers the needed functionnality so why rewrite it ? A large part of an engine is not sexy and is not performance critical, but it just have to work reliably. There is this myth of the "built from scratch is better" but more often than not,it is a bad idea and even a recipe for disaster in a large project.

Nothing keeps Naughty Dog from rewriting the renderer subsystem and I'm sure they will do it. They can improve other subsystems but keeping the foundation that proved successful for them and allowed them to ship 4 games in 6 years is the best strategy.

It is not like old code could rot or become less efficient with time. Look at game engines released in open source, a part of idTech 4 was already there in idTech 2 or idTech 3. Even Valve is still using part of idTech 1 in the Source Engine !
 
Physically based rendering is all that's needed, if it wasn't already in there for U3. Shadows, reflections, and area lights are the other 'big' things. None of which needs an entire rewrite of the whole engine I think.
 
I wonder how well their engine would handle a realistic game vs stylized games.
The stylisation is mostly in the art, although they'd need new shaders for realistic foliage and skin. however, I'm far more interested in eliminating the stupid game limitations like invisible walls. Nathan Drake, or whoever his successor is, shouldn't come across a small heap of rocks and find himself unable to proceed. Uncharted with none of the game limitations of Uncharted would be far more fun and a better game than Uncharted exactly as is but with photorealistic graphics. It also be all the more jarring to see Nathan leap 10 feet across a ravine using his arms if he was photorealistic. The brain would make note of his super-human abilities even moreso than it does now.

As the terrain is clearly scripted/structured in the ND engine, that may be one area that requires a rewrite to make terrain traversal completely procedural and limited only by the physical limits of the protagonist. We'll need to see LoU to see what state ND have the engine now.
 
I don't think we're going to see the end of invisible walls marking the bounds of game worlds in the coming generation. I'd argue this is more a design and art issue than a technical one. It surely is frustrating from Drake to bump up against a small pile of rocks and not be able to progress further and the world designers need to get more creative with defining the boundaries of game worlds - without endless natural or manmade hazards marking a clear 'no go' zone.

Procedural world generation letting you go anywhere introduces its own problems, such us letting the player wander off in the wrong direction and potentially getting lost to boot. Not to mention the director loses control of the pacing and timing of critical events, which a big part of what makes games like Uncharted and, form what I've seen of it, The Last of Us, execute so well. The world's of Uncharted are only so much smoke and mirrors; they feel large and everything is tightly controlled.
 
Of course they are. Rebooting an engine from scratch is almost always a phenomenally bad idea, and can set you back years.
 
A few of the to do list for their next engine iteration should hopefully include:
Some kind of dynamic GI
Physically based lighting
Area Lights
Realtime reflection
tessellation
compute based particles or fluid dynamic
realistic hair and cloth

On top of higher res textures, more polygons, better physics and bigger levels. It might be a bit much to ask but if anyone can do it it would be ND.
 
Thing is... if they had reused their PS2 engines for PS3 games, I doubt the results would've been as good as they are now. The difference in architecture of a pre DX8 era custom chip, versus a late DX9 one is quite big. At least the rendering path would have to be completely rewritten.

And since Cell was "hard to take advantage of", a similar problem exists for the rest of the code as well. EE was also a quirky chip.

Now, the "design" of the consoles is probably still close enough to not require massive rewrites to get them working, or working well.
 
Thing is... if they had reused their PS2 engines for PS3 games, I doubt the results would've been as good as they are now. The difference in architecture of a pre DX8 era custom chip, versus a late DX9 one is quite big. At least the rendering path would have to be completely rewritten.

I do not get what Direct 3D has to to with ND's engine.
 
I do not get what Direct 3D has to to with ND's engine.
He means conventional GPU as oppose to proprietary EE+GS design. DirectX is a suitable reference point for talking about conventional GPUs that all work in the same general way seeing as they are built to DirectX specifications.
 
How many are making a new engine?
I can name 5 devs: Konami, Capcom, Square Enix, Ubisoft and Bungie.

Konami made Fox Engine, and of I am not mistaken it took them at least 4 years.
Ubisoft made new engine for Watch Dogs, Disrupt, and they started developing the game in 2010.
Square made Luminous Engine and Capcom made Panta Rhei but I don't know when they started.
Bungie made a new engine for Destiny, no name so far, and their last game come out in 2010.

CD Project Red and IO-interactive won't be making new engines anytime soon that's for sure so who else made a new engine?
Is 343 making a new engine for the next gen?
 
Last edited by a moderator:
Multiplat devs naturally have a more adaptable engine imo than exclusive devs. Furthermore, most multiplat engines already offer next gen technology...which they call very high settings in PC games. So I can understand that it makes no sense for them to build a new engine from scratch, right?

But what about exclusive devs, like ND? They have an engine dedicated to the weird PS3 architecture. Is such an engine really that of a good base for next gen? I had the impression that GG did at least a major overhaul (e.g. lighting) of their Killzone engine.

Even if they would start from scratch, they could use lots of their existing high class parts like AI and animation and copy it into the new engine, right?
 
Even if they would start from scratch, they could use lots of their existing high class parts like AI and animation and copy it into the new engine, right?

If it makes you feel better, they started from scratch and copied in the things you mentioned (+ more).

:)
 
Back
Top