Procedural Generation
Procedural Generation is probably the next step in Massive Open World games such as Oblivion and Grand Theft Auto. Not only can the worlds be expanded upon, they can also be expounded. Interiors will be randomly generated based on seeds, whole buildings could be designed. The technique is so powerful the possiblities of it are only limited by the ingenuity of the developer. Imagine an RPG video game where no two NPCs look alike.
If you've never heard of it, following in the footsteps of Eve, and attempting to greatly diverge from it, Infinity: The Quest for Earth is a space game using this technique. It procedurally generates planets, solar systems, and surface cities. You could literally spend gameplay hours just travelling around a single planet. It's so indepth and it's all thanks to this technique.
Pretty much what you have to do is create modular content. What I mean by modular is that you have different pieces, kind of like a puzzle, that fit together in various ways to create a full product. For example, a building would have 4 pieces, 2 floor pieces, a middle piece and a roof piece. Using the procedural generation you could make any number of buildings just by changing the floor piece and the number of midsections. Using base 1 you could have 4 middle pieces and a roof piece to make a building 6 stories high. You could also make a second building just by changing the base allocation. In this way the diversity is based not on how many different models can be modelled, but by how many different types of modular pieces you can piece together.
The same can be said of a city. You could have modular street blocks that have different appearances and piece them together, or you can squeeze more diversity out of it by having modular buildings which are randomly placed throughout the city.
With RPGs you could have so many more NPCs by simply different features. This technique can be used by thinking back on it, character models are very moldable and their features can be set to attributes similar to the character creation process of Oblivion.
Either way around the system can produce diversity with a fraction of the work. Another benefit is you can create a fully fleshed video game in megs rather than gigs. Rather than having models stored for everything, you'd have building blocks that piece together to form the whole. For example, a building takes up 1kb. A city of 1024 of the same buildings will take up 1 mb. With procedural generation you'd take up only 1kb, plus the space required for the coding. For the sake of the argument, even if that file took up 250 kb, that's still only 251 kb. Thats a data savings of 75.5% of the original space it would have taken up modeling the whole city.
The only set back with this method is the actual loading phase. As oppposed to loading one large piece, the system will have to actually run the code and parse all the commands and references, then place each piece in it's appropriate coordinate.
To make a reference to flash though, this technique is similar to the ones where a user stores map information into an array and has the system read the array and paste the appropriate tiles in its position. Imagine having an algorithm that not only assigned tile position, but also generated the array randomly using a set of rules, and also picked which tiles would be used.
Moving forward, as we put more interest into the programming of content, we continually take things out of the artists' hands. If we do that we also reduce the amount of space we need to contain all the art assests. Hopefully this trend will find it's balance. Rather than game storage size decreasing, hopefully it'll stay about the same and game worlds will increase exponentially in not only size but also depth.
Rant ftw.