Scalability of ND's Uncharted engine *spawn

The UC2 engine clearly looks like it could handle a more "free raoming" game on a technical level.... heck, maybe Sucker Punch might be persuaded into adopting this tech for InFamous 2 (please say it is so)?

I think the main drawbacks to achiving the same visual fidelity seen in UC2 in an "open world" game, would be more financial (e.g. asset creation) than anything else. Mainly because i'd assume that ND could modify their engine to take into account any technical grievances along the way.

If ND decided to do an open world game with their tech I'm very sure it would be one of the most (if not the most) visual impressive games on the console, especially given that it would be a single platform exclusive.
 
What I'm saying is that there is a theoretical reason why perfect nonlinear streaming engine will display worse graphics than perfect linear streaming engine.

I get that, but I disagree that Uncharted 2 is one of those games that exploits the linear path of the game to deliver much better graphics (besides, the point that the assets created for it are done to perfection and the team focused on that path alone).

Your example might be fitting or it may not. While sector loading could be a possibilty, it could just as well be something more dynamic, loading smaller parts into the engine as it is required and thus have a more constant flow in and out of the engine. The history of ND suggests that they do have extensive knowlege in dynamic streaming as shown in pretty much all of their PS2 efforts and Uncharted 1 and 2, although more linear games, seem to continue that. At least the technology hints at that.

Maybe we're arguing semantics here. What is a perfect non-linear game? I haven't played AC, so a GTA type game is my best benchmark for comparison. Uncharted 2 has a big advantage in this area though: By not allowing any use of vehicles, the speed at which a player can get from one place to the other is fixed and known quantity while in GTA obviously, by using cars or helicopters, you travel further distances in shorter time and thus putting a larger strain on what the engine has to be able to handle. Given Drakes walking speed though, I'd say even in an open world, there would be a lot of time to predict easily what areas should be loaded without getting any hickups.


If we take Uncharted 2 settings and gameplay though, I have no doubt that they could open up all the streets and have Drake wonder around the entire city without loading screens. It probably woulnd't make any sense from a gameplay POV and put unnecessary strain on content-creation in any case.
 
Can ND do a sandbox game with the same amazing in their class of fidelity. I believe so. They did it with JD2 for PS2.

Yeah, this is what I thought of too. There is definitely a precedent there.
 
I get that, but I disagree that Uncharted 2 is one of those games that exploits the linear path of the game to deliver much better graphics

It obviously does, they're definitely pulling every trick that's possible - otherwise the game couldn't look better then pretty much anything else out there.

Anything that you can't get close enough to will not get the same texel/inch ratio and the same polygon count. This means that you can build an entire city from the fracture of the texture budget of an interactive, free-roaming one. You also don't have to model and texture the back faces of these vistas because the player can never get to see them.
That's why UC2 can use more unique textures and thus create a more interesting image, whereas open world games need to re-use the same sets of tiling textures which is boring.

Also, notice how many points there are in the game where you have to use your AI partner to get through some obstacle. Ladders, doors, etc. - but ladders especially, which are usually right in front of a viewpoint where you'd see those vistas. These events do add a bit to the gameplay - but the more important part is that they allow for several seconds of uninterrupted background streaming. The engine can detect when it has to start the loading of the next chunk, and the player is obstructed for a long enough time to complete it.
It's the sane as when the first game forced you to slow down to walking pace at certain points, but this solution isn't as boring or annoying (and you get to watch Chloe's bottom and she even jokes about it).

GTA4 allows you to fly a helicopter to pretty much any point in the game world in any sequence, from any direction. AC allows you to climb dozens of towers per city and go to any place you can see from there. I can't understand how anyone can say that UC2 could do the same while maintaining the same detail through all its assets.
 
I think the meat of the discussion is not, that there's a tradeoff. We all agree that tradeoff for one comes in the form of higher costs by having to create more assets and tackle especially game related problems.

The big question is: How well suited is the Uncharted 2 engine for an open world game from a technical point of view? To people that have played the game and made observations, it seems quite well, as the game already streams most of its content rather intelligently and not in the time frame while cut-scenes are running.

I wouldn't disagree. But if I am reading Laa-Yosh right, his point is that going to a total free roaming world in the mold of GT4, AC, Battlefield, Far Cry 1/2, Crysis, etc (huge, open worlds where players can travel in any direction at any time) that there would in turn need to be some compromises. Putting aside content creation, if in fact (?) some distant objects are significantly prebaked right there you have an entire tool chain revision and now need to balance the cost of these assets complexity. There are some cheap hacks (e.g. Far Cry 1 would swap out sprite foiliage with more polygonal ones as you approached) but there will be a cost to increasing the world size. There is a reason the aforementioned games use certain techniques. Port of it is budget for a consistant quality, but the more complexity you put around the player the less complexity you can have elsewhere. Linear choke points or scaled & balanced 'open areas' help control these factors. But there is a difference between that and a 4km x 4km world (and multiple maps using the same technique, all working at 30Hz with different art designs).
 
I'd also like to add that if Naughty Dog does not take advantage of the player's limited freedom, then they're very far from making the most of the system's resources. Considering their technical abilities I have to assume that they squeeze everything out of the PS3 that they can, by making compromises that other types of games can not do.
 
I'm thinking that a Jak and Daxter game with a huge world would be the perfect opportunity to show what their tech can or cannot do. :D
 
The distant areas you can see but not reach are static and of much lower fidelity and complexity that the areas you can walk through. They look fantastic, but to say they did not reduce the fidelity of those assets is not true, and it would also be a stupid decision. Why waste time rendering detail that the user would not see? Why not spend those resources on something that is up close, where the player would actually notice the difference? Uncharted 2 is the best looking console game I've played, so I'm not knocking anything about it. From a developer standpoint, it's just the smart thing to do.

If you look at some of the city areas you cannot reach, distant rock faces, distant towns and other unreachable areas, you can see they use less geometry and put a lot of the details into the texture. The game does have a fantastic draw distance.
 
It obviously does, they're definitely pulling every trick that's possible - otherwise the game couldn't look better then pretty much anything else out there.

Anything that you can't get close enough to will not get the same texel/inch ratio and the same polygon count. This means that you can build an entire city from the fracture of the texture budget of an interactive, free-roaming one. You also don't have to model and texture the back faces of these vistas because the player can never get to see them.

I don't disagree with you, I'm just not sure how accurate this is in the case of Uncharted 2. Yes, it looks stunning, but the smoke and mirrors can be seen nicely and to be honest, what they are doing is not out of this world, surely. For instance, there's a lot of clever use of bump-mapping everywhere. I.e. in Bormeo, the grounds that look very uneven with cracks in rocks and everything are in fact, perfectly flat (you can tilt the camera to expose them easily).

About not having to model and texture the back faces of these vistas - I agree. But how much of this is true in Uncharted 2? As I am sure you are aware, a lot of these places can be seen from a different angle. Without giving to much away for those that haven't completed the game yet - the city of Tibet is a nice example. While you are mostly in the streets, you get to climb up to higher grounds later and have a great view of everything that's outthere - even the streets that you have travelled before or the ones that you are about to. While I don't doubt that there are places that haven't been modeled since it wouldn't have to, I'm not convinced it is due to a technical limitation or limitation in the hardware the engine is running on.


That's why UC2 can use more unique textures and thus create a more interesting image, whereas open world games need to re-use the same sets of tiling textures which is boring.

Am I understanding you right in that case, that you don't believe that the engine already streams most of its data which could be used to make an open world game (assuming limitless budget and art-creation)?


Also, notice how many points there are in the game where you have to use your AI partner to get through some obstacle. Ladders, doors, etc. - but ladders especially, which are usually right in front of a viewpoint where you'd see those vistas. These events do add a bit to the gameplay - but the more important part is that they allow for several seconds of uninterrupted background streaming.

The engine can detect when it has to start the loading of the next chunk, and the player is obstructed for a long enough time to complete it.

True, though they - in most cases - also force the player to stay within a certain zone before the story has progressed or the battle has been won. We wouldn't want the player to leave any battle-zone before completing these objectives. Having to rely on an AI character is an obvious choice in this case, as the battle-field doesn't need to be changed (no wall that suddenly breaks that allows the player to progress) and it makes the whole setting realistic and believable.

While I agree that these areas could be used to pre-load data into the engine, it seems a bit unlikely to me, since there are enough other places in the game where the engine doesn't need to, to still pull it off. Besides, even once the game has supposedly loaded the data into the engine (during the ladder animation), there's no one stopping you to go back down and backtrack without causing any problems in the game. If what you are saying is in indeed true (that the game is infact loading the next segment), shouldn't this cause some problem if you suddenly start to backtrack? ;)


It's the sane as when the first game forced you to slow down to walking pace at certain points, but this solution isn't as boring or annoying (and you get to watch Chloe's bottom and she even jokes about it).

GTA4 allows you to fly a helicopter to pretty much any point in the game world in any sequence, from any direction. AC allows you to climb dozens of towers per city and go to any place you can see from there. I can't understand how anyone can say that UC2 could do the same while maintaining the same detail through all its assets.

I actually agree with this, that the walking pace as a lot to do with how they pull it off. Having no running-button certainly helps. That's no reason why the engine couldn't handle an open world at these graphics though, as long as you stick to walking speed. Despite GTA4 boasting an open world with helicopter being able to fly relatively quick from one A to B, you'll find that even that engine has its limits.

Maybe we should really define what we mean under open-world.

My point only goes as far to say that I think the engine is already quite optimized for an open-world, but is limited to a linear path due to story and optimizing assets and content to the places you see and walk through. I have no doubt though that the engine could handle the cities it already modeled "open world style" as long as you don't mess with the walking speed or implement vehicles to expose the limits of the engine.
 
See betan's post for the general idea of streaming the game world... it's usually not a continous approach as that is almost impossible to implement. Instead, levels are broken up into smaller areas.

So you first you build a huge level that you couldn't fit into the memory: geometry + texture + gameplay data (AI nodes, collision objects etc.). Then it's divided into chunks where the individual size (memory requirement) is based on how many chunks the game has to simultaneously keep in memory at any time.

One chunk will always be the one that the player's currently placed in.

If you allow for completely free roaming of the game world, and even unlimited visibility (as in GTA4 with flying) then you may need to use multiple chunks, as you have to keep several of the surrounding areas in memory. You may also have to use multiple LOD versions in concentric 'circles' if you can't rely on fog to hide everything.
There's been a nice presentation from Saint's Row 2 with the details, it's worth googling it.

But if you limit the player's movement to a completely linear path, then you only have to load the next chunk and discard the previous when the player gets close enough to a border between them. It's like this:
1. start in #1
2. stream #2 when player gets close enough to the border of 1/2
3. stream #3 and discard #1 when the player gets close enough to the border of 2/3
etc. etc. for #4, 5, 6...

If you move the player to an area where he can see #1 while he's in #4, he's probably far enough so that you can include a heavily simplified version of #1 into the actual chunk, at a fraction of memory. You know the player cannot immediately get there, you just have to limit his interactions (can't fire at enemies because they're out of weapon range).

So you can work with just two chunks and have seamless loading - if you're willing to limit the player's freedom. This means that you can use several times as many textures per chunk as a completely free roaming game.

This is a very, very important difference between the two approaches, and just because ND's previous games might have used the second, it doesn't automatically mean that UC2 is doing the same. As I've already explained, logic dictates that a linear game with a goal of fully exhausting the PS3's abilities should always use the more constrained approach.
 
Raytracing is still a trick if you're using shaders to simulate surface properties, until you can cast a bazillion rays for every reflected lightsource. That is, a soft specular sheen is achieved by tiny bumps on the surface, whereas a raytracer just approximates this with a bit of maths. And is right to do so, as there's no point spending effort where effort isn't required!

The only 'trick' regards an open world is LOD. If a street scene is 1 million polygons when viewed at street level in the middle of it, it won't also be 1 million polygons when viewed from a mile away. If it were, every single street viewable at that distance would mean drawing many millions of polygons a frame. We know from a distance that most detail will be imperceptible, so the engine can reduce the detail to match only what would be perceived.

If this is dynamic, it's an 'open world engine' by my reckoning. Whereas if this is prerendered, it isn't. The difference being whether the distance view loads the local-view models and reduces them to fit, or loads distant versions of reduced quality. AFAIK everything does the latter save a few rare cases like LAIR. From the sounds of it, U2 does a good job of rendering scenes from a distance using reduced quality 'distance versions' of its assets, and loading in local high-quality assets when players visit the spot, which sounds suitable for an open game. the only limting factor is how quicklt assets can be read when moving to new locales, which can be managed by capping the player's speed.

The other option for vistas is where the player never visits them, in whch case even 2D art can be used and look great, and it won't matter.
 
Also, just because I call it linear, it doesn't have to be a corridor shooter.
A chunk can look like this from above, a longer seqence of small areas:
--------

while another can look like this, with fewer but larger spaces:
-o-o-

Linearity only describes the way the player can enter and exit the given chunk. If the level designers are willing/able to use texture repetition, then they can even make very large open spaces within the chunk - the 'size' limit is not spatial, all that matters is the amount of memory used.
 
I think we are missing each others point. I am not disagreeing with you, that the U2 engine isn't interchangable with the GTA4 one. That is somewhat logical. These are two different games achieving two very different things.

For that reason alone, I mentioned Drake's walking pace to be part of the trade-off in my second last post. If you suddenly included Helicopters, vehicles and faster walking speeds, you would expose the limits of the engine, surely.

Having said that, I don't think this limitation completely negates the possibility of the engine being used in an open-world environment. The speed at which the player can travel is a known quantity and thus, shouldn't be a problem to loading the next sector at all. Instead of having the sectors placed on a linear path, I firmly believe that the sectors are large enough to offer more than just two possibilities (next and previous sector). You could just as well load sector 4, 5, 7, 8 while being in sector 6 and have the open-world with similar contraints as GTA4 without the help of vehicles.

After all, in GTA4, the people, traffic are all randomly populated. Lose them out of sight for long enough and they'll either disappear or be replaced with something else.

Every game engine has its limits and thus all games make trade-offs to work around them and to hide them from the player. GTA4 does just as well as all the other open-world games too. Uncharted 2 surely does it too, no argument there.
 
The problem is that if you can reach multiple surrounding sectors, then you can probably also see them, so some version has to be there in memory. Which is going to take memory away from whatever next/previous chunk you want to have stored as the next possible area.

A completely open world has to work like this:
123
456
789

If you're in 5 and stand on top of a building, then you'll probably be able to see all 8 surrounding sectors (or you can go with a hexagonal grid, but the concept and point are not that different). So memory looks like this:
- sector 5, highest LOD
- previous sector kept in memory or next sector preloaded, highest LOD
- sectors 12346789, secondary LOD

Whereas a linear world looks like this:
123

And memory looks like this:
- sector 2 highest LOD
- depending on player location and travel direction, either sector 1 or 3, highest LOD

The significant difference in memory consumption should be evident. You can spend all the additional resources you'd have to reserve for 4 sectors' second LOD level on each of your chunks.
This is why UC2 looks that much more varied and better then AC2 or GTA4, but it has to sacrifice something in turn.

So what I say here is that the limitation is not inherent in any way - it is the result of a conscious design decision. Naughty Dog traded higher texture fidelity for player freedom. If they wanted to have free roaming, they'd have to scale back the detail.
Considering the gameplay in UC2, and the quality of the graphics, I'd say that they made the right choice.
 
Last edited by a moderator:
You really can't back track very far in Uncharted 2. Almost very larger open area you have to drop into from a ledge so you can no longer get back. Or for the same purpose, a zip line, a door that closes behind you, some scenery gets blown up behind you.

There are countless little tricks in Uncharted 2 that control how far players can get back, go forward, and when they can go forward. Always allowing Naughty Dog to know where the player is, without the player ever knowing it within the gameplay.

That really stood out to me while I was playing the game. And it shouldn't be hard to notice when your paying attention to it.
 
By the way, Halo3 seems to have a linear level structure, but they only keep one chunk in memory. The chunks have overlapping beginning/ending areas to hide the loading, and the game keeps the state of entities even after you leave a sector. This is why you can travel large distances in open areas, even interact with faraway enemies and so on; but you can not see into previous or next chunks at all.

It'll be interesting to see if they change their approach with Reach...
 
The problem is that if you can reach multiple surrounding sectors, then you can probably also see them, so some version has to be there in memory. Which is going to take memory away from whatever next/previous chunk you want to have stored as the next possible area.

A completely open world has to work like this:
123
456
789

...

So what I say here is that the limitation is not inherent in any way - it is the result of a conscious design decision. Naughty Dog traded higher texture fidelity for player freedom. If they wanted to have free roaming, they'd have to scale back the detail.
Good explanation. I'd add though that, at least hypothetically, depending on streaming speed you could load in surrounding sectors as they become visible. Thus looking north towards 123, you wouldn't have 789 in RAM, and turning around, if you could grab these sectors in fast enough, you'd greatly reduce the RAM footprint of reserved space. You can then extend that to smaller, more numerous sectors (down to individual objects/buildings), and have a more progressive LOD. A lot here depends entirely on what scenes we're actually rendering! In theory you could have a completely open world in an ancient fantasy city of all winding streets and have so little on screen LOD isn't an issue!
 
Er, a 180 degree turn can happen so fast that it could make a PC choke just on uploading textures from main RAM into VRAM. I can't really see fast enough data transfers even from an HDD, and for pretty low res stuff...

Also, you have to factor in artist time here. Every chunk has to be manually created and optimized to fit into memory... I think the workflow is like this:
- build entire level in draft
- finalize gameplay
- split up into chunks
- do one or more art passes on individual parts, keep RAM budget in mind
- create one or more LODs per chunk manually

Making too many small sectors manually is too much work, and I don't see how you could automate the texturing/detailing process as it's an artistic task.
It also wouldn't work the other way, to finish a level first and split it up after that, because the visibility and gameplay are also important in the splitting process.
 
Making too many small sectors manually is too much work, and I don't see how you could automate the texturing/detailing process as it's an artistic task.

Making animations was also an artistic task before Uncharted. Now it can be aided with automatic transitions in almost every aspect.
As for LOD pipeline, this way or another there will be a need to get it and fast, proper tools already exist in some studios.
 
Back
Top