But if we break ourselves from the old believes and expectations and look ahead a bit, we just might see a bigger horizon ahead that might be more interesting and satisfying than current toys that we play with.
The future engines could be versatile enough to support anything that your imagination allows to create, for instance:
Think of a seemingly endless world full of life, in which wherever you go, you see meaningful events happen. You would encounter individuals that follow their lives' missions, which might inter-connect with other individuals' lives and missions, and a world full of believable connections and events.
If something happens to break a link in those intertwined activities, like when a key person is killed, those related events would repair themselves in the best way possible in the situation and go on with the new direction of the events.
Those events have the potential to grow into quests if the player's character joins them, and depending on the choices of the designers, the events and quests might happen in specific places and situations, or they might happen in any suitable back scene and compatible situation.
It is possible to create a world that builds itself around the players or to make a world in which the players need to struggle to make their presence felt, or anything in between.
You can make random dungeons that change shape in each play-through, or you can make landmarks that guide the seasoned players forever.
You could make quests that would follow the players around, and present themselves whenever suitable, or you could make quests that required players to work those tiny gray cells to the extreme to be able to trace, or a combination of anything in between.
Those events and quests that follow the players around would be able to change shape, and adapt to the current situation, to fit in perfectly, in a way that they would seem only natural to happen so that the following big quest-line would surprise the players.
In any stage of an event or quest, when interacting with other pawns(character roles), you could follow the pre-designed interaction options and dialog lines, or you could try some generic but available interactions of your choice, and see what happens after that.
You might follow the pre-designed flow of the events in a quest-line, or might want to change the direction of the flow to somewhere not exactly predicted by quest builders, and if the quest designer had followed the generic guide-lines, you would potentially land in another stage of the quest that would not break the quest-line but the flow of the events would find its way into one of the main or side ravines of the quest, and if needed, it would amend its broken stage links to make it possible to continue from the new stage.
The NPC AI can be revamped, so that they would understand their surrounding events and would react on their input from their senses, and if needed, break their current routines, and join another one, and the other event could be one that was already happening, or a new one created by the player's activity, so it would seem that the characters around you respond to your actions believably.
They could ignore the player's request for a conversation, or they might stop their current routines and stand politely and attentively whenever the player goes anywhere near them.
There are different types of events that might happen: random events, specific and unique events, and constant events.
- Random events: A dear jumps around a corner of the forest and flees as a lioness sprints after it.
- Unique events: After the perquisite events happened and the required situation developed, a war might happen between the two opposing clans of the area.
- Constant events: The life story and schedules of a family that live in the back rooms of a tavern and run the tavern as well.
Those events would be made over some predesigned event templates and fulfill any of the defined requirements for the events with currently available resources, and those requirements are categorized in four different categories, three of which could be fulfilled with available resources.
- Environmental requirements, like the current time, the pc’s standing with a faction and the like: Those requirements could only be checked for fulfillment.
- Stage requirement: Where the event could happen, there might be more than one stage needed for an event to happen, could be fulfilled with any area or cell that fits in one of the defined stage templates.
- Role requirement: Who or what could act the specified role, could be fulfilled by any character, creature, or other sentient being that could fit in the role templates, even the player character.
- Item requirement: What is needed for the event to happen; could be fulfilled by any item that fits in the resource templates.
The designers could define those requirements and then start to fulfill them by hand with fixed predefined resources, or let the engine do the same thing with the available resources at the run-time. They can even direct those requirement slots to random lists, so that the required role or item gets created at the run-time.
If some of the requirement roles of an event are filled by random lists, after the event finishes its course, those new characters are freed and they have no attached event to handle their lives, so either they find another nearby event to join(more on that later), or they could be added to generic events of the area to act as the fillers for roles in the regular day to day events, or they are marked for removal after the next cell refresh.
When all the requirements are fulfilled to an acceptable degree, (defined by the designer), the event would happen, but some roles and other resources might still remain available, and those might be filled later in the game, when the fitting entity becomes available.
Those events could adapt to the current situation and available resources, and start to function, but whenever new fitting resources become available, they change shape or course to adapt to new situation, and go on. And the reverse is possible as well.
For example, as in the tavern example, where the life of a family is run by the local event manager, the character that has the role of the head of the family and the in-keeper, might also fill in the role of the barman, because no one else was available to fill it.
But in the course of the game, another character who is in the need of money, or was freed from another event and is in need of another event to join, might offer to join the tavern event as the bar-man and be added to the tavern life event. After that, the role of the inn-keeper is separated from the role of bar-man and each character would have their individual tasks, schedule and rule-sets.
That new character can even be the player, or one of his companions, and it might happen even without a quest-line, because the local event manager is versatile enough to handles those interactions on its own, but a designer might decide to make a quest-line over this scenario and starts that quest-line that would trigger after the situation that I described happened.
And that can be a quest-line that might not be discovered unless a player decided to try to join the tavern activity to help a poor innkeeper who has to work as two people on his own.
And because of the improved AI, and the capabilities of the local event manager, this kind of activity could happen without scripts, and those scripts are used for defining the general direction of the event flows, between the quest stages, and player's special rewards for being able to reach a specific stage in the quest-line, and additional specialization for the quests.
In other words, because of the advanced AI, the interactions between the player and other characters would happen in a believable form, but some specialization might be needed to guide the event flow toward the goals of the quest, so the scripts are used for the guidance, or maybe some special rewards, or starting some other events that would not be caused to happen naturally without the designer's guide-line, and so on...
NPC AI could see any of those events and understand their meaning, so when an npc sees three characters kicking another one who rolls on the ground, he would see in a glance that an event which is a descendant of the event "Brawl" is happening, and the event "Brawl" is known to the npc, because it has a defined meaning in a language that their AI code could interpret.
That is the same language that might accompany each line of text in conversations, and that same language could be used to define new and special behavior for special characters, and that language could be used behind each general line of conversation that each player could try to use instead of the defined route of conversation, and as those meanings are known to NPC-AI, those would result in meaningful responses from the confronted npc, and might result in a change of the course in the quest-lines.
As for the brawl event example, depending on the persona of the spectator npc, he might flee, keep his distance, or try to join or interfere with the event, and the event of the brawl has a sets of roles for each side, and any new npc could be added to the list of each side and join the event.
In the whole world if anything happens, it happens via an event, and has its meaning available for others to understand, so you do not place a monster in a place, but you place an event in that place and that event has that monster attached to it, so for instance you do not place a goblin at the entrance of a cave, but you place a goblin guarding the entrance of that cave.
The event of the goblin guarding the entrance can be a sub-event of the bigger event for instance "goblin clan life" and would have interactions with its other sub-events, like daily shift changes, night orgies, sleep-times and so on, so an equivalent of the schedules in Oblivion can be achieved under the big event via it's sub-events.
Those events are smart beings and can accept or loose members on the fly and change shape to remain whole, and continue their course until the time that they finish their course or collide with another event, and so on...
All of those interaction between different events, or in fact the interactions between any two or more entities of the game, and also all the control that game developers have over any entity are the direct result of what I call "Identity Oriented Programming" which is the natural step after "Object Oriented Programming".
This is all beyond the scope of this thread, but for a brief description, in this new method, instead of building the whole word from objects of OOP, we make the world from entities of "IOP", and each entity can have one or more identities attached to it. One is the permanent main identity, and others are the probable additional identities.
So for instance in the tavern example, there can be an entity that has several identities: male human, head of the family, inn-keeper, and barman, and in the course of his life event, he might gain more temporary identities as well, like buyer from a shop, or hitter of a thief boy, and so on...
Those identities are hook points that help game developers control different entities to their bidding, and those identities could come in pair and control the inter-actions between two related entities, so for instance we can have an identity like "rider" (attached to a person), which knows how to inter-act with another identity "the ride" that could be attached to a beast.
OK, enough about those identities, but let's just say that they use a method which I call "smart resource usage" which makes them able to attach to different entities on the fly and act as if they were there from the design time.
In the end, I wanted to add a hint about my proposed landscape generator which develops the landscape via a method which I call "Controlled random identity oriented fractal terrains", with the end result that you could make a landscape that could potentially extend endlessly, but remain the same in each play-through.
Or you could make a landscape or dungeon which would change shape at every play-through, but would contain key parts that remain the same, and make the terrain via rules and guide-lines set by the designers, and controlled by entities that are specialized to build specific types of landscape.
If a designer places a static item(like a hut) in a place, the surrounding landscape would change shape to snap to the right places of the static item.
If a designer puts his finger on the ground or a static item and pushes it down, the surrounding landscape adapts itself to the changes.
The end result is that tears and breaks in the landscape would be something of the past, and different mods cope with each other's changes.
OK, those paragraphs were like some briefs and titles to a part of what was being developed in my head for years, and I wanted to write them down as a proof that there is still a lot of room for advancement in any aspects of the game design, if we break free from the past.
For instance the fixed voice acting for each line of dialog would be catastrophic for the development of those versatile quest-lines, dialogs, and character AI, and if we think that an unlimited game landscape would cause the players only confusion, we have not understood the nature of those events and quests that would follow the player in his heels, and offer themselves smartly and naturally whenever possible
Also with the help of the advanced AI and the dialog lines that carry their meaning with themselves, the characters could understand what is the player asking from them, and could find the directions by the help of the in-game entity routers and offer the players the right route to reach the desired place, if they liked the players.
Those interactions do not need to be parts of a quest and the players could ask about anything from any person, with the help some in-game dialog menus, and they can also ask/order any character for any task, and so on, but the result would depend on the character and his relation/feeling toward the player.
You might think that those ideas are impossible to implement, but believe me, if a game engine is made from the foundation with those milestones in mind, and with the method that I call "identity oriented programming", it could handle all of those ideas and more.
But for current engines, if we want to add some parts of those ideas to them, all that I can say is that we might be able to fit in some of the ideas, but it all depends on what is the base engine and what we want to add.
For instance if the base engine is the current TES game engine and we want to add the new versatile quest system, it is possible, but might not be as detailed as what I have in mind and I do not guaranty the AI part.
OK, that's all, sorry for the long post, and please do not think that I've gone mad.
Edit: In these http://www.gamesas.com/index.php?/topic/1105491-a-picture-is-worth-a-thousand-words/ http://www.gamesas.com/index.php?/topic/1107940-perks-they-can-make-each-play-through-a-unique-experience/ http://www.gamesas.com/index.php?/topic/1108155-xzzz/ I have stated some of my other thoughts as well, and I might go into more details for those ideas as well.