Wednesday, 21 November 2007

Why do games (still) have levels?

(If you are looking for articles on Unangband dungeon generation, you'll want to read parts one and two first. If you're just here to find out about why games still have levels, read on. Edit: For those of you coming from elsewhere, this story got Slashdotted yesterday. You may wish to join in the discussion fun there as well, perhaps after reading my follow up blogpost).

Elite, the Metroid series, Dungeon Siege, God of War I and II, Half-Life (but not Half-Life 2), Shadow of the Colossus, the Grand Theft Auto series; some of the best games ever (and Dungeon Siege) have done away with the level mechanic and created uninterrupted game spaces devoid of loading screens and artificial breaks between periods of play. Much like cut scenes, level loads are anathema to enjoyment of game play, and a throwback to the era of the Vic-20 and Commodore 64 when games were stored on cassette tapes, and memory was measured in kilobytes. So in this era of multi-megabyte and gigabyte memory and fast access storage devices why do we continue to have games that are dominated by the level structure, be they commercial (Halo 3, Portal, Team Fortress 2), independent (Darwinia) and amateur (Nethack, Angband)?

1. Resource constraints.

As memory and storage capacity got bigger, so did game size and complexity. In almost all instances, the fundamental limit of a level size is based on a resource constraint of the game-engine. This constraint may be due to total memory availability to store the game, due to performance limits on in-game resources such as textures or game elements (which is why Half-Life 2 has loading screens and Half-Life does not), or due to lack of cleverness (or time to implement) on the programmer's part.

Almost all the games mentioned at the start of this article overcome these constraints by streaming additional data off of the disk as the player reaches the edges of the in-memory map, and through various clever workarounds of engine performance such as converting visible geometry to bit maps when exceeding a specified draw distance (SotC). Elite and its successors such as Spore and Infinity: the Quest for Earth take the different route of procedurally generating content when it is required and discarding it when it has been used to provide a continuous play area.

So resource constraints are a feasible explanation, but not the only one. Valve has implemented streaming technology to improve the in-game performance of Half-Life 2 not once, but twice, for both the Xbox and Xbox 360 platforms. And yet on the PC, what is arguably one of the best games of the year, Portal, there are frequent interruptions in the form of elevator rides and loading screens, the two of which often coincide. And Source engine games are renowned for the corner/corridor/corner map design for separating two levels. Similarly, one of Mass Effects' biggest criticisms is the use of the elevator to hide poorly implemented level loading mechanisms.

(In the event that this degenerates into a semantic argument, I'll define a level as a 'discrete area of game-space interrupted by a either map load or noticeable period of lack of game-play'. What I mean by lack of game-play is limited or no ability to act inside the game, as opposed to the necessity of crouch-rolling through Hyrule field. But I'm basically relying on your smarts to know what a level is when you see it. Before you ask, yes, each game of chess is a separate level).

I would have expected to see games with levels less prevalent, as engines with suitable streaming technologies become more wide-spread. However this doesn't seem to be the cast. Indeed, the CryENGINE behind Crysis, and Id Software engines that support MegaTextures such as Quake Wars are now capable of containing huge game spaces. But both Crysis and Quake Wars still have multiple levels.

2. Design constraints

What I mean by design constraints is the ability for map design to be worked on by multiple designers. Certainly, game design technologies have lagged in a number of areas. It has only been very recently that multiple designers and graphic artists have had the ability to work on the same game-level at the same time. Perhaps the best examples of this is the Forge tool within Halo 3 and Sandbox mode within Crysis. But earlier examples include Cube and Sauerbraten, which allow play and editing of the level geometry with the same engine, as well as Gary's Mod, should anyone attempt to create playable games within that tool. And you could argue that games like Populous and Civilization are based on the mechanism of multiple players editing the game space at the same time.

Without these technologies, a level then becomes a mechanism for splitting up the design process amongst multiple people, turning the production of the game into a factory floor where game 'parts' are built individually before before being assembled into a final product. The assembly of these levels is done through well defined end points, such as the ubiquitous elevators, or even simply by picking up the player from one map location and dropping them into another. Any game that positions you in a helicopter before landing you in a drop-zone is taking this mechanic and making it literal.

Again, technology should improve the ability for game designers to work on multiple parts of the same map at the same time, and so we would expect to see levels decreasing in prevalence as these technologies become more wide spread.

3. Unity of design

You've played games with 'the lava level', 'the ice level', 'the sewer level' and the 'water level'. Unity of design originally arose as a resource constraint issue. Only so many tiles could be loaded in the game engine at once. So by designing multiple tile sets, one for each particular locale, and then only loading the relevant tile set for each level, the game could have a much greater variety of visual elements without hitting the original resource constraint issue.

However, the unity of visual elements in level design has persisted a lot longer than games have had separate tile sets to build a level. To an extent, replace tiles with textures, and it still becomes a resource constraint problem. But it is also as much a player perception issue. Map regions close to each other should look the same. And by having separate levels, each with their own visual look, the player can associate the underlying (abstract) level, with a physical place.

More importantly, the visual design (and sound design) is often linked to game-play elements, in particular the types of enemy that the player will encounter. This linkage is built up through association of visual elements and level geometry with certain enemy types, and then repeating the visual and aural space whenever the player re-encounters these enemies. Think of the association of radioactive waste and zombies, or sand and ant lions, or force fields and Combine in Half-Life 2, or military equipment and soldiers in Half-Life.

But neither a separate visual look, nor associating a game-space with a particular enemy is a requirement for having separate levels. In fact, Grand Theft Auto: San Andreas could be remade as a Half-Life 2 total conversion and through clever design, the association of enemies and visual look of certain areas could be maintained, provided a sufficiently high Combine citadel could be built (and then parachuted from).

4. Linear narrative constraints

First, I blew up the specimen in the test chamber, then I escaped the test chamber lab, then I wandered through the alien-infested offices, then I climbed up the abandoned rail facility to launch the satellite into space... if Gordon Freeman had been able to press a buzzer on the opening monorail sequence and got off one stop earlier, the outcome of the Black Mesa incident may have been a whole lot different. Having levels solves a complex narrative problem, in that through clever use of design, unlockable doors and chest high obstacles, and at last resort, invisible walls, the player is compelled to experience a sequence of events in a specific order.

As a counter-example, the narrative mess that is S.T.A.L.K.E.R. and to a lesser extent the Witcher and Oblivion, show the danger of attempting a linear narrative in an open world. Grand Theft Auto gets away with it because the characters of GTA are more than likely to take time out from an urgent task to steal a car and rob a takeaway. God of War I and II allow the player to navigate back at many points (unless Kratos jumps down a cliff that his bad-ass blades are not tough enough to help him scale again) but the wealth of enemies going forwards and empty ruins that lie behind him is usually good enough incentive to continue. And the constrained openness of the Metroid series is choked at points that require story-telling, by combining narrative events with rewards (Varia suit, freeze ray) that open up new areas to explore.

5. Escalation of skill

Portal is a brilliant study in game-design, because it's levels are not just laid out one after the other, but the actions required to progress within a level are also laid out one after other (until some of the later puzzle rooms). To progress to the next step, and ultimately the next level requires that the player learn a new technique, and master it. The dungeons in Zelda are similarly laid out, so that the tools that the player acquires (one half-way through each dungeon, and one near the end) must be mastered before the player is capable of beating the dungeon. Zelda is interesting in that it has a relatively open over world, explicitly opened up in the case of Windwaker, and then a succession of restricted dungeon levels. Similarly Super Mario World has a hub from which levels hang which may be beaten in any order.

The level mechanic provides guarantee of minimum skill, and similarly is an attempt to guarantee a level of maximum required skill. We've all played games that suddenly ramp up difficulty within a level (Blades of Hades, I name you), but imagine playing a game where you could arbitrarily wander into a zone of instant death (It's called Morrowind). And even in Morrowind's sucessor, Bethesda deemed it enough of a problem that they replaced it with the much hated difficulty scaling system which is loathed to this day.

Similarly, it can ensure that certain required power-ups are held before encountering a boss monster that requires these power ups, but not always. Numerous Metroid speed runs testify to the game-breaking moves that can be made to get power-ups out of order. But it could be game-breaking for a player to encounter a monster which is unbeatable by a power-up mechanic which they do not yet have (The smart designer will have the player rescued at the last second - but even this would look wrong if it was repeatable).

As the number of power-ups and the size of the game-space increases, the problem of ensuring the correct ordering of power-ups and quests takes on Traveling Salesman problem-like dimensions. This means even as computers advance, game complexity will always ramp up faster.

6. Player constraints

Closely related to skill, is the ability of the player to remember the total available options within the game. While geospatial memory can be improved, and studies suggest that game-playing can eradicate supposed gender differences in geospatial memory, it is not infinite. Similarly, the number of separate individuals that someone can know, Dunbar's number, is finite and based on the total brain weight of the species they belong to. Short term memory is even more limited, such that, for example, a player can only recall approximately 7 to 10 numbers without training.

As I suggest, it might be possible to improve all of the above through repeated training. But there are human limits, and the game-play is sure to provide diminishing rewards in return for improving these abilities. And similarly to the resource constraints experienced by computers, an open world is sure to hit the human side resource constraints on memory, and force the player to resort to game-play interrupting memory aids such as quest logs.

Levels provide a natural limit, particularly for multiplayer games, such as Team Fortress 2, which allow the player to memorize the total possible options, much like memorizing a book of openings for chess.

In addition, levels are a great mechanism for limiting the total number of options available to the player. Humans become confused when presented with too many choices, and will limit themselves only to an inefficient subset of the available choices or none at all. There is a natural 'choice limit' that we operate the most efficiency under, and this is a restricted as much player memory is.

7. Reset mechanism

Imagine, if at the end of a game of football, instead of celebrating victory and confronting a new opponent in the league, you woke up the next day, went out and played the game against the same team, starting at the same relative scores as you finished the previous game. While 5 day Test Cricket is interesting for some, the recent domination of the Australian team over all-comers arguably makes the sport less interesting overall.

The level mechanic provides a useful reset mechanism for games. In many instances, all players start a new level on the same footing. Similarly, for games where designers feel that sufficient challenge is required by withholding an auto-save mechanism, the end of a level is a natural point to provide save game facilities (as well as a quick rubdown and shot of Scotch).

Moreover, there are less obvious elements that need to be reset. From a resource constraint point of view, ragdolls and other in-game objects may need to be expired and freed up. In Dungeon Siege, which has a continuous game world, the fact that time was handled as a continuous variable became problematic, and required extensive debugging. Because time was represented by low precision FPU, if the game was played for long enough, time quantization effects would occur. Dungeon Siege also experienced significant problems trying to implement an in-game teleport system, as everything on the map was only located relative to the current game location. For more details, there is an excellent white paper available.

And some game positions can end up in an unwinnable situation for the player. A classic example is in Rogue, where demons can summon other demons in a pattern of exponential growth, forcing the player to escape the level to reset it or die due to the presence in the dungeon of 'too many demons'.

8. Pacing

The level mechanic provides a natural game-pacing mechanism, even if its only to rest briefly during a loading screen. The player cannot hope to continue playing a game at maximum skill and has a natural requirement for periods of lull. The next time you are in an elevator stuck at a loading screen, take the opportunity to stand up, stretch you legs and start the kettle brewing. And reflect on why it is there are still levels stuck in the way of you playing your game.

(More on how this relates to Unangband dungeon generation to come in part four).

19 comments:

Andrew Doull said...

I just edited this because there weren't enough Concerned references in there.

Dan said...

Levels also function as a reward system. "Dude, I just got a new level!" is far cooler than "Dude, I think the enemies around me have gotten proportionately more difficult to match my rising skill. I can has new level?"

Let's not forget that as a system's speed and storage goes up, so do the complexity of the games it runs.

Dan said...

Sorry to rehash what you said in the end there, but streaming can be difficult depending on just how complex the levels are. Also, if everything really is streaming together, that means to some extent all levels must genuinely FIT together like a puzzle... which would be one crazy feat that would drive most level designers insane.

Chris said...

As I'm sure many have told you already.. Half-Life one most definitely has Loading scenes between levels. Perhaps you never played it on a Pentium I, 166MHz w/ 32MB RAM... but I can tell you that Half-Life 1's loading scenes are just as long, if not longer, on that machine than Half-Life 2's are on my 2GHz w/ 2GB of RAM.

Logan said...

Even if all constraints were eliminated, I wouldn't want games to entirely eliminate the level-based play system. I can say for my recent gaming experience that ceaseless gameplay has actually gotten fairly tedious. I can't wait to get my hands on Mario Galaxy and have a more broken up, systematic approach to gaming, something I think we could really do with more of. As Dan said, levels often function as a reward system, but also as a gague of your progress. With Half-life 2, I know that I'm just over 50% done with the game because I'm on chapter 7 of 13. While I don't believe all games should be level-based, I don't think that the only reason they are is because of technical or development constraints. Sometimes it just makes for a better game.

Adam said...

Loading levels also allow for easier replayability, as you can just select which level you want to do and play it.
If you are playing through as different characters, or gaps between the scenarios that you are playing, then a different level with a cut-scene at the start can help show this change and tell you what is going on

Andrew Doull said...

Just in case you're tracking this thread via email - I've done a separate blogpost as a response.

Dan: You're right. Missed rewards completely. And it turns out you don't have to fit the levels together like a puzzle. Dungeon Siege was designed so that they don't have to maintain this consistency. Pieces of a map can overlap and intersect each other like crazy - they can even stitch together parts of the map back into itself to create infinite sized locations.

Chris: I wanted to make point about the effort made to stream levels correctly didn't override the other level design considerations and even for a company like Valve, the ability to make levels appear transparently connected, they still persist with a level structure. And, I know what you mean - first played Half-Life on a laptop, which is always problematic for load times.

dagstar said...

yeah, half-life 1 had loading screens, it is just that when you play it on a nowaday system they are probably just about a second now!

HunterZ said...

Half-Life 1 had loading screens just as bad as Half-Life 2's. I guess you've only played the Source Engine rerelease :p

Gary said...

The Metroid series still has levels as you define them. Metroid Prime 1 and 2 made extensive use of the ecessively long elevator rides. Metroid Prime 3 had "loading screens" that consisted of your ship flying to different planets or locations on the same planet. They didn't force you to repeatedly watch your 3D ship flying against a near static backdrop for 10 to 15 seconds for artistic effect. Finally, more times than not, shooting a door to go to the next room/area/level would often result in a 1 to 5 second delay before opening. I do think they did a good job of minimizing the impact of loading, but the game definitely has "levels" divided by non-interactive "loading screens".

Mikolaj said...

I may be mistaken but I think levels are more determined by the ability to more back and forth between locations and not by the existence of cut-scenes and load-screens between them. If you can shoot through a door, jump out of it, hide back behind it, etc., then the door is not a level limit in this sense, even if it has "Level 2" written on it... Otherwise you can think about any distinct area of a level-less game as a level or whenever your computer gets busy and your game lags you can declare "Ha! New level!".

unwesen said...

World of Warcraft does away with loading scenes somewhat. Within each of the greater areas (contintents, outland), there's no loading screen when you move between regions.

The odd thing is that they still use regions to distinguish between different areas best suitable to different (character) levels/player skills. Now while that's not odd from a game design point of view, it's odd that they place so much emphasis on avoiding loading screens.

What's also a bit messy is that the different regions seldomly merge seamlessly. There's a transitional space, where textures fade from those predominant in one region to those predominant in the other. But that space is woefully short, and you can run from a red-hued region into a green-hued region in a few steps. Visually, it's pretty much the same as a hard border line.

No, this doesn't prove a point, it's just an example of a weird mixture of keeping levels and doing away with some aspects of levels.

My 2 Cents said...

Another reason for levels is to skip the boring parts. For example, a James Bond game just wouldn't be Bond unless there were a lot of exotic locales. If the game requires him to go from London to Hong Kong, do you really want the game to simulate the 11 hour flight?

Bad Cat said...

Andrew, I need to correct you on something. Half-Life and Half-Life 2 do not have levels. They are meant to play as one continuous story which are divided into Chapters.

Even the chapters themselves are still not chapters as you would find on a book. You never leave Gordon Freeman's eyes and everything is told through those. To call those chapters as levels would be to think of them as an elevation of skill or challenge rather than a turning point in a storyline.

If you do however refer to loading screens as the indications of a level change, then there is a bit of a problem there as well. Chapters in Half-Life are even then divided into more than one loading instances. These loading times as you probably know indicates that there is a new map that the computer is processing for play. When you look at the game this way, then you might be looking at a game from the technical standpoint as opposed to the audience perspective. Sort of like seeing a movie and breaking it down into scenes that were shot in the desert, the city and the snowy mountain. You can but then that wouldn't be the point.

I believe that if Valve had a way to do without loading screens, they would have done so from the start. Loading screens break the immersion and they wouldn't want that. Portal had the elevator but then it fit perfectly in the game but that would be consequential. Team Fortress 2 is a multiplayer only game. A level there would end when someone won. They call that a set or a round. Maps and gametypes are not progressive so they weren't meant to be connected if not for the fact that the same bunch of people are still there when another map starts.

Just my opinion though. Thanks for the article. :)

Brian said...

You ask "Why do games (still) have levels?" like it's necessarily a bad thing.

It's doubtful there was ever any technical necessity to divide books into chapters, yet it's often done. Sometimes this splits up ideas, but in fictional narrative it largely serves as a cue to the reader that "this is a decent spot to pause."

You mention God of War as not having levels, but this is only nominal. You may not get a "Now Entering Level 4" announcement, but the transitions and scene changes that bely the level changes are there. Even in GTA you can unlock the next city or part of the city. Isn't that basically getting to the next level?

While level-changing may often be an annoying cover for technical limitations, it may also just be a labeling scheme to help the human parse the game's world or the story.

Now ... someone explain why some games still have save points!?

Andrew Doull said...

Brian: I think levels can be a good thing. I just don't see the need for loading screens... yeah, save points are another bugbear. But then, I'm writing a game where if you die, you have to start from the beginning. And it has 100+ hours play time. So go figure.

Pete said...

Preloaders exist in all games, so do levels. They're just disguised. For example, in metroid, levels can be likened to major milestones throughout the world, and preloaders exist as airlock doors and world elevators. Hence the opening pause.

Ryan said...

Reasons:

1. Speaking a language the player already understands.

2. Clearly indicating progress.

3. Clearly rewarding the player (you finished the level!).

4. Simplicity of development

5. Tradition.

Games can be great with or without levels, and the term itself has become somewhat vague. Levels, acts, areas, chapters... all names for the same function.

Jakob said...

Measures of progress, although one could argue that this form of indicating progress isn't really in line with the idea of an evolution of game design, but it's not the most backwards and degenerate area, I'd say. The other notion of levels, as in character advancement is worse in my opinion.