They didn't literally take the PS3 engine and drop it in PS4. That is impossible. It can't compile.
When talking about an engine, think of it at a really high level. For example, consider a
deferred rendering engine. There are multiple passes used in a specific order, each pass addressing very specific features of the scene. This is your 'rendering pipeline'. Think of it as a block diagram that describes the high level logic of how you render your image each frame.
Here's some from a google search:
Now if you step back further, you have a similar logic flow that dictates the processing of the other aspects of a game. It's not all graphics. You have control reads, I/O, AI, animation, physics, etc. Basically think of these various blocks at different granularity levels as all being black boxes. That is your 'engine'. It's a logical process flow describing
what you are doing. It's the
how that is very different on PS4.
So first of all, they needed to
port the high level logic. That isn't some sort of code dump activity since it's a different architecture. But yes, that port isn't a particularly complex task since they already have the design. Plenty of hits and misses along the way to get it optimized, but they already have the design. For the most part it's purely a programming task. The crux however, is each of these black boxes needs to implemented on PS4, and that very much is coding from scratch. Similarly, the specifics of what each step produces is not necessarily going to be the same. For example, a modern game is going to use some sort of LOD for performance and graphics fidelity. Their PS3 engine was limited. They obviously didn't have HW tessellation so they needed to do it by swapping assets, and memory constraints dictate how many swap points you have. In the case of PS4, this box will be different in implementation. Assuming it's purely SW, it will have far more swap points since we have way more memory available. I suspect though it may at least use some HW tessellation, so now they are going to running some sort of combination. Or think of anti-aliasing. It may occur in the same 'passes' as the prior engine, but that doesn't mean the implementation is at all the same. Same with lighting. It may be processed at the same passes ... but what is being processed, what features are included, can be quite different.
Also note, when it is stated it's the same 'engine', that doesn't really speak to what level the granularity remains the same. They could easily be adding in new features. Logically they are. For example, It's not like they are only going to use the same shaders. Many will be improved, and new ones created due to the hardware availability. The lighting will be quite different, post-processing effects will change, etc.
You mention that using the the prior 'engine' inherently stifles things, and cite the move of UE3 to UE4. That argument only holds water if their were major features missing in the prior engine. That isn't the case though, at least not for what is needed in this game. Their engine already supported a lot of advanced features that are only now hitting other engines. They were only limited by the processing and memory constraints of PS3. For example their animation system supports both physics and hand drawn animations, the main feature beings its ability to blend between animations in real-time (as opposed to either finishing a canned animation which sucks for gameplay, or interrupting the animation with a new one which looks janky). In the case of PS4, the new implementation will allow for more advanced physics calculations on the compute units, a ton more hand drawn animations due to memory, new processing to improve the blending between interrupts, all on a much more advanced skeletal system. These are all things that have to be coded.
Basically:
- An engine is not what you think it is. It is the high level, mid level logic flow
- They are using it because at least for this game, there's no reason to start over. It already supports crazy features others are just starting to implement
- Calling them lazy if ridiculous. A ton of coding was necessary for this. Besides being objectively wrong, it's also quite dismissive, disparaging, derogatory, and down right rude.
- If anything, they should be lauded for designing such a forward thinking engine