Archived

This topic is now archived and is closed to further replies.

bishop_pass

Developing Protagonist-centric Subplots

Recommended Posts

In the interest of developing an entertaining game which unfolds as a unique experience each time for the player, it seems the program should have at its disposal an array of subplots which become central to the player as he plays. This is different from the two methods which predominate: one being a preconceived storyline, and the other being a world of randomized monsters. Instead, visualize a library of plot mechanisms and substories available to the program, as of yet unfleshed out. In essence, one is attempting to give a dose of literary talent to the software. I think we can all concede that the program is not going to be the next Hugo winner, but it is not talent with words I am proposing to give our program, but rather a little bit of imagination. If the program was built as a proposal system, where it could evaluate the existing scenario as it exists, and then drawing upon its arsenal of situations that it could throw at the player, it could propose a situation, flesh it out, decide if it seems appropriate, and then integrate it into the existing scenario. Hopefully, the situations would be generic enough that they would mesh well with many different genres. And of course, there could be situations which work with only certain genres. What would be some good generic situations that such a system could have in its library? As one here has so vociferously debated, a good source is to draw from existing literature, in particular science fiction for the science fiction genre. Another has quite eloquently presented the notion that existing life provides all the subtle nuances and ideas necessary to build a unique and satisfying world for a gameplayer, regardless of the target genre. Entertaining the notion, for the moment anyway, that existing literature can provide the ideas we are looking for, what can we come up with? In reflecting about books I have read, I can visualize a number of generic situations: capture and detainment, hunting or being hunted, becoming marooned, having all of one's companions die from plague or malice, deceit by a trusted friend, an encounter with a mysterious individual requesting something unusual, a stranger bearing strange gifts, and so on. Notice these are what I would call protagonist-centric subplots, as opposed to grander stories and schemes involving larger entities. The idea here is to make the experience for the player personal and unique. Edited by - bishop_pass on March 20, 2001 1:26:30 AM

Share this post


Link to post
Share on other sites
Actually, this has been a periodically recurring topic in this forum and the game design forum before this forum was created, see this thread and this thread. Also this thread is about how to storyboard such things. But we never did come up with a way to program such a thing, it seems like high time to make another attempt. Oh, and I don't think any of those threads mention it, but there's a program called erasmaganza that's also relevant.

I was digging around in the archives to see if there were any other threads relative to this and I came up with a bunch:

http://www.gamedev.net/community/forums/topic.asp?topic_id=32276 brain interface

http://www.gamedev.net/community/forums/topic.asp?topic_id=28399 parsing

http://www.gamedev.net/community/forums/topic.asp?topic_id=17118 role playing

http://www.gamedev.net/community/forums/topic.asp?topic_id=29301 roles to play

http://www.gamedev.net/community/forums/topic.asp?topic_id=38102 the skill web

http://www.gamedev.net/community/forums/topic.asp?topic_id=5380 NPC conversation

http://www.gamedev.net/community/forums/topic.asp?topic_id=11546 natural language

http://www.gamedev.net/community/forums/topic.asp?topic_id=28951 NPCs are People Too

http://www.gamedev.net/community/forums/topic.asp?topic_id=30222 sounding natural

http://www.gamedev.net/community/forums/topic.asp?topic_id=20251 intuition

Bishop_Pass: wow, I saw one of your posts from October in the AI forum; I want to know about predicate calculus and resolution theory!

Also you may want to look at the programming project that's forming up here:
http://pub58.ezboard.com/frpgsofthe21stcenturyfrm1
information is in the game design forum, recent thread about "combining ideas" or some phrase containing those words.

Man, now I'm all fired up to do a big research project - where am I gonna steal the time from for this? Maybe if I give up reading and art for a few weeks - sorry but this is way more interesting than The Stand, especially as this is directly related to my thesis.

Edited by - sunandshadow on March 20, 2001 10:27:01 PM

Share this post


Link to post
Share on other sites
quote:
Original post by sunandshadow

There is currently no agreement on how to enumerate the scripts found in literature and plot-based games, but one of the more popular and enduring systems of classification is Georges Polti’s 1868 postulation of the Thirty-Six Dramatic Situations. These follow the narrative form necessary to a script because each problem situation stated is assumed to be followed by a resolution of that problem. The thirty-six scripts are: supplication, deliverance, revenge, vengeance by family upon family, pursuit, victim of cruelty or misfortune, disaster, revolt, daring enterprise, abduction, enigma, obtaining, familial hatred, familial rivalry, murderous adultery, madness, fatal imprudence, involuntary crimes of love, kinsman kills unrecognized kinsman, self-sacrifice for an ideal, self-sacrifice for kindred, all sacrificed for passion, sacrifice of loved ones, rivalry between superior and inferior, adultery, crimes of love, discovery of dishonor of a loved one, obstacles to love, an enemy loved, ambition, conflict with a God, mistaken jealousy, faulty judgement, remorse, recovery of a lost one, loss of loved ones. While variations of separation-reunion and danger-rescue remain popular (e.g. obtaining and disaster), depravation-provision is no longer an issue, and authority, love, morality, mistakes, and sacrifice have become new basic scripts.


Okay, this voluminous excerpt from one of your other posts is starting to provide the foundation of what I am proposing here.

quote:
Original post by sunandshadow
Bishop_Pass: wow, I saw one of your posts from October in the AI forum; I want to know about predicate calculus and resolution theory!


Predicate calculus is a language which can in theory express anything which can be expressed.

Here's a typical Predicate Calculus statement:
A x,y (Father x y) -> (Parent x y)
What this would mean is: For all of x and y, if x is the father of y, then x is the parent of y. The symbol 'A' means 'for all'.

What makes predicate calculus interesting is its ability to state existential knowledge defined by the symbol 'E':
A x (InstanceOf x Animal) -> E y (Father x y) & (InstanceOf y Male)
What this says is: For all of x, if x is an instance of an animal then there exists a y which is the father of x and y is an instance of a male.

Without the ability to state existential knowledge, predicate calculus would fail. The key concept here is the ability of the knowledgebase to build and reason about entities which it has no pre-existing knowledge about. For example, I have no knowledge about your father, yet I can reason quite effectively about him; he is male, he is older than you, and so on.

Resolution theory reduces these facts and rules to a set of disjunctions which enable the resolution process to accept or reject new incoming knowledge based on whether that knowledge contradicts the existing set of knowledge. There is no distinction between a fact or a rule. If a new rule contradicts an existing fact, the new ruke is rejected. Likewise, if a new fact contradicts an existing rule, the new fact is rejected. New rules and facts are comapred against 'everything' the knowledgebase knows, not just the explictly defined rules and facts. The knowledgebase might explicitly know these rules and facts:
Bob is Timothy's father
if x is y's father, then x is y's parent
if x is y's parent, then x is y's ancestor
if x is y's ancestor, then x is older than y
if x is older then y, then y is NOT older then x

If we then try to tell the knowledgebase that Timothy is older then Bob, this will be rejected as not possible, because this fact is compared against all of the knowledgebase's IMPLICIT knowledge as well.

Unfortunately, resolution theory does not scale up very well. However, an AI package known as Soar does scale up well. It is publicly available, and I am somewhat familiar with it. I have been able to get it to essentially behave like the knowledgebase above. I also been able to get Soar to model a belief system as well. However, more research and practice is necessary to really harness Soar's potential.

I really think Soar could go a long way, if given knowledge of plot techniques. It operates via a theory of human cognition including longterm memory, working memory, and a learning mechanism. However, it is no easy thing to wrap your brain around.

quote:
Original post by sunandshadow
Also you may want to look at the programming project that's forming up here:
http://pub58.ezboard.com/frpgsofthe21stcenturyfrm1
information is in the game design forum, recent thread about "combining ideas" or some phrase containing those words.


Yeah, I'm signed up for that.



Edited by - bishop_pass on March 21, 2001 1:09:01 AM

Edited by - bishop_pass on March 21, 2001 10:44:56 AM

Share this post


Link to post
Share on other sites
brain interface

parsing

role playing

roles to play

the skill web

NPC conversation

natural language

NPCs are People Too

sounding natural

intuition

I just thought I'd make them links for easier reference

BTW, bishop, that really sounds great.



Need help? Well, go FAQ yourself.
What a plight we who try to make a story-based game have...writers of conventional media have words, we have but binary numbers



Edited by - Nazrix on March 21, 2001 9:57:23 AM

Share this post


Link to post
Share on other sites
Okay, I guess I did know what predicate calculus was, I just didn''t know the term for it. I checked out the UMich SOAR download page, but they don''t seem to have a windows version, and I''ve never been able to install Linux on my box due to driver conflicts (really old minitor, pretty new graphics card, big hard drive). Is there a version somewhere I don''t know about, or do I have to beg someone to take another stab at installing a Linux for me?

Share this post


Link to post
Share on other sites
quote:
Original post by sunandshadow

Okay, I guess I did know what predicate calculus was, I just didn''t know the term for it. I checked out the UMich SOAR download page, but they don''t seem to have a windows version, and I''ve never been able to install Linux on my box due to driver conflicts (really old minitor, pretty new graphics card, big hard drive). Is there a version somewhere I don''t know about, or do I have to beg someone to take another stab at installing a Linux for me?


There is a Windows version. You do not need Linux. There''s everything you need. However, you will be overwhelmed. But I would truly enjoy talking to someone else about this program and its potential. I don''t have the links because I am at a friend''s house right now.

When I get home, I''ll post the links and more info. I also nominated it as concept project over at RPG games of the 21st century.

Soar is fascinating, and embodies many cool concepts. It just takes really understanding its thinking mechanism and how knowledge inter-relates and triggers new thoughts.

Share this post


Link to post
Share on other sites
Okay, I''m not home yet, but here''s the two most important links to start:

Soar Home Page

Download Page

Some of the demos are kind of silly, and really don''t show the potential. The military, for one, has done some really serious stuff with Soar. Also, when you start looking at knowledge representation in general, and see how Soar organizes knowledge as linked augmentations and see how you can encode attributes with their own links, and see how Soar automatically mangages removal of knowledge that has lost support, that is when you can see how it can be applied to lots of things.

Share this post


Link to post
Share on other sites