Oh wow, wall of text incoming. Sorry, but I hope it's informative xD
PsychoBlonde wrote...
What I'd like to know is, what is *gained* by having the world broken up into little postage-stamp-sized areas surrounded on all sides by multi-second loading screens? What tradeoff exists here?
Simply put, more unique locales than the alternative, not to mention designing them is quicker.
I'll explain a bit further using textures as an example. There's far more than just textures stored in the memory - probably more than I know of - but it's an easy to grasp concept I believe.
Every surface you can see is a "texture." The grass on the ground, the rocky surface of the stones, the wooden walls, the faces, the metal of the weapons, the skin on people's hands and the entire sky itself. Everything that you can describe as having a surface is a texture. These textures take up a lot of memory.
This is why you never see every race and gender combination at the same time in ME for instance. Every character model has unique sets of textures, and the consoles with their limited memory cannot keep all of these models in memory at once. If we have human females, asari can likely be in the scene cause most of the textures are the same. While quarian male and quarian female likely have some overlap, they are probably mostly unique from each other as well.
The developer has to keep these things when designing their games. What kind of items are in this room? How detailed is the sky? How many different kinds of characters will be in the scene? Etc. The game answers these questions during our load screen, where the textures that will be used in the room we're entering are placed inside the machine's memory (and old textures that will not be used are thrown out to make room for the new). If there is a mistake here and a texture is not loaded, the game might at best stop for a while mid-scene as it loads up the new texture, and at worst it may even crash. It depends on how the engine is written.
Of course there are alternative ways around this. You can do what ME3 does (if you've played Metroid Prime, this happens quite obviously in there too), which is to fill up the memory completely for a few rooms. Then when the player reaches a certain door, you pretend the main character is "hacking" the door or some equivalent to hide that you're currently flushing old textures from the rooms you came from and replacing them in computer memory with new textures of the rooms the player will enter from now on.
Another common workaround is what I'd call the "bubble" approach. Imagine that the player character has a bubble around them which extends further than you can see. When the character moves forward, things behind fall out of the bubble, and any textures that were unique to those areas can be flushed out of memory. And in front of the character, new unique textures will be loaded into memory to be shown in case the player walks up to places where they will see them.
The bubble approach seems like it has no drawbacks at first glance, but it really does. First of all, loading is slow. This means you have an issue - the player must never get to a surface without a texture before it is loaded. Either you make the protagonist walk incredibly slowly, which will be frustrating to play. Or you have to make the world much, much bigger, and without using new textures everywhere to boot.
This leads to large, open areas with very few details - and whatever details are there will be (often clever) reuses of details you can see in other places if you turn your character around. This gives birth to less diverse environment unless you spend a ton of zots in planning out where things will be positioned in the world on a purely technical level (you can get away with less money put here if you are willing to accept lack of graphical detail) instead of an aesthetic one. It will also drain money in that level designers will have to create these huge areas that you'll be walking in while the game is loading.
Not to mention that the loading itself is much faster if you allow the machine the game is running on to concentrate on the loading, instead of loading while doing other things. Meaning, by having load times, the designers can focus on creating memorable and unique-looking rooms, while cutting down immensly on your time waiting for load times as you traverse between these rooms by allowing you to arrive for new adventure the very moment your gaming machine is technically ready to put you in there.
ps, the person who takes my words and starts a console vs PC fight, shame on you. For the record, I'm an xbox player.
Modifié par KiddDaBeauty, 15 mai 2012 - 10:47 .