A lot has be said and written about linearity in games and how it seems to be the "downfall" of a lot of games that are coming out. This article will discuss the different types of linearity in computer games and some ways to create non-linearity.
Linearity in Gameplay
Linearity in gameplay comes from having to do a set number of things in a set order. A good example of this is an adventure game. I'll choose one of my favorite games ever as an example Zak McKracken and the Alien Mind Benders (LucasArts), we'll call it Zak for short.
In Zak there is a sequence on a plane where you need to look in the overhead compartment to get an item, however every time you try to do this you are forced to sit back in your seat by an annoying stewardess. To distract the stewardess from bothering you, you must go in to the bathroom, take some toilet paper and put it in the sink. Then turn on the faucet and flood the bathroom. While the stewardess is taking care of that little treat you must take an egg and put it in the microwave. Then turn on the microwave, and get out while the egg explodes. This sufficiently distracts the stewardess so that you can get the item in the overhead compartment and other areas that you need.
While this sequence is amusing and is fun to do, it is also a good example of linear game play. If you attempted to do anything else to stop the overbearing stewardess such as entrancing her with your kazoo playing skills or trying to bribe her with a loaf of day old French bread, it wouldn’t work. You have to do a precise sequence to get the desired result. You also cannot do only part of the sequence; if you try you will be thwarted in the middle of rummaging through the overhead bin and sent back to your seat. What's worse is that failing to complete the sequence means that you lose your chance to get the items because part of the sequence is now done, so you have to reload in order to get the necessary items.
You can see how this could become frustrating. So how do you avoid this kind of situation?
Actual implementation is going to highly depend on the type of game you are creating. If you are creating a game that is 3D and allows a full range of motion anywhere in the world and uses a flexible models for interacting with the world then you should have a lot of possibilities for inexpensively creating multiple ways of doing things.
If however you are constrained either by working in 2D and need different animations to allow for different actions, or are working in a limited set of functions in a 3D environment then you will most likely have to make a lot of special case circumstances.
To give an example of what a special case circumstance would consist of I will use my current game Force Recon (FR). In FR your units are allowed to move about in any kind of way that the player should be able to think of and over any terrain. Since FR is a 2D game with animated 2D characters there must be a separate animation made for each of these actions and the maps must be thoroughly examined to try to think of anything that a player could realistically desire to do.
A player may choose to attack a building in several ways. They can send units in through a door, or send units in through the windows or grenades in through the windows or simply destroy the building with explosives while never entering it. Each of these methods will require that animations be drawn for all of the unit's possible moves, even if the player may never use them.
As you can see this leads to a lot of work that may never be seen, this basically is part of the definition of non-linear subjects. The player may never see certain parts of the game because he chose another route.
Another example of non-linear game play would be to allow the player to take more than one path to get to a destination. For instance the player needs to get in to the laboratory in a castle. He can either go through the front gate or try to sneak in through a cave to the dungeon below. If he can chose either and still ends up in the same place than this portion of the game is non-linear.
To explore an example of a 3D game with a highly flexible interface system it is fairly easy to plug in the above castle scenario to see how you could incorporate non-linearity into this type of game. Gameplay wise, games like Quake have non-linear gameplay. You do not have to go down one corridor before another or kill all of the monsters on a level in order to pass the level. However story linearity is a completely different matter.
Linearity in the Story
Creating a non-linear story can be considered a more difficult task than creating non-linear gameplay for three reasons.
The first reason is that the story has a longer lasting affect than gameplay does. Gameplay is non-linear when the player can make choices immediately and take different paths to accomplish his goal, the story however has to keep up with all of those changes. If the player skips the front gate in the gameplay, as in the previous example of the castle, the player will still end up in the laboratory. However the story may need to be altered permanently because of that decision.
If the player would have met his companion knight in the courtyard behind the front gate, the game now his to skip all mention of that knight because he is not in the game or else introduce him in some other way. The earlier the story begins to branch and the more times it can branch the more different outcomes will need to be written to tell the new story.
This is where we come to the second problem with non-linear stories, media deliverance. Most game players have now become used to being told their stories by video clips or at least audio clips. To do a very non-linear story in this manner you would have to record the content for many more times the length of a linear game. Not only can this become prohibitively expensive but storage can also become a problem.
The third reason non-linear stories are extremely difficult is trying to keep a strong plot. Books and movies have a single very specific plot they take you along which can be quite gripping because of the focus it provides. To take a gripping story line and then try to make branches in it where different results change the story is an extremely tall order. Imagine if in the story of Pinocchio how it would change if Jiminy Cricket had not been able to open the window and jump in to the house to make Pinocchio come to life. What would happen to the story then?
This is an extreme example, but it points out that a branch at the beginning of a truly non-linear story could basically require an entirely new story separate from the original. From a game designer's point of view you have to see how far you are willing to let your story stray from the main thread. Do you want to allow for multiple endings? Do you want the story to continue on no matter what happens? These are questions you will have to define that are dependent on your particular game.
Earlier I gave Quake as an example for non-linear game play, I mentioned that you did not have to go down one corridor before another. In fact you often have to go to one area before others because you need to open doors by pushing buttons. I consider this a story aspect of the game as opposed to gameplay. It is a turning point in the game and while it's not much of a story developer you are opening up future actions by pushing the button. Another example of this is in the game Starcraft, when you play the Zerg you must protect a chrysalis, which will later hatch. After you have protected the chrysalis long enough it hatches. This is a parallel event to pushing a button in Quake, however instead of an active event it is a passive one.
Non-linearity in gameplay and story are definitely possible. The problems in creating effective and most importantly noticeable and enjoyable non-linearity for the player are going to be difficult and most likely will require a lot of attempts and years worth of effort to fully achieve.