Ask Me a Question: Loading Screens

By Shamus
on May 4, 2011
Filed under:
Programming

169 comments

In Earlier this week asterismW asked:


I recently played Portal 2. Loved the game, but found the long–and frequent–loading screens irritating. In my mind, this should not be necessary for linear games. You are limited as to where you can go and what you can see, and you can only traverse the game in one direction. It seems like it would be easy to load an area, and once the player gets through it, have some sort of basic, dark corridor (or whatever) where not much is rendered. Then, while the player traverses the corridor, in the background the game can dump the last area and load the next one. Sure, the corridor will be boring, but surely it’s better than staring at an immersion-killing loading screen. So, why is this not possible?

Portal 2

This is a subject near and dear to my heart, mostly because streaming content in an FPS is closely related to procedural content in an FPS. That is, they have many of the same obstacles. But sticking to streaming content, asterismW is right that this is totally possible. It’s just hard.

Here is the production pipeline for most first-person games:

Level designer sets up the world, decides where the walls and floors go, places light sources, sets up the scripting (making characters talking and such) puts objects in the scene and generally makes some sort of playpen for the gamer. Then the designer runs some sort of pre-processing on a level to prepare it for use. A program will analyze the geometry of the level and work out what you can and can’t see from any given standpoint, so that the computer won’t waste its time drawing stuff you can’t see. Without this, games would run unplayably slow. This usually takes a while, and in the end this program spits out an optimized level, ready for play.

Another thing that is done during the pre-processing phase is to calculate the lights in the scene and work out where the shadows are. One of the excellent things about iD Tech 4 (the Doom 3 engine) was that it could skip this last step. No more fixed shadows, no more arduous lighting computations.

The pipeline varies a bit from engine to engine, but those are the basic steps. Now let’s think about this and what would need to change to allow the game to stream in content without bringing the whole show to a halt for a loading screen.

Culling

At any given time, the game holds this map of what needs to be drawn when the scene is viewed from any given vantage point. The problem is, it’s not that easy to just graft in a bunch of new geometry and have the game know what it should be drawing. There would need to be some sort of system for analyzing THIS level and the NEXT level, and figuring out how to stitch them together. This would be complicated to set up (but NOT insurmountable) and would add another step to level design. Now when you want to test your level you need to run an additional program to connect it to the previous and following levels.

Homefront

Lighting

Currently the lighting calculations are slow and arduous and only done on one level at a time. This means lights on the first level won’t shine into the second level and vice versa. So, there will be this ugly seams where the levels join up. Maybe there’s a shadow of a pillar on the door, but the shadow won’t go through the doorway. This would look horrible. Or maybe it would be be a lot brighter on one side of the door than the other.

You would need to experiment to come up with the best technique to mitigate or hide this problem.

Dead Space 2

Loading

At some point you need to start pulling in the data needed for the next level while the player is still busy in this one. Suddenly your texture-loading code needs to be more robust. You can’t just pull 100MB of texture data off of disk all at once (remember that we’re also talking about consoles, and that data might be coming off of a DVD, which is far slower than a hard drive) because it would cause a massive framerate hit. Suddenly dropping down to two frames a second in the middle of a firefight (or in the case of Portal 2, in the middle of some aerial stunt) is not going to go over well with players. You have to gradually pull that stuff in and prepare it for use. You need to throttle how much loading you do each frame, and preventing stuttering would take a lot of careful balancing.

Aside: You might be able to mitigate existing loading screens by looking for textures already in use. In the process of fiddling around with level design in various engines (Unreal Engine, Source Engine) I notice that moving from one level to an exact duplicate of that same level takes about the same length of time as moving between completely unrelated levels. I have this suspicion that most engines simply purge all texture data and load everything clean during a level change. Texture data is huge, and pulling it off of a hard drive (or worse, a DVD) is time consuming. If the loading system had the ability to preview the texture manifest for the upcoming level and only purge what it wasn’t going to use, you might be able to vastly shorten loading screens without needing to invent some sort of streaming system.

However, this seems straightforward and I imagine someone would have done it by now if it was really this easy?

Crysis 2

Transitioning

How do you handle level transitions? When do you start loading the next area? You need to do it soon enough that the data will be ready by the time the player reaches the door. Again, you hit the problem of timing. A PC with a SATA hard drive is going to be much faster than the DVD or Blu-Ray drive in your average console. What if the player runs towards the exit, triggers the load, and then backtracks for some reason? Now you’ve potentially got the next level sitting in memory, unused, while the player goofs around on this one. Is that possible? Do they both fit in memory? For them to both fit in memory, you need to set your per-level memory budget so that it never eats more than half of what you have to work with. Which means smaller levels. Which means more frequent transitions. Which limits your level designs. (It would be harder to pull off moments where you can look off into the distance and see where you were several encounters ago. (Not that Portal 2 does this.))

You can prevent the backtracking problem by having the player go through a one-way door, but that introduces a new problem. The one-way door needs to be far enough away from the real end of the level that everything has time to load before they reach it. So you basically need a one-way door and a long hallway. (If you make it vast and interesting, you make it monstrously more difficult to stitch the levels together, so this transition area needs to be simple.) asterismW suggested as much in the original question, and it’s true that fifteen seconds of hallway is probably more interesting than fifteen seconds of loading screen. But since we’re also running the game while we’re loading, and the loading is being done in quick furtive actions, it’s going to take a lot longer than fifteen seconds. So we’re comparing a fifteen second loading screen with (say) a fifty second hallway hike. You’ll end up with something like the elevators in the original Mass Effect. Going for a full minute without gameplay is likely to be just as flow-breaking as a loading screen. Worse, actually: In five years the loading screens will be mitigated by improved hardware, but that fifty second walk will always take fifty seconds.

Fallout: New Vegas

Having said all of this, I’m sure it’s possible to make a first-person game with no loading screens or obvious transition hallways. (Although you might need an airlock now and again.) I think the trick is that you would need to start over and build an engine around the idea of dynamic content, rather than kludging it in to the existing FPS engine paradigm. You’d need to engineer a more open-world engine. This would require different tools and a different production pipeline. It would probably also require some small visual sacrifices. (I can’t say what. I’m not up-to-date on where the performance bottlenecks are in the engines these days.)

Programmers have a term for problems like this: Nontrivial. The term is also used in mathematics, but it has a special meaning in programming. When a manager comes along and asks if you can do X, saying the problem is nontrivial is a way of saying, “Yes, I can do it. It is physically possible, given enough hours. However, it is so difficult or time-consuming that just explaining the parameters of the difficulties would bore you, and actually giving you a time estimate would offend you and cause you to accuse me of incompetence.”

Enjoyed this post? Please share!

Footnotes:


A Hundred!2020209Many comments. 169, if you're a stickler

From the Archives:

  1. kikito says:

    You are not thinking in portals.

  2. zob says:

    I don’t know if it counts but it has already been done. Soul Reaver in PC and PSX(aka PSOne). That game had no loading screens.

    • Alexander The 1st says:

      Also, the Metroid Prime series does this with its rooms – it’s why you can trigger a door by shooting at it, and still wait 20-30 seconds for the door to open.

      And that started on the GameCube, with some pretty impressive graphic levels. With like 3-5 un-interactive elavator loading screens, IIRC.

      If Nintendo (Er, actually, Retro Studios, to be pedantic) can do it on the GameCube, you should be able to do it on current gen hardware.

      Bonus Feature: Enemies can still be attacking you while the door is loading – though this can lead to funny scenarios like watching a Metroid die upon trying to chase you through the threshold. But that makes up for the massive fear inducing they do beforehand.

      • K says:

        I was about to point to Metroid Prime. It does have loading screens, but it hides them. Every single door you open is a loading screen. And it has a few very neat tricks up its sleeve: It will try to keep more than one room in memory: The one you are in, plus as many adjacent rooms as it can fit, in an order of “most likely route”, which is designated by the level designer.
        While you are in a room, it will start to cache the next room. If you rush to the door really quick, you have to wait for it to open. Why do I know that? Speedrunning of Metroid Prime 1 is (or was) huge. Some routes are planned in ways they are precisely because of slow doors into big areas. Or you can shoot a door (which marks the room behind it for loading next) and then explore the room you are in.
        The levels are also designed so two big rooms are usually separated by long but small corridors. If you listen closely, you can hear the disc doing a ton of reading when you walk through these time-sink corridors. Also, check out speeddemosarchive for the runs, they are incredible.

        As for Soul Reaver: Ever notice how unbelievably slow Raziel opens doors and phases through gates? That’s an arbitrary delay, to give the PS time to catch up on loading data.

        Why didn’t anyone point out World of Warcraft? Incredibly big map, (nearly) no loading screens. But it has artifacts like people popping in, textures visibly appearing and other ugly things.

        Streaming correctly is also incredibly difficult to do. Go search for mouse stuttering issues with Alpha Protocol. The solution is to deactivate streaming, and believe me, you’d rather have a loading screen than a mouse that doesn’t work properly.

        • Alexander The 1st says:

          What’s nice about the system as well as that it doesn’t force you to commit – if you want to back away, you don’t have the wait the *whole* loading screen again – all it does is lock off that room again. So *no* accidental “Agh, wrong room, got to go back and do *another* loading screen” sequences.

          It’s been a while, and I started with MP2, but didn’t they also lock if you just stood there too long?

          • Jon Ericson says:

            Yes the doors do lock, but I don’t think the level behind the door is purged from memory at that point. The purpose, I think, was to further the fiction that doors were locked in the Metroid Prime world for some reason, rather than to hide load times.

            I find the variable door open times add to the illusion that they exist in some real world since over time mechanisms will become temperamental. It’s as if some doors are better maintained (and oiled?) than others. Death turns out to be much more jarring, since it’s the only time you feel removed from the game world. (Well, using the logbook or successfully scanning stops time, but that somehow works in the fiction of the game.)

            I don’t remember load screen in the original Portal unless you managed to die. Each room (as far as I recall) is separated by relatively short, interactive elevator rides.

            • asterismW says:

              I don’t remember any loading screens in Portal either, which is why they seemed so unusual in Portal 2.

              • Eruanno says:

                Well, they were loading elevators in Portal, weren’t they?

              • Meredith says:

                The lift in Portal was the loading screen, and during the second half of the game it would just freeze and throw up a washed-out loading icon on whatever screen you happened to be looking at just then. It was less obvious, but you still had to stop playing for a bit.

              • Specktre says:

                I don’t remember any loading screens in Portal either, which is why they seemed so unusual in Portal 2.

                Well, there were times in the first Portal where the game would have to load an area outside the elevators. You’d be walking and everything pauses as a bar which says “loading” fills up, but it’s pretty fast.

          • Bret says:

            The door recloses, yeah.

          • Falcon says:

            One of the really neat ways it did this was by loading all the level geometry for adjacent rooms, but without texture data applied. Since the rooms had shared elemental themes, the texture data would usually be in memory from your current room. Long doors (like the one leading to the Ridley fight) usually had some unique textures or details they needed to load.

            That’s also why the elevators exist. The elevators were needed to allow purging one texture set (eg the lava set) to load the next set (eg the snow set). Really the Prime series is a brilliant example of designing around hardware limitations. I’ve always wondered why this technique didn’t become more common, unless there is a rigid upper limit to how big rooms can be using this streaming tech.

            • Alexander The 1st says:

              I imagine because other companies want to release their games before Duke Nukem Forever (Metroid Prime was originally going to be for the N64, but they scrapped that idea and worked on the GameCube. Admittedly, MP2 and MP3 came out relatively quickly afterwards, but I imagine the big rocks were moved with MP1 – especially the 3rd person versus 1st person viewpoint discussion.), or Nintendo/Retro Studios has a nasty patent on the process.

              Although this does show that they continue to think about the player – when an entire texture set changes, it’s clear to the player that a new loading screen *was* required, rather than the odd loading screens of Mass Effect 2 or Fallout 3 for the same coloured metal, and same enemies/NPCs.

    • James Schend says:

      Ditto the Dungeon Siege series, you could walk from one end of the world to another with no (obvious) loading.

      Halo 2 also does a pretty good job, it has loading but only when it has to show a cutscene anyway.

      • ccesarano says:

        I was going to mention the first Halo, actually, and despite graphical improvements Halo 2 actually managed the same quality. You would have the first loading screen upon loading a game or starting a new one, but after that it played like, well, what I at the time referred to as “a console game”. I started on consoles and remember my first experience with PC gaming, where a loading screen seemed odd and pointless. I enjoyed how console games didn’t have loading screens…and then discs happened.

        I can’t quite remember, but Halo 3 and Halo: Reach still manage to go without loading screens, don’t they? Say what you want about their game design, their technical capabilities are still pretty top notch.

        I simply believe, in the case of Portal 2, the source engine is starting to show its age. I’d say it is time to retire it, but I imagine the lack of Episode 3 announcements is because Valve is just making Half-Life 3, and it will probably be on a new engine. That’s pretty much what took Half-Life 2 so long, after all.

        • Adam P says:

          The Halo series is a decent example of streaming content done reasonably well. And starting from a decade ago, too! But the first Halo game had empty hallways (and sometimes elevators) that masked the loading times, while Halo 2 tried to make those loading zones at least look good. It’s important to note that in the first two, it’s possible to go from the start of the level to the end and back.

          Starting in Halo 3, they took away the ability for players to backtrack by having doors (loading zones would be masked by doors that needed to be opened) lock behind the player. Reach follows this trend, but the one-way doors themselves are masked as being cliffs traversable in one direction. In either game, if a door or cliff wasn’t available to “naturally” block off the player from backtracking, then an artificial barrier–visible or not–would be put up.

          That said, (I don’t even know what point I was making with those paragraphs) the Halo games do have bits of a loading screen. Got to load the map at the start for a few seconds in the lobby, then load it for a few seconds at the start of the level, and then each loading zone is about a second’s pause of loading; Only when there is some door that needs to be opened will the game stop for a bit (gameplay is affected, but you’re often just standing around doing doing) and then open the door after everything is loaded.

          So the Halo games are good examples, but not the best by a longshot.

    • kerin says:

      Zob, this problem was a lot easier to solve in the PS1 days because the textures were a tenth the size they are now, models were less than a tenth as complex, and everyone had much lower standards as far as shadow quality and so forth goes. This all feeds into Shamus’ perma-rant about the graphics race.

      • zob says:

        Yeah and PS1 had 2MB Ram and 1MB Video Ram. Problem is they don’t bother anymore slapping a loading screen with a storyboard text is easier than programming a seamless gameplay.

    • poiumty says:

      I think there’s a lot of games that do it, but it was more viable in earlier days. For a comparison, I ran Soul Reaver 2 on a pretty low-end PC that just barely met the minimum requirements. The level streaming horrendously destroyed the framerate in certain areas.

    • Irridium says:

      It is possible to go with no loading screens.

      The God of War games, Jak and Daxter 1-3 managed to do it on the PS2. And God of War 3/Uncharted 1+2 manage to not have any loading screens. Well, Uncharted 1/2 has one when you start single player, but none after that. And neither game needs to be installed on the PS3.

      So it is possible. Although you’ll most likely need to develop your own engine to do it.

      The Portal 2 screens didn’t bother me. Since they’re basically the same as the original portal’s “loading” in the elevators. Where you’d go into an elevator, the game would stop, pop up a “loading” image right in the middle of the screen, and then finish and move on.

      And really, are the loading screens any worse than what Portal/Half Life 2 does?

      • Heron says:

        At least for me, the problem is not with the existence of the loading screens but with their frequency. It felt rather jarring.

        • Jack Kucan says:

          This. I play Half-Life 1 nowadays and the frequency of the loading screens isn’t so jarring because they last for less than a second. I play Half-Life 2 and the loading screens aren’t quite as frequent but they tend to last about thirty seconds or so. There are actually games that take a minute to load on my computer that aren’t as jarring, because they only enter a loading screen whenever you leave the current area by hitting use on a door that has text floating over it saying “Exit to [Place]”.

  3. jokermatt999 says:

    Far Cry 2 had no loading screens, except when you fast traveled or loaded. Like you said Shamus, it’s an open world game.

    I’d recommend it if you haven’t played it. It’s got great immersion and scenery.

    • Joel D says:

      … and not much else beside that, unfortunately. Fun to mess around with, though, and trying to find all the diamonds can be a good way to kill time.

    • moonmonster says:

      See, that’s the thing. Everyone can list out some games that do streaming and are more-or-less seamless, but it’s never free. You need to plan and budget for this at the very start, or it’s never going to happen. You have to be willing to sacrifice things.

      I’m guessing 9 out of 10 companies decide ‘it’s not that big a damn deal, everyone is used to loading screens, why should we waste two precious months and hobble ourselves for this one minor feature?’

    • Robyrt says:

      Far Cry 2 accomplishes this feat by limiting the player’s maximum elevation, so they can never see more of the world than the game has loaded at one time. It’s a more elegant technique than the God of War / Dungeon Siege “long hallway loading screen” thing, but it creates a kind of claustrophobic feeling. (Which is exactly what Far Cry is going for.)

  4. Epsilon Naught says:

    Probably the closest to that approach in anything currently out are the loading screens in the Assassin’s Creed games, where you get to run around in the void while it’s loading. And even just letting you run around in a blank room (or possibly just the fact that the areas are huge) makes the loading screens seem longer and being able to run around doesn’t really make it that much more interesting. Taking that out really wouldn’t impact the game very much.

    • X2-Eliah says:

      Curse you. I was just going to mention that. Adding in some minor effects for more seamless transition from the level to the loadscreen-void (pretty much a microlevel, really), and it would seem seamless in the right level-designs.

    • Eruanno says:

      I always thought those little Assassin’s Creed loading-things were pretty useless. Okay, so I can run around in the void and jump about for a bit… what… I don’t… okay? Doesn’t it take up more processing power if I move my character around (and thus more time spent staring at the void) than if it was just a static loading screen?

      • Nathon says:

        I think they get away with it because there’s only the one model to deal with and the lighting is stupidly simple. It uses the rendering parts of the graphics hardware but memory can be nearly empty (except for a model and textures that have to be in memory at all times anyway).

        • Alexander The 1st says:

          Also, it helps you keep in the momentum, especially after death, so that when you get back into the game, you can be straight into Assassin mode, instead of “Let me check my camera angle again” mode.

          Bayonetta did it too, where you could practise combos.

  5. F says:

    > When a manager comes along and asks…
    This is so Dilbert ish :)
    I’ll start answer this way from now on!

  6. That makes sense, so I take it Gamebyro’s strategy of streaming levels, but also having loading screens is because it’s dealing with a different set of problems – everything is basically a dynamically loadable model with varying LOD and just phases in, but you don’t want the inside of a house rendering as you run past unless you actually open the door, which most times you won’t assuming it’s something like the Imperial city.

    Valve games actually do have a lot of one way doors and things come to think about it, and they do load and erase prior level data as you go through according to the commentary, so source engine’s horrible limitations aside – ie, static lighting, one skybox per map, all that compiling stuff, I still think it looks like a promising avenue for them, if only they could ditch some of the engine’s more outdated roots. Which is most of them actually.

    Did you know that despite boasting dynamic lighting for Portal 2 it’s still exactly the same as Alien Swarm – ie, static lighting plus togglable but still pre-baked on-off lights and one actual dynamic light (ie, HL2’s flashlight) at a time? I mean, it works and the lighting model looks fine, but after all the showing off they did with dynamic lighting it’s still a bit disappointing that we have to deal with those compile times.

    • Zukhramm says:

      Even the later parts of Portal, although without literal doors has a couple of one way doors. If you encounter a passage that is simple but still requires you to place two portals, chances are there’s a loading screen the next couple of seconds.

  7. X2-Eliah says:

    Uh, your picture has moved inside the quote, and is no longer at the start of the article, Shamus.

  8. Daemian Lucifer says:

    “In five years the loading screens will be mitigated by improved hardware, but that fifty second walk will always take fifty seconds. ”

    Not quite true.There are many old games that still take few seconds to load even today.Probably because the loading screens had some fixed minimum time.

    But,like you said,there were the elevators in mass effect,and I liked those.Too bad many people prefer static screens.

    • Chargone says:

      i liked how some of the loading screens in mass effect two let you watch… a schematic of an elevator going from one level to another. sometimes twice.

      because that is so much LESS boring than actually being in the elevator and getting side missions and character development while it loads the next area. (though the elevator down to the hold in ME1 was stupidly slow given how small the two areas were and how close togeather they were supposed to be.)

      • swimon says:

        Also those loading scenes are actually cut scenes if you remove them and replace them with a normal loading screen you cut loading times in half. At least on my rather dated mistreated PC.

  9. Abnaxis says:

    I always liked the loading screens in the Metroid Prime games. In fact, I think Metroid is the first series in existance to use an elevator and doors for loading instead of a splash screen…

    And here is another reason why I think it would be good if games weren’t so obsessed with 3D. If you have a static background (a la original RE games, some FF games), it would be trivial to give streaming content.

    • X2-Eliah says:

      Myeah, but there were a few issues – like hostiles not attacking you if you were shooting at ’em through the doorway, or some doors taking ages to open (especially when you’re ganged upon and just trying to run-through quickly for backtracking).

      • Abnaxis says:

        Yeah, those issues were present. But you have to consider they’re using last generation’s hardware to do it. And while it’s no Crysis, the game looked pretty darn nice…

        Also, now that I’m thinking of it, I remember them using a lot of subtle culling for the rooms on the other side of the doors–lower resolution textures or what looked to be shading shortcuts, sutff you don’t see from a distance unless you’re specifically looking for it. I would love to see what algorythms they used or what level design concessions they made to make that work on the relatively-less-powerful Nintendo hardware.

      • Ian says:

        Don’t forget about the crashes that players, particularly speed runners, experience on the 0-00 and 0-01 releases of the game due to the faster loader that it uses.

        That being said, those are the glitchiest versions of the game, so sequence breaking them is insanely fun. :)

        • K says:

          I was hugely disappointed in MP2, where the designers spent extra effort to make sure people could not sequence break. Essentially they worked extra to reduce the number of people the game appealed to, because everyone else would really not care about the possibility of sequence breaking (especially on their first and usually only playthrough).

          • Ian says:

            Very much agreed. While I did enjoy the game, I found that sequence breaking gave MP1 much higher replay value (and since I own I own the 0-00 version of the game, I have a lot of tricks to play around with!).

            The way I look at it, what Retro Studios did with the later MP1 pressings and MP2 is sort of like if id had patched out rocket/grenade/barrel jumping in a later version of Quake. Instead, they took a sequence breaking feature that people loved, exaggerated the effect in Quake 2, and didn’t intentionally put up any walls that would prevent people from skipping 90% of the level.

            • Kdansky says:

              I only have a PAL release, which has about 80% less glitches. Sequence breaking isn’t easy, but I it still got me a second play-through out of it.

              • Ian says:

                My sincerest condolences. :(

                On the bright side, it seems like most of the same tricks are possible in 0-00P and 0-02E, just in a roundabout way. There isn’t too much of a time disparity between the speed runs of those two versions.

                Even despite that, the harsh distance limitation imposed on the scan visor is probably the worst thing that they could have done for sequence breakers.

      • Alexander The 1st says:

        Better to have the door be the physical reason they can’t be hostile (Metroids, for example, could simply just not be able to open a door with their bodies, since it requires energy beams to do so.)to you than that you simply found a bed outside their house via an unlocked door, and then slept for three days, without harm, and they become un-hostile then.

    • Adam P says:

      (The first Metroid game is before my time, so if someone knows better feel free to correct me if I’m wrong.)

      Metroid actually didn’t have any loading screens, because it was on a cartridge. Instant access to the data. Not only that, but the entire world was loaded into memory from the start. The only thing that the elevators and doors did was allow for a quick palette swap.

      • Bret says:

        We’re talking Prime.

        One of the all time greats. Last gen, disk based, but it hid load times like a champ.

        • Alexander The 1st says:

          Though to be fair – I think the original Metroid (At least, Fusion did this) used and (I know they did this) locked doors as their loading screens. Zelda used edge-of-screen (Mario did end of level and, actually, cutscenes, now that I think about it – probably how most games did it back then, right?), for examples.

          Though they weren’t as smooth transitions as Prime – if you went through a door, you had to load the next area before you could continue.

  10. Zak McKracken says:

    Hmm… now wouldn’t that match up nicely with procedural content?
    No large chunks of data to load from the disc, just a little date from which the rest can be constructed! So you’re independent of drive speed. Still, you’ll need to move everything to the graphics card. That would probably take less time than the loading process. There’s probably no universal solution. Minecraft (and flight sim games) can load scenery in small packages as you move through the scenery. If a game has so dense scenery that that’s not possible, you need separate rooms. If even two of those do not fit in the graphics card (I think we can safely assume that we have at least twice as much RAM for the processor than the graphics card has, yes?) then we could still prepare everything in the RAM and then switch. That might go fast, but not fast enough, so we need to busy the player in another way. Standing in an elevator starts to suck. But how about some kind of small, low-ressources game? Like console-hacking :) There’s an airlock, and you need to hack the lock, to first close the door you came in through then open the other one. That’s can be a very very small 2D minigame that eats virtually no ressources. If done well, it is much much more interesting than a loading screen … or maybe a thing that tells you how well you did in that last room (if it makes sense, game-wise). A very simple corridor with a bend, so lights of one room don’t lighten the next one, but lighting in the corridor is just baked into the textures, so it’s independent. If you get to the next room before it’s ready (to account for faster machines in the future), there’s some reason the door won’t open for another three seconds, and maybe some useless but somehow funny stuff to busy yourself with. Maybe browse your inventory or look at your stats or talk to mission control.

    Oh, and I just got an idea about Mass effect: Maybe the reason that the decontamination scene when boarding the normandy takes so long is that it is visually so demanding that it slows down the loading progress? but then, especially on the normandy, you should be able to enter before the whole ship is finished, because you’ll not see the whole thing, and it’ll take you a while to get everywhere, even on the same deck.

    • Nevermind says:

      Hmm… now wouldn’t that match up nicely with procedural content?
      No large chunks of data to load from the disc, just a little date from which the rest can be constructed! So you’re independent of drive speed.

      Yeah, you’re independent of drive speed, BUT now you very much depend on the processor speed! Actually generating content from seed data is not free and not even particularly cheap.

    • Peter H. Coffin says:

      Flight sims and minecraft also have tiny, tiny things to deal with in comparison to something else. Minecraft is (essentially) a 3D tile game with a little bit of motion smoothing smeared on like marmite on toast. There’s probably three orders of magnitude less to deal with than for an average FPS from even three years ago. And flight sims have very little occlusion to deal with. Most of the time, you’re expected to be able to see everything within a known horizon distance so it’s all designed to be shown all the time and made simple enough that there aren’t any details to render most of the time. Once you’re more than two “miles” away from anything, you can probably render it (no matter what “it” is) with about a hundred polygons, and you only need to spend measurable amounts of time on things closer than that. (You can actually WATCH those switches in most flight sims, from single polygon blotches, to simple renders, to detailed renders as you approach.)

  11. Ace Calhoon says:

    Another trick you’ll see from time to time is playing a movie or scripted cutscene “over” the loading screen.

    Of course, Portal can’t really use this trick.

    • Alexander The 1st says:

      Mirror’s Edge did this – now granted, with Vectored graphic loading screens, but they even lampshaded this by removing the “Now Loading” with a “Press Start”, at which point, you could skip the cutscene. That was pretty good, actually. It allows you to give reason why you give up player control, while also giving plot at the same time.

  12. Sam Crisp says:

    Is there any reason that games can’t give us access to our inventory, maps, character stat screens, etc during a loading screen? Since I spend time fiddling with and reading those while the game is paused anyway, why not just put me there during loading screens? Fallout 3 showed some random stats about your character while loading, if I recall correctly. Why not just give me access to the whole Pipboy?

    • krellen says:

      The more interaction you allow your players to have with the “loading screen”, the less process there is for the loading, and the longer loading will take.

    • Abnaxis says:

      This sounds like a really cool idea. I mean, the inventory screen is usually a 2D GUI with simple textures, right? And in a game with a codex, it’s just text–these things do not take much memory.

      The main problem I see with it is that I’m probably going to be in the middle of looking at something by the time the next area loads, and if it opens with a firefight or a cutscene, it would be a rather rude interruption…

      • K says:

        Loading screens should always have a “press button” thing anyway. DA2 forces you to sit in front of your computer during loads because it very often starts off with a dialogue just after the load. So you cannot get a coffee or go to the loo, as you’ll miss the dialogue. I found that immensely annoying.

        • WJS says:

          Or they have text on the loading screen, which you’re half-way through reading (and I read pretty fast) when it gets snatched away. Damn it! I was reading that!

          I would put barreling on past loading screens without waiting for the player pretty high on a list of videogame sins.

    • Amarsir says:

      That reminds me of a pet peeve with City of Heroes. When zoning (which they have a fair amount of), if you get a chat message from another player you can hear the sound effect as it happens. But you can’t see the text window. I could understand if they were queueing the messages on the server to dump when zoning finished, but if my client is actively receiving them while I’m waiting…

  13. Zak McKracken says:

    One solution to the problem: Single areas should just not be larger than a third of what fits into memory. Then you can have two others in store the whole time (or be busy loading them). You’d just need to make sure that crossing one area into another not-yet-loaded one takes longer than preparing that next area. Nontrivial, I know, just saying …
    I guess the whole thing becomes much easier if you don’t have to max out on graphical features. Reduce the complexity slightly, and all’s well, but if you want to deliver top-notch current graphics at all times, it’s either loading screens or miracles, I guess.

    • X2-Eliah says:

      Simple problem, PCs have variable amount of memory. Third of a gigabyte is awfully small, you know.

      • Daemian Lucifer says:

        Yeah right,like someone uses less than 4gb./lame joke

        • X2-Eliah says:

          Personally I go for 8 Gigs. I demand that all games require a minimum of 8 gigs of ram to run, or I’ll review-bomb every review on metacritics!!!!!!!!!!11122@@@

          Heh.

          • Decius says:

            I pity your low-memory machine.

            Would it be nontrivial to spin off a load process and allow my six-core 16GB RAM dual-crossfire machine to keep the world loaded while in the room?

            Does Portal allow lighting to pass through portals? I don’t recall any portal-capable dark areas…

            The real limit isn’t half, or a third. The current region, plus all regions accessible from it, need to fit into memory for perfect seamless loading.

      • Uristqwerty says:

        Well, if you are assuming a gigabyte of available memory, how about 250 megabytes of shared resources and then 250 for each loaded section?

        Or perhaps have a low-resolution version and a high-resolution version. On low-end PCs, use the low resolution version for everything. On better systems, use the low-resolution version for distant areas, and then load in a higher quality version as the player approaches. Better yet, split the tiers a bit more (3-4 detail levels the lowest one or two used exclusively for long-distance viewing and little more than a few hundred low-textured polygons), and load as much as the computer can handle at higher detail levels, upgrading new areas and downgrading old ones so that players have good performance on all systems, but better systems are naturally able to use better graphics at longer distances.

        • X2-Eliah says:

          Takes time to develop 2+ versions of all models, maps etc.

          • Ian says:

            Nah, games have had the ability to use less detailed models for years now.

            If you see any settings in PC games related to LOD (level of detail), that’s what it is. If the object is far away, the game will scale back the model prior to sending it to the GPU. As for textures, that is the benefit of mipmaps, particularly with older hardware. The game would feed smaller textures to the video card for sections of the world in the distance in order to compensate for the relatively low texel fill rate of earlier cards.

            Some game engines will also even scale the world back. Odds are, if the game that you’re playing has a slider for “terrain detail,” it does such a thing. The curves in the id Tech 3 (Quake 3) engine is one fairly early example of a piece of world geometry that can be scaled back to accomodate lower-end hardware.

            • X2-Eliah says:

              Of the engines I’ve dealt with, you need to manually MAKE the different LOD models. Usually by making the highest one, then optimizing it in the modelling editor. In any case, the engine doesn’t do anything beyond ‘swap model x for y’, and the devs have still to do the x and y.

              • Ian says:

                That may be true of that particular engine, but there are engines available that support dynamic LOD on models. It doesn’t seem to be as common as I originally thought, but they are available. I believe Torque is one engine that supports it.

                Note that I am not a modeler, but as far as I can gather, modelers would design the model and mark important verticies (ones that would never get removed), then the engine handles the rest.

      • Zak McKracken says:

        Simple solution: Since most people are used to dealing with loading screens anyway. So default behaviour is giving you a loading screen, but if the game has resources (processor, RAM), it can start loading and processing stuff in parallel in the background, and depending on the progress that makes you either get a loading screen or you don’t.

        Another thing: Shouldn’t loading stuff in the background be much easier to implement since the advent of threaded programming (and the availability of multicore processors)? My experience with it is just from running (proper hour-long) computing jobs in parallel and prioritising them (under Linux), but I’d expect Windows to work similarly. You start something in a new thread, you assign it a (low) priority, and it will work away quietly and not slow down what you’re doing in the foreground. Except if the operating system starts swapping when RAM is full, but I guess you should be able to pause the loading thread before that happens and let it wait for the next loading screen.
        Surely not something you code in an afternoon, but shouldn’t it work?

  14. Senji says:

    Hey Shamous why did you skip this series?

    The Elder scrolls. Now there’s a series of games that mitigates this. And if Oblivion wasn’t constrained because of the XBOX you wouldn’t even have loading between cities/houses/caverns. There’s mods to remove the loading gaps and put all the cities and such in one cell with the wilderness. TES engines usually dynamically load cells around the player in an efficient pattern. The more memory you have the more cells it will allocate.

    • Shamus says:

      I mentioned at the end that you’d have to make an open-world engine, which would include Grand Theft Auto and the Bethsoft games. They do load in things, but they sacrifice both detail and quality in varying amounts. (I don’t mind, but they do.) They also require a very different approach to design. Moving from Valve’s Source to Bethsoft’s version of Gamebryo would be a major shift, and require building an entirely new engine with a different approach.

      • Specktre says:

        Hey Shamus,

        Didn’t you mention a while back that Valve made an entirely new physics engine for Portal 2? Is that were all the time and energy for the game went?

        • Alexander The 1st says:

          Perhaps that’s part of their culture – from what I can tell from an outside view with summaries, really (Hey look, I wasn’t old enough in the Half-Life era to play the games according to the ESRB), and based on the plot of their games – they’re a bunch of physicists, not a bunch of computer scientists, or software engineers. The program software, yes, but they do it with the intent to do Physical and psychological sciences, not computer sciences.

      • StranaMente says:

        Albeit it can be said (oddly) that in this reguard Gamebryo aged better than Source. With all its updates and fixes it’s still quite old and it looks like so. I can’t really see much improvement from half life 2 (episode 1 or 2). Sure some light effect here and there, but overall with that scarying amount of loading screen portal 2 seems outdated at times. Mostly compared to most of the other games this days.
        Loading screen for every level is so ’90s.
        It’s been said that the witcher 2 will have only one loading screen (an immense step forward from the first game).
        In fallout (except for the inside of the buildings) you can run for as long as you want (read: “as long as you don’t encounter a ctd bug”) without a loading screen, and like them, many others.
        Crytek remade their engine (even if the old one is still perfectly good) and there’s no loading screen.

        Problem is, as you said Shamus, making a new engine costs money and time, and it takes time for the people who work with it to get acquainted with it.
        Sure the things they can do with it are amazing, but I think it came the time for Valve to do update, or it will get really embarassing.

    • LintMan says:

      IIRC, the Dungeon Siege series of games used to brag that it had no loading screens at all. You could seemlessly move from the outdoors into a dungeon and out the other side without any loading screen.

      It worked well, but the game was incredibly L-I-N-E-A-R. That might have been because of this pre-load feature, but I suspect that plain ‘ol poor game design was the real culprit.

      • Groboclown says:

        DS 1 may have been a linear single player level design, but the multiplayer was immensely huge. Yes, there was a general path you could follow for taking the level-matching enemies, but there were alternate paths that took you straight to the very last level.

      • Cyanide says:

        Different mods for the game (Legends of Hyperborea and Mageworld come to mind) used even bigger, less linear maps, and they still managed to go without loading screens at all, so I’m guessing you’re right about the poor map design.

        What always fascinated me about DS1’s multiplayer was that there were no loading screens even for elevators, teleporters, and so on. If you got on the teleporters, they’d shoot you up on a platform a million miles in the air and move you to your destination really fast before you descended, but it’d all be done without any “cheating.”

      • Robyrt says:

        You can force Dungeon Siege to load if you move fast enough. On modern machines, it’s difficult to notice, but the game will occasionally pause while you climb from dungeon to surface until it’s ready to show you.

  15. ghost says:

    So in the mid 90s I worked for a startup that was working on basically doing Steam, long before there was a market for Steam. Naturally it died. However one of our innovations was profiling games. We’d do multiple play-throughs of a game recording what needed accessed when. We’d then have our client download what was going to be needed next in the background. This was partially necessary because of limited internet connections of the time and because we were doing an instant-play model for games — no installation, no waiting for download. As a side effect of this, when people were complaining about the load times off of CD-rom, our client often made the game perform much better than the manufacturer’s distributed version. We had clever tricks where if you had an excess of memory, we’d cache some of the game data to memory so load screens would be almost instant.

    So while it may be hard to write a game engine to do what you want, it was distinctly possible to wrap an existing game with a clever buffering client that made things fast.

    Also, these days, if you really care about loading screens, install all your games to SSD. Load times go way way down. For some games they become brief flashes, where you can not even read the ‘witty’ text they sometimes contain.

    • X2-Eliah says:

      So you guys actually were making OnLive way back then? Wow.

      • Abnaxis says:

        My understanding of OnLive is that it actually runs on a remote machine. What ghost is talking about sounds like its streaming to a game running on your home machine, with fiddly math bits figuring out how to buffer a game when the player could conceivably move in any direction.

        Still neat, though. Although I wonder how much bandwidth something like this took up–I mean, we’re talking about how slow hardrives are, yet even the fast connections we have today are nothing compared to HD access speeds…

      • Matt K says:

        Sounds closer to I think it was called Sega Channel, essentially internet based downloading of games to your Sega Genesis for a mountly access fee.

  16. Eddie says:

    You mention Mass Effect’s elevators, which I really quite liked. I guess I understand why people despised them so much, but for me they didn’t break immersion and provided the oppurtunity for little world-building or character-building conversations or news broadcasts. Honestly, I think this sort of thing would be ideal for Portal 2; almost every level already begins and ends with an elevator and almost every level begins and ends with an interesting and entertaining broadcast or a recording being played. I guess given a lot of people’s response to Mass Effect, I would be in the minority of players that would enjoy it though and I guess if you were just playing to do the puzzles and don’t care about the story then it would just be a longer loading screen.

    I find loading screens to be uniquely frustrating in a high-immersion game like Portal 2 and especially given how god-damn frequent they are in it. It’s like every few minutes a screen pops up to say “Hey, you’re still playing a game, dumbass; don’t get too invested in the setting!”

    • Eleion says:

      This is mostly an aside, but I’ve always been curious about what people didn’t like about the elevators. When Mass Effect came out just about everyone was complaining about never ending elevator sequences, but by the time I got around to playing it, 2 years later with a computer a little better than would have been available at the time of the game’s release, the elevator sequences seemed fairly short. Did I benefit from improved hardware? Was it particularly bad on the XBox? Maybe I just don’t care about loading times as much as other people.

      EDIT: I also have vivid childhood memories of watching my older brother play King’s Quest: Mask of Eternity, in which loading times felt like they lasted half an hour, so 30-60 seconds every now and then doesn’t feel so bad.

      • Abnaxis says:

        I think it was more a problem with frequency than the principle of them. It’s annoying when you have to turn in a quest, and you wind up sitting in eight elevators just to get to the NPC.

        • Chargone says:

          this was why the citidel had the rapid transit system. go through that once (and get one of the few loading screens in the game) and skip the entire elevator+running around experiance.

        • Alexander The 1st says:

          Also, at least for someone like me, halfway through the trek, a “Loading icon” would appear for half a second before the conversations begin.

          But still – elevators were still pretty awesome.

      • Chargone says:

        the only elevator i had any problem with in Mass Effect was the one on the normandy. i can’t see why it was even there, it was Crazy slow, your teammates weren’t there to make witty conversation, the radio didn’t play while you were in it, and you were going up and down that thing ALL THE DAMN TIME. (shop and half your crew were on one side, as well as your crew’s inventory screens, navigation, exit, and the rest of your crew were on the other side, as well as the comunications room.)

        the others were all fine, really. that one was just needless and painful <_<

        • Ian says:

          That’s all due to disc loading times, most likely because that section of the Normandy is part of a different level file. Consoles have limited resources available, particularly memory (512MB between video and system on the 360, 256MB system and 256MB video for the PS3), so it’s very possible that the entire ship couldn’t fit in memory, and its design made it difficult or impossible to properly stream.

          On the PC version of Mass Effect, that particular elevator is very fast (I’m pretty sure it loads faster than the elevator animates, making it largely unnecessary). I will agree that it was teeth grindingly awful on the Xbox 360 version, and I tried to avoid going down there for that very reason.

          Have you tried installing the game to your hard drive? That might help.

          • Alexander The 1st says:

            Ironically, they put Garrus, Wrex, and Tali down there. So you’d miss out on some of the better content in the game if you ignored going down there.

            I didn’t even know you *could* go down the elevator until Virmire the first time I played, because that’s the point that I saw a friend get stuck and have to reload to avoid you know, Wrex dying. Both of us had just a little TOO little paragon to do what we wanted to do.

            • Ian says:

              Fortunately, I didn’t seriously play through the game until I bought the PC version. :) I got the Xbox 360 version very cheaply and wound up getting the PC release for a discount on Steam soon after (timing!) so I got to experience Mass Effect without insane loading times.

              And yeah, I went down there constantly, like between every mission. I love some of the character banter; I just wish that there was more of it.

  17. Duffy says:

    I also wondered how MMOs are getting around this problem? Most modern ones have huge continents with maybe a handful of loading screens between each continent.

    • K says:

      Ever noticed how people and mobs suddenly appear just near you? How characters are missing textures? How you cannot even see any other players farther than 100 yards away?

      That’s how the do it. They just accept the fact that you’ll sometimes not see everything. Portal 2 would just feel shit if sometimes cubes appeared twenty seconds after you entered the room.

  18. Lochiel says:

    How are MMO’s often able to have large chunks of their world explorable without the need for loading screens? While I suspect that a large part of it has to do with simpler models & textures, and not worrying about lighting; but even with those optimizations I expect they still need to load content behind the scenes while you’re running around.

    Why can an MMO on 10yr old equipment do this, but a modern FPS on modern equipment not?

    Edit: Dammit, Duffy beat me to it

    • Alexander The 1st says:

      It’s possible the landscape is pre-loaded onto the harddrive, which decreases the time of loading the textures by a whole lot more.

      A console MMO like FF XI is probably more likely to have loading screens, since it has to account for the PS3 disc…unless that’s also harddrived.

      • HeroOfHyla says:

        XI required you to have the PS2 hard drive. It also required installing 5 GB of data on the xbox 360 version. So yeah, it’s harddrived I’m assuming.

      • Even says:

        I’d believe they also use a lot of the tecniques relating to open spaces mentioned above. For all that open space you still usually get impassable mountains/walls/whathaveyou between zones where you can usually only travel to a new zone through small gaps so it’s not like they’ve got it all loaded to memory ahead of time. Most notably in Lotro if you use any form of fast travel, the game will always switch to the loading screen, suggesting that it needs to load the specific zone data everytime when porting to another area. If you do it within an area, the load time is considerably shorter keeping with the idea that it would only ever keep one zone constantly loaded in memory at any one time and perhaps only transitioning when you’re near the set border of the zone.

      • WJS says:

        I don’t see how “the landscape is on the hard-drive” is relevant. All my games are on the hard-drive, it doesn’t mean I don’t get loading screens. Do the Bethesda RPGs have to be hard-drived to play seamlessly on console? I suppose it wouldn’t entirely surprise me, but I don’t think I’ve heard it before.

    • Ian says:

      When World of Warcraft: Cataclysm was in beta, I abused the in-game downloader on my laptop because I was too lazy to let the launcher download all of the “required” data before I started fooling around with it.

      The results were very interesting and I wish I had the screenshots with me (not at home at the moment) and gave a bit of insight as to how the world was stored. As I went into areas that hadn’t been downloaded, I noticed that the game downloaded and rendered blocks of the world, ala Minecraft, and made the world appear somewhat like a jigsaw puzzle when the blocks were not loaded. If you move through the world normally, the blocks that you’re moving toward are loaded while the blocks behind you are unloaded, ensuring that the client wouldn’t gobble up all of your memory. When you fast travel (i.e. hearthstone, mage portal, change between the four zones, or enter a dungeon, raid, or battleground) and the game needs to load a ton of blocks, you get dumped to a loading screen.

      Other MMOs work differently. I seem to remember Everquest using a connected set of individual maps, ala Quake, though I admittedly didn’t play it much. I did hear that some of the early expansion packs for it required an absurd amount of memory at the time of their release, so that could explain why.

  19. HeadHunter says:

    And now we know why Mass Effect has those interminable elevators.

  20. Starkos says:

    There are times when a loading screen can actually be good for the player, especially in an intense game.

    I’ve recently been playing The Fancy Pants Adventures (which is by no means an easy feat for a platforming novice). For someone who is new to the platforming genre, the loading screens present a nice quiet moment to breath in between levels. Without them I’d most likely spaz out in twitchy frustration (eventually).

    In an action heavy platforming game loading screens can break the tension that can build up on a new player. Yes loading screens break the flow of the game, but I don’t see them as obtruding my experience. They give me a moment to check the time, wonder if my laundry’s done, have a cup of tea. Because of loading screens I can make a reality check every now and then. Besides, completely immersing myself in a game (while awesome), eventually begins to take it’s toll. Everyone could use a breather now and again.

  21. Nixorbo says:

    Halo 2. One loading screen at the beginning of the game, the rest of the level loads happen during cutscenes, causing the infamous cutscene texture pop.

  22. webrunner says:

    My question is why Valve suddenly got rid of it’s “seamless” load screens for the obtrusive full-screen ones?

    Sure, the logos changing throughout the game was pretty cool, but coop had only like 3 different load loops that you saw like a dozen times each.

  23. HeroOfHyla says:

    Well from what I remember, *every* load screen in Portal 2 was in a room that became entirely sealed until it loaded; Either an elevator or a room with automatic doors. You get into the small room, there’s a load screen, and then the other door opens. Maybe it’s a limitation of the source engine or something, but it seems to me that they could have gotten rid of load screens and just have you chill in those rooms for a while. Maybe have amusing recorded messages or something.

    Also, from the commentary, no rooms are actually connected; it’s all just world portals. So connecting the levels together shouldn’t be an issue.

    • Ian says:

      Even though I believe it’s a complete rewrite, Source is still based on many of the concepts from the GoldSrc engine, which was derived from id Tech 2 (the Quake engine). As such, it loads levels of a time rather than streaming them section by section.

      In the case of Portal 2, the world portals are just bridging parts of a single level together rather than allowing it to spawn multiple levels. It would work the same as the portal gun, just a seamless way of traveling through multiple sections of one large level.

      I believe they mentioned briefly on the commentary that as the levels came together they started using fewer and fewer world portals. I think only one still exists in the shipped game.

  24. Norcross says:

    Zak had a similar idea to what I was thinking. Smaller levels would work, especially on consoles where you know exactly how much space you have. If a “normal” game has levels that take, say, 1GB (just picking a number here) then have your levels only take 0.5GB. That way you can always have your current level and the next one loaded, so no loading screen needed. So when you start you have 1 and 2 loaded, when you move to 2 you dump 1 and start loading 3 in the background. As long as you have time to finish loading 3 before the player can finish 2 you’ll be fine. (The original post was talking about linear games, so we can assume the player isn’t going to go back to 1, or have already cleared 2 so that they can run through it too fast.)

    Sure this will mean that each level is only half the size that it could have been, but games have been getting larger and larger levels anyway. Instead of having 10 medium-size levels you would have 20 small ones, but they would end up feeling like 1 really huge level to the player.

    • K says:

      Metroid Prime does this, and from time to time, it really shows.

      Restricting your level designers for technological reasons is rarely a good idea.

      • Kayle says:

        Designers are always limited by technology, and its best if they understand those limitations and work with them.

        • Alexander The 1st says:

          Especially since the loading times thing is ALREADY a limitation in most cases, where they don’t just have a loading screen randomly in the middle of nowhere. Plus, at least this solution is sort of common in Metroid 2-D, since the begining.

          EDIT: I am reminded of a conversation on GameFAQs that talked about how you couldn’t have Space Pirates just piling in from all doors in real time as you run through an area instead of them getting caught on the doors and following you, while calling in reinforcements from other rooms, in essentially that one fight in Star Wars, like this ( http://darthsanddroids.net/episodes/0379.html ).

          I’d play that game, if the GameCube could’ve handled it.

  25. WWWebb says:

    What about audience education? Back in the day, there were no fancy tutorial levels at the beginning of games. We were expected to read the manual and WE LIKED IT (well…not really, but some manuals were done better than others). Now I generally expect to just be able to fire a game up and play.

    Unfortunately, this means that unless the developer is good about adding new bits of tutorial every time something is introduced, the user might miss a good chunk of gameplay and/or content. Loading screens usually offer background details on the world (increasing immersion) or gameplay tips (expanding gameplay). This may not matter to us gaming veterans, but on a game like Portal 2 that is doing it’s darndest to reach out to a wider audience, it can add a lot to the experience for newbies.

    Also, I’ll second Starkos’ comment about the player needing a break sometimes. Some of the levels on good puzzlers give me a headache even if I don’t have to try some bit of twitch-reflex gaming 20 times before I get out of the level. Calm lighting and the opportunity to set the controller down (instead of fling it at the screen) is appreciated.

    • Alexander The 1st says:

      *Gets killed by exploding barrel*

      *Loading screen states “Stay away from barrels – they’re prime targets for large explosions”*

      I’m exaggerating, of course, but sometimes the loading screens feel like that.

      Can you imagine if, after http://sonicimpossible.ytmnd.com (Warning: Loud Midi music on loading of page), the game took you to a loading screen after wasting +10 days (In 10 minute intervals) telling you that you can press up and down to raise and lower barrels you’re on?

      Sure, we needed it, but that’s just insulting – WHY NOT tell us that BEFORE we spend +10 days trying to solve that problem?

      Sonic Adventures 2 did this best with Omachao, who would give specific hints during boss fights when you died. Sometimes the best (Read: Most useful) hints, however, where given when you were on your last life (Although I suppose that’s good design, rather than spoiling the fight). <_<

    • poiumty says:

      Back in what day? Because Half-Life 1 had the mother of all tutorial levels. Deus Ex too. Baldur’s Gate 2 as well. Do you mean the NES days or the Commodore ones?

      • Ian says:

        Indeed. To add to this, for something that’s very new and doesn’t have much of a proper tutorial look no further than Portal 2.

        There doesn’t seem to be nearly as much commentary in Portal 2 as there was in the original, but there are still instances where the level designers discuss simplifying or modifying the puzzles in response to input from testers in order to allow players to naturally learn the game.

        The commentary for the original Portal was very enlightening, as it focused on just about every facet of its design.

        • Amarsir says:

          This is true. The commentary for the original game was, to me, almost as interesting as the game itself. Now with p2 there’s less, it’s more spread out, and it’s harder to go through piecemeal without worrying you’ve missed something. One of the few disappointments, really.

  26. asterismW says:

    What a fascinating read, not only with the main article, but with all the comments. It’s always interesting when you find out that something you think should be easy really isn’t, because there’s a lot that goes on behind the scenes. Since I work with computers, and get a lot of “Well, why can’t it do that?” questions from users who just don’t understand what all is involved with their request, I should be used to this. But it still surprises me sometimes. Thanks Shamus, for answering my question, and everyone else, who elaborated.

    • WJS says:

      Actually, I would say this is the opposite; It isn’t that hard, and has been done many times over the years. But despite “no loading screens” always being a plus for a game, most devs still can’t be bothered to make the effort.

  27. poiumty says:

    I’m actually against “non-immersion-breaking” corridors. Loading screens are a time for me to pause and relax, and holding the W key pressed while the level streams just causes me to hate the game for being awkwardly-paced. I hated the lifts in Mass Effect and didn’t mind the loading screens in 2. The reasoning is that when I’m in the game, I’m in “do stuff” mode and if the game just locks me in a static room, maybe even preventing movement (like ME1 did) that just kills my mood of doing stuff. Loading screens don’t break immersion if they’re done properly, at least for me. I don’t understand (or rather I don’t want to think about) where this generation got all of its immersion standards from.

    Hints and/or commentary during loading screens are excellent in keeping you in the mood, or even better, do it like Modern Warfare does: briefing cutscene during the loading process that you can easily skip after it’s done. Seamless and really simple if you think about it. I know CoD gets a lot of flak, but there’s no denying that they did many things right.

    • Irridium says:

      I liked the elevators better. Gave the ME universe a sense of bigness. ME2 felt much smaller to me because of this. Plus, having your team talk to each other in the elevators was great for passing the time, as well as fleshing them out a bit.

      Something that was sorely missing in ME2…

  28. bit says:

    I’m fairly partial to how Super Mario Galaxy does its loading screens; 90% of the time, you don’t even realize that you’re going through a loading corridor because you’re distracted by picking up star bits and mario spinning in cicles and the pretty skyboxes whooshing past. They’re also very fast, presumably because the game seems to keep a low resolution version of future and past areas in the distance, which helps with immersion as well.

  29. Felblood says:

    Another game that did the Loading screen disguised as a hallway trick was Castlevania: Symphony of the Night.

    Thee was a major problem in that it was possible to traverse the loading hallways before the next area was loaded (especially if time had been unkind to the CD drive in your Play Station), which would cause the game to lock up.

    I hope you saved, kid.

  30. burningdragoon says:

    I played Portal 1 and 2 both for the first time within about 24 hours of each other and I felt that the loading screens in 2 were less immersion-breaking than the times when the game just stopped while loading in 1 even though it was shorter loading time overall. I think when a game fades out into a loading screen it feels like ‘okay something is going on (traveling etc), I just can’t see it’. The game going to a sudden stop feels like… the game suddenly stopping.

    God of War 3 (practically) didn’t have any loading screen/time after the initial load. The only time I had one was when I probably backtracked between seems too quickly. I imagine it’s much easier to do so when the player has 0 control over the camera though. Also could explain why you couldn’t skip cutscenes.

  31. Alexander The 1st says:

    From the main post: “In my mind, this should not be necessary for linear games. You are limited as to where you can go and what you can see, and you can only traverse the game in one direction.”

    Is anyone else reminded of Rutskarn’s rage during Railroad to Nowhere?

    “NO! NO! Your game is LITERALLY ON RAILS! YOU DON’T GET TO FALL OFF THE EDGE OF THE MAP!”

    Similar rage could be applied to linear games – your game literally has one designed path, you don’t get to claim you can’t load the upcoming stuff in the background.

    Just some food for thought.

  32. SatansBestBuddy says:

    Shamus – “Having said all of this, I’m sure it’s possible to make a first-person game with no loading screens or obvious transition hallways.”

    This saddens me, as this implies that you have not played Metroid Prime 1 to 3.

    I would highly suggest you do so, as it’s a marvelous game series that has nearly no loading screens at all, and what’s more, it was released in 2003, before Half-Life 2 and the Source engine’s debut. (and I still consider it better than Half-Life 2 by a wide margin)

    Yeah, it’s not fair to compare a PC game where they needed to design for every system to a console game where they could focus a lot more resources on optimizing the game engine, but it does point out the fact that the technology to kill loading screens existed way, way back then, so it’s more than just possible to make a FPS like this, it’s been done before the issue of Source being outdated was even brought up.

    (also, if I’m remembering right, Source was based off of the Quake engine, and was completed long before Half-Life 2 was finished, so the engine is really, really outdated in a lot of ways at this point, I think there’s an article in just outlining all the ways the engine has been left in the dust by now)

    • Shamus says:

      I tried Metroid Prime. I just couldn’t enjoy thumbstick FPS. It was frustrating and mildly nauseating. (I don’t understand the nausea. I can backflip through Portals with no difficulty, but jerky camera movements? Puke time.)

      • Irridium says:

        Then how do you watch Josh play during spoiler warning?

        • Alexander The 1st says:

          Over Livestream, no less.

          • Alexander The 1st says:

            I know it’s been a while, but I’d like to re-iterate that you really should play through one of the Prime games (From what I’ve heard, MP1 was the best, but MP3 has some really cool powerups as well, and MP2 has the screw attack and multiplayer that’s a mix between Quake 3 deathmatch and Super Smash Bros. Coin Battle modes, which is always a win.), if only to comment on the story (Hey, as you mentioned in that Reset Button, great gameplay and bad story somehow fit together, so bad gameplay and ? story fit together as well), since it’s one of the few series where a silent protagonist tends to work narratively, at least as far as I can tell (Metroid: Other M seems to indicate that she CAN speak, she just needs people to speak TO, usually). Tech discussion would be interesting too. Especially if you get Josh or someone to play who finds all sorts of glitches.

            Or even just watch a Let’s Play of it. A Let’s Play, not a Speed Run – although Speed Runs can be interesting. A Let’s Play would let you have your bucket and the game too.

      • Alexander The 1st says:

        You could always just play free-form Metroid Prime 3: Corruption, if you REALLY wanted to.

        I prefer the hold-lock myself, though.

        Also, it was better than C-button 007 aiming, so perhaps I was a bit used to quirky camera controls though.

        • Zukhramm says:

          I could not stand those controls. I loved the first two games, but the third, I just could not play. There was some excitement with first person games on the Wii when the controller was revealed, but for all the motion controls, the only thing it does for me is take the thumb stick and make it even harder to have any form of precision.

          The first two games got around that by not really doing aiming, at all, and I loved those controls.

          • Alexander The 1st says:

            The third’s pretty bad for controls, especially the whip stuff (I actually didn’t get past the awesome bombing raid capability because I just haven’t played it since. To be fair, I bought the game for my dad, and he’s never played it.

            For me, the part that kills me with the aiming controls is that if you point outside the screen (Something you’re liable to do because that’s how you turn around), it centers you again. Then you spend 10 seconds flailing about trying to get back to the proper aiming you had before, all the while the boss character is flinging bullet-sensitive bullets at you.

            But yeah, MP2 was my favourite – then again, I’ve only played so much of MP1, so…yeah. 1/2 is not super favourable.

        • Khizan says:

          For Goldeneye, the default control scheme used the c-pad for aiming and such, but you could switch to an alternate configuration(1.2, I think?) that used the c buttons for movement and let you turn/aim with the stick.

          This made you much more responsive and much better at strafe turning and such.

          • Alexander The 1st says:

            If you held R, then you could aim on the spot with the analog stick, but eh. Not very good at all.

            Didn’t know you could do that though.

          • Ian says:

            My favorite was using the 2.x control sets (I believe 2.1 was the one that I used). That enabled you to use two controllers, making it possibly the second instance of controlling an FPS with two dual analog sticks (the first very likely being MechWarrior 2 for the PC, which had daunting yet infinitely flexible way of configuring controls…ah, bliss). Pressing A/B was a little awkward, but it worked out exceedingly well when it came to aiming and movement.

      • Kdansky says:

        There is actually a re-release of the Metroid Primes for the Wii, and they added typical Wii-aiming to them. I thought it was brilliant. Sure, you’re not as precise as with a mouse, but it feels so much more immersive. And the higher difficulty is really not much of an issue. FPS are always too easy for a seasoned gamer anyway.

  33. David F says:

    A couple of people have already mentioned Dungeon Siege as an example of a game with no loading screens. A while ago I came across this writeup about how the engine works and how they got around the problems Shamus talks about. It’s really interesting, and I’m sad that the engine for Dungeon Siege 3 won’t be based on this technology.

    • Irridium says:

      But on the plus side, we may get the first Obsidian game with little bugs, since they made the engine and aren’t forced to learn new tools for a new engine.

      If it works, and we do get an Obsidian game without bugs, I think it’ll be a fair trade-off.

      Of course this is if the game is relatively bug free. And I’m not exactly holding my breath…

    • Paul Spooner says:

      Excellent! This is a really great article about the issues of continuous worlds and the advantages (and disadvantages) of node base local space. I’d love to see this kind of game architecture become more prevalent.
      Yeah, it is too bad they won’t be using it. Oh well. The lessons learned may be applicable to other situations.
      The downside of the Dungeon Siege approach is it’s hard to think about, and has a lot more corner cases. Like he said in the article, it only worked because James Loe (and others) was always scrubbing the rust off of the code. The “normal” instance based levels connected with loading screens is much easier for not-amazing programmers and designers to work with… Which is important, because we can’t all be amazing.

  34. NBSRDan says:

    I would think linear, sectioned chambers like those in Portal would be the easiest kind of levels to stream.

    1 – Load the first chamber before you begin or when you backtrack to chamber 2. Dump when you enter chamber 3.
    2 – Load chamber 2 when you enter chamber 1 or backtrack to 3. Dump when you enter 4.
    3 – Load when you enter 2 or 4, dump when you enter 1 or 5.
    4 – Load on 3 and 5, dump on 2 and 6
    etc.
    This is extremely simple compared to more open environments, which have already been done.

  35. Meredith says:

    I’ve only skimmed through the comments, but I have to say I’m with the people who don’t really mind loading screens. I’m the most impatient person ever and I’d still rather sit through a loading screen – especially one with tips or trivia information – than walk down a non-descript corridor for a minute. How is this different to a loading screen really? You’d still know you were loading the game and not playing it.

    Also, as someone mentioned, you can often take a short break during a loading screen – wolf down a couple of bites of dinner, stretch my mouse hand, light a smoke, even sometimes sneak in a quick toilet break. It’s like the game forcing me to pause and remember the real world for a second.

  36. Arctem says:

    ARMA 2 is an example of this style of loading in an FPS. It seems to handle it fairly well, especially considering how rapidly you can move across the landscape once you get airborne. The terrain is mostly pretty bland, which is probably what allows them to accomplish this. It seems that most terrain elements aren’t part of the physical terrain. When flying at high speeds, it is pretty clear that trees load more slowly than the land itself, popping into existence one after the other as they are loaded. I’m not sure how buildings are handled, but they are generally sparse enough to be handled by either system.
    Obviously ARMA 2 is designed for a very different audience, and is a unique enough game (compared to CoD-style shooters) that its target audience is mostly willing to handle a bit of roughness in such a system. Valve would never be happy with a loading system in which you can actually see the terrain appearing in front of you.

    • Sekundaari says:

      The loading really is quite impressive when zooming past the terrain at a horrendous speed. Even with the popping, I’d say. And in Takistan it is harder to notice pops than in Chernarus, the new map with less clutter was a clever move that way.

  37. Sord says:

    Another factor that should be considered is the additional work testing/debugging streaming levels.

    If each game level is loaded fresh, then the testing and fixing process is straightforward – load the level, find a bug, send it to a programmer or level designer, they replay your input to see the bug take place, they make a change, and replay again to verify it has been fixed.

    If the game streams data, then a bug found 4 hours in to the game might require that you play back all 4 hours of input. And worse, I can easily imagine a case where a tester find the game crashes after 4 hours of play, but playing back the exact sequence of actions does not result in the same crash because at the 2 hour mark some bit of data loaded in a few milliseconds faster, giving the program time to grab some extra bit of data and changing everything from that point on.

    • Alexander The 1st says:

      Well, maybe.

      But then you don’t catch bugs that happen over a period of time, and buildup.

      Also, JRPGs feel like they might due this to most plots, just to get it to launch, but sometimes they surprise you. Golden Sun: The Lost Age, for example, has a sequence where, if you answer certain questions a certain way, the game would give you an altered cutscene mid-game if you gave a specific answer. This spanned a good first half of the entire game, leading up to your first “destination”.

      Sure, that sounds like a *pain* to debug and make sure it works correctly, and the audience didn’t pick it up collectively until 6 years had passed, but it was an attention of detail that you don’t see often in games nowdays – some are trying to find a similar touch in Golden Sun: Dark Dawn, but I suspect we won’t find it until 90000 collective hours down the road.

      So…er…sometimes a full playthrough is needed.

      I’d think it’d be worth the wait if they did a lot of this overkill touches in Duke Nukem Forever. Somehow.

  38. wererogue says:

    Loading in Valve (and nowadays, other Source) games has annoyed me since Half-Life. But only Portal 2 actually uses loading screens – all the other single player games just freeze while the next bit loads.

    What really frustrates me is that the level design in Portal 2 is *ready* for streaming – every level transition is a short corridor, or an elevator, or what have you. They even have variable-length level ends – when you enter the elevators, the elevator starts but the game doesn’t go to the next level until GladOS finishes her speech. There’s never visibility between the two levels.

    All they had left to do was starting the load when you near/enter the transition point and seaming at entrance/exit portals (you could also throw away everything except the exit area when you start the load).

    What’s even worse is that the Steam overlay doesn’t even work well during Source loading screens – the one time I’d really like to use it.

    </rant> Wow, that’s been bugging me for a long time.

  39. Mephane says:

    I think Just Cause 2 did this well. You can freely travel around the Island, which is vastly larger than any typical FPS, without encountering any loading screens. The only loading screens (except for the obvious at game start and loading a savegame) are when you use the helicopter-parachute-drop quick travel system, or are transported during a cutscene, because the game client otherwise wouldn’t have time to stream the content in the target area.

    Actually, I think one could just grab the JC2 engine and build a classical linear shooter on top of it.

  40. Skye says:

    Actually, question- Ignoring transitions into buildings, Oblivion never really had a loading screen. From what I could tell, it loaded things more or less like minecraft (Odd example, not sure why I can’t think of a better one) in that it seemed to have the areas nearby in memory, loading new ones as they came into view. Except for the buildings, I never noticed a real delay that would mean a whole lot of info being dumped. I’ve always wondered if it would be somehow possible to just treat building doors as it does interior doors, and load the interior of the house just like it loaded the outside.

  41. […] my own writing and story-focused pettifoggery, to updates on my game art projects and perhaps even technical pieces if there’s any interest. Commenting on anime similarly is a possibility, but I have my […]

  42. Alan De Smet says:

    I caught Dead Space playing a clever trick. Each sub-section of a level is gated off by a pair of airlocks. As I got more familiar with the levels and started moving around quickly, I noted that if I approached an airlock quickly it took for freakin’ ever to cycle and open. If I approached slowly (say, because I was paranoid), it would cycle and open pretty quickly. So I’m thinking Dead Space is using the airlocks to hide loading times. And it works pretty well.

  43. WJS says:

    Pretty much everything I know about low-level programming I learned here, but my guess as to why the Unreal and Source engines reload everything, even stuff they already have, is that it’s a quick and easy way to prevent memory fragmentation. If you’re keeping random things in memory, then the new things you’re loading might not fit nicely in the gaps the old stuff left, and you end up with little bits of memory that you can’t use. You could compact it, but that would mean moving around everything you have in memory, which would have it’s own overhead, and strikes me as a great way to accidentally trash the heap.

One Trackback

  1. By Open House | Ross Zevenhuizen – 3D Artist on May 14, 2011 at 4:17 am

    […] my own writing and story-focused pettifoggery, to updates on my game art projects and perhaps even technical pieces if there’s any interest. Commenting on anime similarly is a possibility, but I have my […]

Leave a Reply

Comments are moderated and may not be posted immediately. Required fields are marked *

*
*

Thanks for joining the discussion. Be nice, don't post angry, and enjoy yourself. This is supposed to be fun.

You can enclose spoilers in <strike> tags like so:
<strike>Darth Vader is Luke's father!</strike>

You can make things italics like this:
Can you imagine having Darth Vader as your <i>father</i>?

You can make things bold like this:
I'm <b>very</b> glad Darth Vader isn't my father.

You can make links like this:
I'm reading about <a href="http://en.wikipedia.org/wiki/Darth_Vader">Darth Vader</a> on Wikipedia!

You can quote someone like this:
Darth Vader said <blockquote>Luke, I am your father.</blockquote>