Diverse ways of interacting with world
As I & Wavinator have talked about here before, I''ve been working on a way to allow for diverse ways of interacting with the world both for players and NPCs.
What I am thinking about doing as a demo is have a list of attribtutes (variables) and then some rules (in the form of if statements for now) that dictate how attribtues affect other attributes. I don''t want to get into the complexities of actions yet, just altering the variables directly or through rules.
I''ll explain more...
Here''s the simplist examle:
An NPC has an attribute called Location (represented by x,y,z)
if any of those attributes are changed the NPC will essentially move
Here''s another:
NPC has attribute called Anger (how angry the NPC is)
Another structure called Item will have the following attributes:
* owner; // person who owns it
* holder; // person carrying it
Then there''s the following rule:
if (Item.owner!=Item.holder) The owner''s anger += 10;
So basically in my demo I would have an interface that would allow me to change any of the attributes (variables) at runtime.
Now, in the real game these would be changed not only through rules but through actions like Move, Take, Steal, etc, but I don''t want to deal w/ those for now.
So, eventually there should be enough variables and rules to allow for interesting interactions. Then in the actual game things would be made more complicated by actual actions changing the variables like Steal, Kidnap, etc but the idea is still the same.
So how does this sound? And if anyone has some similar examples of rules and variables and how they interact don''t hesitate to offer.
A CRPG in development...
Need help? Well, go FAQ yourself.
"I''m gay, please convert me." - Nes8bit
Need help? Well, go FAQ yourself. "Just don't look at the hole." -- Unspoken_Magi
It''s a production system. You have the game state. And You have rules, called production rules. The production rules are triggered by the game state, and then alter the game state. Repeat.
Standard concept...
Standard concept...
_______________________________
"To understand the horse you'll find that you're going to be working on yourself. The horse will give you the answers and he will question you to see if you are sure or not."
- Ray Hunt, in Think Harmony With Horses
ALU - SHRDLU - WORDNET - CYC - SWALE - AM - CD - J.M. - K.S. | CAA - BCHA - AQHA - APHA - R.H. - T.D. | 395 - SPS - GORDIE - SCMA - R.M. - G.R. - V.C. - C.F.
"To understand the horse you'll find that you're going to be working on yourself. The horse will give you the answers and he will question you to see if you are sure or not."
- Ray Hunt, in Think Harmony With Horses
ALU - SHRDLU - WORDNET - CYC - SWALE - AM - CD - J.M. - K.S. | CAA - BCHA - AQHA - APHA - R.H. - T.D. | 395 - SPS - GORDIE - SCMA - R.M. - G.R. - V.C. - C.F.
Yeah I realize it's not original but I don't think I have seen it really applied to a story-based game. It's only been explored in a combat situation.
And I suppose I was looking to see if this would be adaquate for a wide range of options to alter the game state and not rely solely on scripting scenarios.
A CRPG in development...
Need help? Well, go FAQ yourself.
"I'm gay, please convert me." - Nes8bit
[edited by - Nazrix on March 31, 2002 12:04:40 AM]
And I suppose I was looking to see if this would be adaquate for a wide range of options to alter the game state and not rely solely on scripting scenarios.
A CRPG in development...
Need help? Well, go FAQ yourself.
"I'm gay, please convert me." - Nes8bit
[edited by - Nazrix on March 31, 2002 12:04:40 AM]
Need help? Well, go FAQ yourself. "Just don't look at the hole." -- Unspoken_Magi
With a system like that you would have to write in a lot of different rules, there are better ways of doing this involving attributes aswell. Heres a short story line example of what I was thinking.
NPC has an attribute called Fullness.
Over time lack of eating causes the NPC''s Fullness to decrease. There are also Goals in a list for the NPC, some are long term goals like maintaining an attribute aswell as medium term goals like paying wages or anything satisfying direct needs over time, finally short term goals like defending ones self from an attack.
One long term goal would be to maintain fullness. Goals also have a priority, with long term goals its decided by the necessity of the goal and the attributes current level, medium term goals would be judged by the relative necessity of the goal and the time until it must be satisfied. Anyways goals on the list are sorted by priority. The goal at the top of the list is the one being planned and solved. With this NPC intense lack of food has caused Maintaining Fullness as a goal to be shot up to the top of the list.
The NPC planning process begins with the NPC searching Action Space for actions that get closer and closer to a goal, for example an action might be the prescripted event of going to a store and buying food. Actions have results and requirements. These are used with the NPC''s attributes to determine the shortest, easiest and best course of action. The NPC then acts upon this and satisfies the need for food, in this case by eating some that was in his possesion.
NPC has an attribute called Fullness.
Over time lack of eating causes the NPC''s Fullness to decrease. There are also Goals in a list for the NPC, some are long term goals like maintaining an attribute aswell as medium term goals like paying wages or anything satisfying direct needs over time, finally short term goals like defending ones self from an attack.
One long term goal would be to maintain fullness. Goals also have a priority, with long term goals its decided by the necessity of the goal and the attributes current level, medium term goals would be judged by the relative necessity of the goal and the time until it must be satisfied. Anyways goals on the list are sorted by priority. The goal at the top of the list is the one being planned and solved. With this NPC intense lack of food has caused Maintaining Fullness as a goal to be shot up to the top of the list.
The NPC planning process begins with the NPC searching Action Space for actions that get closer and closer to a goal, for example an action might be the prescripted event of going to a store and buying food. Actions have results and requirements. These are used with the NPC''s attributes to determine the shortest, easiest and best course of action. The NPC then acts upon this and satisfies the need for food, in this case by eating some that was in his possesion.
King:
I went down that same path of thinking but realized in the end I was just altering the attributes with different rules and actions.
So, for now, just as a demo I wanted to skip all the formalities of making a bunch of actions and just get to the attributes themselves and how changing them will affect the world.
Of course for the actual game I''d do something more like what you described.
A CRPG in development...
Need help? Well, go FAQ yourself.
"I''m gay, please convert me." - Nes8bit
I went down that same path of thinking but realized in the end I was just altering the attributes with different rules and actions.
So, for now, just as a demo I wanted to skip all the formalities of making a bunch of actions and just get to the attributes themselves and how changing them will affect the world.
Of course for the actual game I''d do something more like what you described.
A CRPG in development...
Need help? Well, go FAQ yourself.
"I''m gay, please convert me." - Nes8bit
Need help? Well, go FAQ yourself. "Just don't look at the hole." -- Unspoken_Magi
It does sound like a fairly standard way to go. Maybe I''m over arbitrarally looking at things, but couldn''t you sum up every sort of game interaction in that fashion?
If a bullet''s position is the same as a person''s position, and the bullet''s set to fired, then the person''s health score is lowered.
I''m just not sure how that differers from any other game''s gameplay.
Could you enlighten me?
If a bullet''s position is the same as a person''s position, and the bullet''s set to fired, then the person''s health score is lowered.
I''m just not sure how that differers from any other game''s gameplay.
Could you enlighten me?
Thought, actually you''re exactly right. It is just the concept of extending it beyond combat gameplay to represent a whole interaction of a world rather than just attacking and things like that.
I''m not sure I''ve seen a detailed world represented this way and I wonder if the reason is that it just wouldn''t work or just that no one has tried it. Or I just don''t know of a game that took this path.
A CRPG in development...
Need help? Well, go FAQ yourself.
"I''m gay, please convert me." - Nes8bit
I''m not sure I''ve seen a detailed world represented this way and I wonder if the reason is that it just wouldn''t work or just that no one has tried it. Or I just don''t know of a game that took this path.
A CRPG in development...
Need help? Well, go FAQ yourself.
"I''m gay, please convert me." - Nes8bit
Need help? Well, go FAQ yourself. "Just don't look at the hole." -- Unspoken_Magi
Another question for you. Is what you''re implying that every change is invoked by a rule triggering a set of changes to object attributes?
I think I''m thinking too much like a coder here, but in that case it could be summed up as the difference between objects acting on objects (Bullet hitting person) and rules acting on objects (Rule checking the location and status of bullets and people). At that level it could be considered something fairly different, but it''s more of a code standpoint than a design standpoint.
Though it could be a lot of fun, if you built up an engine with a lot of actions, and statistics, and then left the rules open for change later. You could do weather effects in game based off of humidity and wind and temperature. You could call specific scenes based off of the people in a room at a time.
The more I think about it, the more potential I see. Just a matter of making a robust basis to work off of.
I think I''m thinking too much like a coder here, but in that case it could be summed up as the difference between objects acting on objects (Bullet hitting person) and rules acting on objects (Rule checking the location and status of bullets and people). At that level it could be considered something fairly different, but it''s more of a code standpoint than a design standpoint.
Though it could be a lot of fun, if you built up an engine with a lot of actions, and statistics, and then left the rules open for change later. You could do weather effects in game based off of humidity and wind and temperature. You could call specific scenes based off of the people in a room at a time.
The more I think about it, the more potential I see. Just a matter of making a robust basis to work off of.
I think it is a wonderfull system! Instead of creating simple algorithms for the NPC''s so that they wonder about, you instead create almost "Laws of Nature" that control them.
I think that you only need to feed the engine general ideas. Like "eating reduces hunger" and "using food is eating" and "bread is food" etc. etc. All you need to do then, is give every NPC the few variables that make up his mind (eat, emotion), and the "desired state". Pretty simple, and when the NPC is "hungry", he can see in the AI engine that to solve that he has to "eat", and that implies getting "bread", and bread can be found in "home" or "shop", so he goes to one of those.
I love your system!
I think the beauty of it is, when you add a console command that allows easy input of new rules... You could simply observe, see what is going on, and add new things.
It''s a great idea!
I think that you only need to feed the engine general ideas. Like "eating reduces hunger" and "using food is eating" and "bread is food" etc. etc. All you need to do then, is give every NPC the few variables that make up his mind (eat, emotion), and the "desired state". Pretty simple, and when the NPC is "hungry", he can see in the AI engine that to solve that he has to "eat", and that implies getting "bread", and bread can be found in "home" or "shop", so he goes to one of those.
I love your system!
I think the beauty of it is, when you add a console command that allows easy input of new rules... You could simply observe, see what is going on, and add new things.
It''s a great idea!
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement