No factories, no assembly lines, no microchips, no computer generated graphics, no automated anything.
If there was no factory and no procedurally generated microchip, we did not have a computer to use and brag about what we did not like.
If there was no procedurally generated 3d graphics, there were no elder scrolls, and no other 3d game.
Because of this automation, we can now play games that a while ago seemed impossible, so let's not say blindly "no" to further automation of game mechanics, without thinking about the possibilities.
I do not say that the current methods will become completely extinct, because we still play 2d games, but I'm saying the future for blockbuster games would use a lot more procedurally generated game content, almost in any aspect of game design.
And I do not say that the future games would be random, because today's 3d games are not random, but the automation helps the game developers with mundane tasks and let them spend the saved time in any place that needs their focus the most.
And procedural landscapes or quest-lines do not mean all the places or quests look similar, generic or under-detailed, because those were the problems of the past implementations, not the future implementations, and we can create procedurally generated unique places or quest-lines, if we know how to produce them with seemingly unlimited variations that could change shape and adapt to any situation.
And above that all, those procedurally generated landscapes, populations, events, and quests would be just a base and foundation for the designers to start their work over them, and they could wipe an entire area, and start from scratch if needed, or add enough individually distinct features to any place, event or quest to make them unique enough.
So let's not veto an idea just because previous attempts were not that successful, as future is still to come and will surely see better technologies, and hardware horsepower.
I want to go into some details in the following text, but not too deep, as it would be too long to post here, but if someone wants more clarification on any part of the details, please ask me for it.
=== === === === === === === === === ===
Let me sketch for you a game with well-designed procedural content, and it can be done, as I already now a way to do that, but because those ideas are not implemented yet, I am not sure if current hardware can do the job, but at first I need to go into some technical detail about the procedure so that you understand how it happens, but if you do not want to read the details, just agree that it is possible, and jump to the next part.
First of all, do you know about a Photoshop plug-in that converts a picture into a fractal formula, and drastically reduces the size of that picture, because instead of lots of pixels that cover the entire area we have just a formula that defines the content of that area?
And if we did not need the picture to keep its entire detail exactly like before, and a rough estimation was enough for us, the formula could become definitely smaller, as fractal formulas tend to fill the area with their own detail, to the infinitely small specks of dust.
We can have landscapes generated by fractal formulas, and please do not think that it is not a good idea, because as I have said before, the future is not the past.
The entire area of landscape is inside, let's say, an object oriented landscape generator(LG) that uses fractal formulas and smaller more specialized landscape generators to create the landscape.
The smaller LGs are responsible for smaller areas inside the bigger one and they use the same method, i.e. they use their more specialized fractal formulas and smaller and more specialized LGs to create their content, and this procedure continues to the finest detail that are required.
The bigger LG can be called "Continent" and smaller ones can be Mountain, Jungle, Desert, Swamp, Valley, River, Ravine, Hill, Rock, Tree, Branch, Leaf, Town, Village, Settling, House, Cottage, Shack, Farm, Road, and so on... and those are just generic names, because we can have "cobblestone road" or "mud road" and so on...
Each LG can have a position and a boundary that defines its place on the map, and a random seed that affects the final shape of the landscape under its management, as the fractal formulas can have random elements, and the choice of sub-LGs under the LG that manages them, can also be affected by the random seed.
So if we have an LG covering a specific area, each time we give it a specific seed, we would get the same resulting landscape, so although it is generated procedurally and randomly, but with fixed random seeds, we would get fixed landscapes.
I do not want to go into more details, because it can rapidly become boring for non-geeky people, and in fact those LGs are "Identity Oriented" instead of "Object Oriented", but for now let's say that it is the same thing.
=== === === === === === === === === ===
The designers can start with a flat landscape and paints a rough height map over that landscape, like a painting, the black areas are the bottom of the sea, and the white parts are the tips of the mountains and the gray areas in between are the rest of the landscape. They can use semi-randomized fractal generators for assistance as well.
This is a detail-less rough sketch of the landscape, and at this point they can jump to the conversion phase or they can start to add more detail to the height map as they like, so in a 3d environment they can push or pull the land upward or downward, with specialized height map manipulation brushes, until they are satisfied with the general shape of the land, but the details would remain for the phases after the conversion.
After that they can place some high level landscape generators, like mountains and jungles over some specific areas to help the procedure of conversion phase a bit, and they can also place smaller detail, like valleys and ravines to be more specific, and they can draw the boundary between the sea and the land to make a precise shape for the continent, and so on...
Then they would start to mark places that they want more precision, and leave the rest to be either randomly generated or detailed with more relaxed attitude, as the resulting shape does not need to be the exact replica of the height map that was designed.
After that, in the conversion phase, they start a procedure that tries to build a rough estimation of that height map via fractal formulas, by juggling around the random seeds, using smaller and more specialized landscape generators(LGs) for the hard to create parts, and specifically defining the height of some points on the landscape, and so on...
In those fractal formulas, if we specifically define the height of a point in the landscape, the surrounding area would change shape to adapt to the new change, as it is the nature of those formulas.
This procedure would take its time, and if we want more exact rebuilt of the original height map with smaller resulting data, then it would require longer times, so let's say it might take between a few minutes to several days, depending on a lot of factors, one of which is chance.
The end result would be a hierarchy of LGs that define the shape of the landscape. Each with specific position, boundary and random seed, and maybe some specifically defined heights for specific points within their boundary. And that would be really small data compared to the height map, and also those LGs would know how to fill their managed land area with smaller detail and probable life.
If the designers have previously defined parts of the landscape, and marked them to be more precise when converted to LG hierarchy and fractal formulas, then those parts would be just like before, but with more detail as it is the nature of those fractal formulas.
But if they did not mark areas to be exactly like before, then those areas might have changed a bit to follow the formulas of the more precise areas, and those places might have some new details, as well.
=== === === === === === === === === ===
When the landscape is completely converted to LG hierarchy and fractal formulas, the designers can have more interesting tools to design the areas, for instance, they can move the landscape generators(LGs) around, and change their shapes and parameters.
They can place new LGs in places to add content or make the area more specialized, and so on... and the surrounding landscape would snap to the predefined areas of those LGs, and would change shape to adapt to new changes.
For instance you can place a shack over the uneven surface of a mountainous place and the surrounding area would snap to the predefined parts of the shack and change shape to adapt to the changes without losing the previous detail. I have tasted that with an old dos based program that I had written several years ago, and it works.
If a designer wants, he can loosen some snap points from an LG and that part of the landscape would revert to a previous state, depending on other snap points.
The designers can grab a point on the landscape and move that upward or downward and see the changes in the landscape, or clear some previously altered point on the ground and the landscape.
They can place a hut LG near a road LG and they would snap together and the road LG could extend a branch toward the hut to cover the entrance, or they can place a ravine near a valley with the same effect, and so on...
The "cobblestone road" LG would change the shape and the texture of its managed area to make that look like a cobblestone road, and would know how to add branches to new destinations, and the town LGs would use this functionality to make controlled but semi-randomized towns with houses that are linked by roads in between, but they can have somehow different heights, and so on...
The whole landscape can have this type of intelligent adaptability and mutual understanding of the surrounding LGs, and the character AI can use this characteristic to have more precise path finding or understanding of the surrounding area for decision making, but that is another subject altogether.
=== === === === === === === === === ===
The implementation of the landscape in the real time can be done by different methods, depending on the normal target user's hardware horsepower, so either all the landscape could be rendered in the real-time, from the Landscape generator(LG) hierarchy and fractal formulas, which would give the best flexibility and the ability for real time changes to the landscape, and randomly generated surface areas or natural looking (non-blocky), dungeons, seemingly infinite landscape with seemingly infinite detail, better compatibility and adaptability of expansions and mods, and so on...
The fact that both fractal formulas and LG hierarchy can be interpreted just to the required level of detail and stop as there are enough detail, can help in this subject a lot, so for nearby areas we go more into the depth of those hierarchy branches and fractal details, and for far away areas we stop as soon as there are enough details on the screen.
Or if the normal target users of our games/products do not have the horsepower to render such a landscape in the real time, we can have a pre-usage render of the landscape and store the details on the hard disc, and this procedure can be done each time the mod list of the game changes, so that the ground tears and landscape incompatibilities become something of the past.
For the randomly generated dungeons, this rendering phase can happen each time a player enters a new random dungeon and it would seem like a loading screen with a message that the dungeon is being generated and a percentage number and so on... and after that the dungeon can be saved in a place beside the save game and for that character's game it would become fixed.
But if the landscape could be generated and rendered in the real time, this waiting time would be a lot shorter, and there would also be another characteristic that would revolutionize the games: The surrounding area would change to have new features as the story proceeded, and we could have different seasons, falling leaves, new houses or razed cities, and subtle changes that would game a lot more interesting.
Like adapting to the game-play style of the players and sensing their immediate needs and supplying them without its being obvious, and so on...
The Randomly generated dungeons can be made by guidelines defined by designers, so that we can have an LG called "Random bandit mud cavern" which is a descendant of "Random Lived-in mud cavern" which follows "Random mud cavern" with follows "Random cavern" and random cavern knows how create inter connected cavern complexes, and random mud cave knows how to make such a complex with muddy effects, and random lived-in mud cavern knows what facilities are essential for a lived-in cavern and include them, and random bandit mud cavern knows how to manage a bandit camp residence and what is required for such a place.
That was the object oriented implementation of the idea, but the "Identity Oriented" implementation would be like this:
We place an entity in the game with the main identity of "Random Dungeon" and it would have the "Landscape Generator" identity as well, and then give it the additional "Mud cavern" identity which would have "Cavern complex" identity as well, and then we would add "Bandit hideout" to the entity and it would have the "Lived-in place" identity's facilities as well, and those identities would cooperate with each other and together create the random dungeon.
In fact with this method a place can have all the "Mountain", "Valley", "River", "Forrest" and "Lich King Territory" identities together and they would all leave their marks on that place, and shape it to be all those places in the same time.
As for the cavern example, the different bricks/units of the cave complex know how to stick to each other and to what other units they are compatible, the "Mud cavern" identity knows how to paint the surfaces, and add what artefacts to the surfaces, and how to populate areas with natural entities like rocks and holes and so on... and a hole when applied to a surface would change its shape to include a hole in there.
The lived-in identity would force the inclusion of living places, and how to stick those places to other parts, and also how to add stairways and generally make the place look like it has been lived-in, and so on...
The bandit hide-out identity knows how to add guard-rooms near the entrance, and how to add places to keep prisoners, and how to populate those living places with bed-rolls and general bandit staff, and how to populate the whole place with a living group of bandits, (by the help of the constant events and their schedules, but again, that's is another subject), and so on...
=== === === === === === === === === ===
I wanted to add details about how to populate an area with procedurally generated life over the available landscape and how to automatically give life to the added cottages and other LGs, and how to let the designers change those additions as they like, and how to add randomly generated or manually designed events to the available life, and how to develop randomly generated or manually designed quests over the available events, but that is too much detail and it was impossible to write all the stuff in one stand so I'm going to add those stuff in chunks and thus I need to add empty posts after this one.
What I write next, if any, might depend of the comments and feedback, as I'm versatile and if an idea clicks with the whole image, it could be included, or you can just tell me to stop right here and do not waste your times, and I would go elsewhere with these ideas.
If I change the poll and add items about procedurally generated encounters and quests, do the previous votes disappear? What if I add another question?
Edit: Please add your opinions about these matters, and I hope to continue with other procedural types of content.