views:

684

answers:

13

I'm wondering why so few 3d games have a mechanism that allows the player to fly over the map and land down when he likes. Is this very hard to accomplish in a 3d game, or otherwise technically unfeasible?

+7  A: 

Well ... No. There's no technical reason, of course depending a bit on how closely you want to simulate real flight. It might be that for gameplay reasons, the designers of the game have chosen to limit the player's movement over the map.

Many team/tactical-based games (shooters) depend on the interplay between players during ground-based combat, and would just not be the same if players could fly freely.

EDIT: Thinking a bit further, there might be a case against flying from a technical point of view, since the higher altitude of the viewpoint, and quicker overall movement, might make higher demands on the rendering subsystem. Consider landscape rendering for instance, it's easy to imagine that there are optimizations you can do if you know that the viewpoint will always be reasonably close to the surface, that break if you can fly hundreds of meters up.

unwind
Landscapes are pretty easy to render from any distance, since large landscapes usually require some kind of distance based LOD anyway. A cityscape is much harder, because occluding geometry is often used to cull invisible objects. A view from the sky would require buildings to have LOD too.
TrayMan
Of course, team-based games could be improved by it - if you're split from your team and don't know which direction the enemy might come from...
Peter Boughton
It's more likely a question of lazy game/level design (or even just not thinking of the idea) than a specific gameplay decision.
Peter Boughton
During network play do game servers to send data to clients isolated to their players area? This has to be the case with MMORPGs but I'm not sure if FPS games employ this as well. The higher altitude and speed would effectively increase the radius of the relevant info the server would have to send.
Spencer Ruport
+6  A: 

I doubt that this would a difficult thing to accomplish from a technical point of view, however games which use short draw distance for objects may look bad because only the immediate area around the player has been drawn.

My guess as to why it's not done more is that is really makes the level design hard from a game play point of view if the player can start anywhere and go anywhere.

Shraptnel
+2  A: 

This is a programmer's site so here's the answer from a developer's perspective:

Position TeleportHere = {10, 10};

Player.Position = TeleportHere;

There is no point in adding addition animation just to get from point A to point B.

From a gamer's perspective, it depends on the game designer. If they want flying, it can be done and the programmers would program a mechanism for this (along with animations, of course).

MrValdez
Ok. I understand the downvote but the offensive? The questioner asked if it was feasible and I answered why a developer wouldn't do so. I also answered that a game designer can ask a developer to implement the flying mechanism. If someone finds this offensive, please give me feedback so I could edit
MrValdez
@MrValdez: Perhaps someone was already at {10, 10} and got offended that you teleported without checking first if the location was empty. =)
Sergio Acosta
I think some people abuse offensive and use it as a "vote to delete answer"
hasen j
A: 

No technical reason, but games writers tend to concentrate on the functionality required for the actual gameplay. Some games add extra functionality, like Easter Eggs, but their publishers might prefer them to get the game out earlier without risking introducing additional bugs.

David Sykes
A: 

ESF, a DBZ mod for Half-Life implements flying characters (as the characters of DBZ fly!)

youtube clip

This mod is made by a team of hobbyists, not backed by any corporation (AFAIK), and it's in the Half-Life 1 engine, (which is quite old by today's standards),

so there's definitely no technical difficulties of getting it done.

hasen j
+1  A: 

in King's bounty Legend you will be flown from one place to another, so there you can take a look, what it would look like. The probleme there is, that your maschine has to render a lot more information and a much longer line of sight, to make the experience nice and smooth.

in a ground based, you are like in a theatre with a stage and a back picture, that matches the dimensions of what you want to let the viewer (audience) see, and with some tricks of painting, you can aquire perspective. But if you look from the wrong direction on those flat pictures, the vision is spoilered.

so you cannot use pictures for the background and have to render those things also.

(see the pictures from the street painter julian beever)

Peter Miehle
A: 

The original UnrealTournament allowed you to fly around the map before the match began.

ck
A: 

Battlefield 2 can do it?

... well until it randomly exits for the desktop for no apparent reason.

In all seriousness though. The jets and helicopters are capable of landing anywhere.

Spencer Ruport
And Battlefield 1942, you can just hop out anywhere - does that count? :)
Sean
+6  A: 

Two reasons:

  • For most games, a significant portion of the game's difficulty (and fun) hinges on the fact that in order to get from a start point to a level's exit, you have to overcome certain obstacles. If you could fly, the game would be much easier / less fun, and it would be pointlessly hard to design levels where this isn't the case.
  • Most 3D games concentrate on making the landscape detailed and pretty, and that's a LOT of work. So in order to make the release date, the 3D artists leave out everything that the player can't see from inside the level. If you hack in a "flying mode", you'll suddenly see that the hills have no rear side, the far-off mountains are just flat planes floating in the air nearby, and the sea has an obviously repeating texture. To make the landscape pretty both from near and far away would be a lot more work (and a later release date).
Michael Borgwardt
+1  A: 

Making a 3D environment look good is not trivial even given todays computing resources. There are always tweaks that are based on the notion "no one will notice".

For example, the 3D engine of Duke Nukem 3D was essentially 2D. It was impossible to look straight up or down, because vertical perspective was not correctly implemented (vertical edges were always parallel to the monitor's side edge). It was not possible to create rooms over rooms unless you managed to hide the fact that internally, they overlapped.

A more recent example is World of Warcraft. After flying mounts were introduced, they could not be used at first in the old "continents" because there were so many hacks to produce the illusion of a vast world that would have broken as soon as someone flies out of the predetermined paths. It was never possible to just see Stormwind "lying there" from above because it would have been a mess of sprites and contorted meshes when not seen from the ground. It was like a western city mockup where only the facade is really there.

If you want to allow players free flight, such tricks are not possible. You have to make everything complete. This means double the work for the designers and builders of the world. I think you can imagine that in deadline-driven development, a game company is very keen on cutting short wherever possible.

Svante
+1  A: 

Quite often, the game world is like a movie set - buildings only have one or two exterior walls defined in the world for example. The reason is, that under normal game conditions, it will never be possible to see the other sides of the building. By not defining the polygons, the advantages are:

  1. It's less work for the artists, development time reduced;
  2. It's less work for the rendering engine, the best optimisation is to not do anything, so processing zero polygons is infintely faster than culling polygons; and
  3. You can put those saved polygons to use elsewhere, where the player will see them. There is a finite limit to the number of polygons you can draw.

I suppose it's like asking why are there doors that can't be opened in games? Why not model every single room of every building in the game world? Would this be appropriate for a racing game?

Skizz

Skizz
A: 

With flying as secondary feature a character just has to land on top of a roof or in a tree to break game balance completely.

Pathfinding, tuning AI and game mechanics take a lot of effort, just as adding an extra dimension of content. Investments like that only makes sense when flying is one of the central features of a game.

Daan van Yperen
+1  A: 

Take World of Warcraft as an example, as a game that has flight, but not everywhere:

  1. You can't fly "where ever you like" in any of the original areas of the game (i.e. those built before player flight was introduced), because the areas were not designed for the player to be flying, except along pre-canned routes that the transport system provides - the designers themselves have pointed out that the scenery uses some of the tricks mentioned elsewhere (2D billboards, etc).

  2. You can't fly before you reach a certain level: 68 (druids)/70 (everyone else) in the first expansion, and then 77 in the latest expansion. This was a deliberate choice to ensure that the player didn't just "skip large areas of content".

Zhaph - Ben Duguid