This here's a thread for folks who want to go nuts over all sorts of technical and not-so-technical game design stuff, which can get pretty damned long-winded, so be warned
Pretty much every single one of us on this forum has at one point or another started thinkin' about game design at one point or another, thinkin' about all the shit we'd do with a team and a budget. For some of us it's a full-blown to-the-letter design document train of thought sort of thing in which we try to map out every little thing and then squirrel it away instead of sharing it for risk some asshole'll rip it off, while for other folks it's more about specific mechanics and segments and whatnot, either because that's all they're concerned with or they can't be assed to move onto a more all-encompassing state of design.
No matter how in-depth and professional or not that our designs and ponderings may be, the chances are extrordinarily good for the vast majority of us that we'll never see a single ounce of fruition come of them, so let's throw our paranoia and delusions to the wind and have us a good ol' thread on ideas and mechanics we've got: if you've got something, spit it out; if you're wondering if X will work under Y conditions, throw that out into the open and hopefully someone with knowledge of the specific mechanics'll come along and shed some light on the feasability or lack thereof of your hopes and dreams.
To start this shit off, I've been thinkin' about modern-day building architecture the likes of which you find in Grand Theft Auto and Saints Row and most of Crackdown owing to a resurge of my interest in such games, and I've been thinkin' about how said architecture can be molded and manipulated to provide variability and replayability - let's call it Dynamic Architecture
for the sake of simplicity, other systems with the same name bedamned. The gist of it's that asides from any specific buildings that the designer wants set just so for the sake of a story or for specific levels or whatever, that a city's actual building layout is generated procedurally: streets, tunnels, and other such definitive shaping characteristics are all a set base, but everything else is generated fresh with the start of a new game and has the potential to shift over the course of a game depending on how the player acts and the developer wishes.
The way that buildings are generated is controlled by lot data
, factors set permenantly by the developers and randomly generated by the game and changed by the player. This data can include whatever factors the developer feels important for generating buildings: in a game with territorial conquest like Saints Row and GTA San Andreas, for example, certain buildings will spawn only when the lot belongs to a specific faction, and the particular details of said building might skew towards one trend or another based on that faction's data, and a developer might set a lot to only support X types of buildings or allow buildings of X height due to restrictions by the terrain and whatnot (you might have crappy utility buildings under highways and whatnot, for example, but the game won't spawn a frickin' skyscraper in those specific spots). Lots themselves are of a square-gridded nature, with space being taken and left empty depending on the specifics of the buildings being spawned.
Buildings themselves aren't actually fully-set whole entities, but rather are of a modular nature, consisting of four pieces: the foundation, the core, the roof, and accessories, with the first three and parts of the fourth all cut from the same general style. The foundation of a building contains all the essential information that defines it, such as the specific model group the core and roof are also drawn from, the height of the building, individuality characteristics like various material textures and colors, and what accessories might be in play. Cores themselves are repetative filler pieces of a variable amount so as to give the building substantial height, and the roof finishes the whole thing off. Accessories are bits selected when the building is created/changed that gives it a further sense of individuality, ranging from small signs and posters to giant motherfuckin' building-wide display screens.
Such a system of building and city generation could prove rather interesting and potentially benificial for several reasons:
A) The dynamic nature of the buildings means that asides from developer-set landmarks and the basic overall layout no two cities created under these circumstances will be exactly the same
B) That buildings are modular in nature allows for them to develop according to player actions or the development of other in-game factions - a building owned by a particularly-succussful faction may gain several floors as a reflection of their increased power.
C) That buildings are generated through the use of a large number of variables means that while only a few baseline parts for each type may be available, the different combinations of textures, height, and accessories allows for hundreds of different combinations, and thus hundreds of differet buildings, without the need to sculpt and design each one individually.
D) That there are very few actual set buildings means that the game map itself, though potentially massive in scale, could be very small in terms of actual disc space size, leaving more space for textures, models, audio, and whatnot.
Though it also comes with a few potential drawbacks, which I'm hoping someone with technical knowledge of game architecture and modelling could maybe explain:
A) While the basic game map is hosted on the disc, that each city is built to its own save means that a shitload of data that would be otherwise simply read from the game data files now has to be stored in savegames, which could be a considerable issue depending on how large the city in question is, especially in a game in which you could have a thousand-plus generated buildings, each requiring its own tags of ownership, model, textures, height, accessories, and lot grid position and so on
B) Similarly, because little of the map itself is hardcoded, any kind of co-op or multiplayer would require the transfer of a considerable amount of data from the host to connecting parties. This could potentially be solved by some kind of a friend-save system in which people who connect to your game download a specialized savegame of the host's city containing all the basic lot and building data, but that could take a chunk out of your storage device and make any kind of non-friend matchmaking extremily difficult as you're downloading absurd amounts of data from several hosts over several games. Granded, for a single-player game this would be no problem, but with multiplayer and co-op being a more prevelent and requested behavior it'd be rather difficult to avoid, as multiplayer can be a considerable selling factor.
C) Because of the extrordinary amount of variability in building height and the density of particular levels of height, NPC AI could be affected to a considerable efect. Having a set city designs means that the AI can be programmed to take advantage of certain developer-designed routes and shortcuts between buildings, but with the dynamic building generation creating and destroying these shortcuts on a game-to-game basis, the AI would have to receive either some kind of considerable architecture awareness coding (which could fail spectacularly with cars flying every which way, or not-so-much with them trying repeatedly to jam themselves into too small a space) or be limited to the use of specific land and air routes, which could reduce the challenge to the player.