Archived

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

bishop_pass

A program to fabricate and articulate a plausible interlude

Recommended Posts

Remember the other recent Lisp thread I started? I was thinking about that thread, and the thread I started in Game Design called 'Clean Slate' as well as the idea of Situation Creators (yet another thread) and I'm beginning to think that an excellent component of a game would be for a program to fabricate a small story as to what your character has done since you last played him, and give reasons as to why he is now in the situation that he is in. Basically, you play your character in realtime, doing something interesting or visceral or enlightening or engaging in suspensful activity, whatever, and then you stop playing for the night, assuming whatever you've done is basically done. You play again later, and the game has immersed your character into a new situation, possibly days later, maybe a month later, or thereabouts. Presumably, the game has generated an interesting situation once again for your character, and has taken into account your past, digging up old skeletons from your cloest. Now, the program must articulate or narrate the background to place you within the context of your new situation. This is similar to the other thread I created, where I suggested a program could manufacture fictional histories. So, imagine a one paragraph describing what has transpired for the last three days, or month, or whatever. [edited by - bishop_pass on October 21, 2003 12:52:04 AM]

Share this post


Link to post
Share on other sites
Seriously that''s a cool idea though. Imagine you''re mountain climbing and you suddenly have to leave the game. You come back, and your character is hanging about to fall to his death! Fascinating. However, I''d be a little pissed if it said:

"Sorry, your character died while you were away. Have a nice day!"

Share this post


Link to post
Share on other sites
This idea gave me an idea for a game:

How about a game where your character lived an unhappy, horrible life, and died in some bad way. Now you are that guy, and you have been given the option to re-live some sections of your life. Basically the interface would be a "Lifeline" where you click to Time Travel into that point of your life. Then you change history, so to speak, and see what ramifications it has down the line. You win when you have changed your life into a good life.

This gives rise to interesting scenarios such as:
Your character once got robbed at gunpoint. You must replay that section of your life, avoiding the robber!

Share this post


Link to post
Share on other sites
No, I didn''t suggest that.

The program won''t move forward in time until your current episode is over with. If it is the case that you are amidst something intense, the game is saved at that moment.

Realtime, in this sense, only means that one second in gametime equals one second in realtime.

The point here, is for the program to narrate for you what your character has done between episodes, because, frankly, most computer RPG games suck, are childish, and want you to do boring mundane things, when in fact, a character should only be played during fascinating or life changing portions of his life, and all other moments should just be fabricated narrative, sort of like weekly serial TV episodes, where upon the start of a new episode, the narrator tells us how things have allowed the protagonist to now be where he is.

Share this post


Link to post
Share on other sites
Are you replying to this?

"Maybe if you don''t like what your character did, you could choose to play that section of his life?"

Well, I see what you mean now. So the "automatic player" would only come into action during the boring parts, while today''s RPGs force you to do the boring stuff like killing monsters and walking around. Now what kind of important life events do you have in mind? This is probably the hardest part.

Share this post


Link to post
Share on other sites
quote:
Original post by Tron3k
Are you replying to this?
No. I''m replying to your remark about the climber.
quote:

Well, I see what you mean now. So the "automatic player" would only come into action during the boring parts, while today''s RPGs force you to do the boring stuff like killing monsters and walking around. Now what kind of important life events do you have in mind? This is probably the hardest part.
Dude, the point is to play intense, fun things. Let''s imagine a Western. Some sessions might play like this:
  • Episode: Poker game at a bar, followed by a brawl, in which you accidentally kill someone.
  • Episode: Three days later, you find yourself hiding behind a large rock on the roadside, and a stagecoach approaches. Play it as you will. Let''s say you successfully rob the stagecoach.
  • Episode: A month later, you find yourself in another town, and the brother of the guy you killed in that brawl finds you. A fight ensues, and the jailer locks you up.
  • Episode: Two days later, you''re still in jail, the game lets you play, and you escape, running off into the hills.
  • Episode: A week later, you''re in another town, and while you''re bartering with a guy for a horse, you get wind that the brother of the guy you killed is in town and looking for you. A little bit of cat and mouse happens, and a showdown happens.


The point is, the program lets your character age with time, therefore letting a saga unfold, which is not really possible if you must play every damned minute of your character''s life, because a true story should take some time. So, it''s the program''s mission to setup the new situation and context for each episode, drawing on the events from the prior episodes, and then provide the introduction (narration) to clue you in on what transpired for the last few days or month or so.

Share this post


Link to post
Share on other sites
typedef struct{
str m_date[12];
str message[500];
str m_time[12];
}stuff;

stuff suff_list[max_stuff];

void fill_structure_with_random_stuff()
{
//manually add all the strings here.
}

void print_random_background()
{
int x,yz;
x=rand()%max_stuff;
y=rand()%max_stuff;
z=rand()%max_stuff;
sprintf("On %s, at %s you %s",suff_list[x]m_date,suff_list[y].m_time,suff_list[z].message);

}


Height Map Editor | Eternal Lands | Fast User Directory

Share this post


Link to post
Share on other sites
quote:
Original post by Raduprv
typedef struct{
str m_date[12];
str message[500];
str m_time[12];
}stuff;

stuff suff_list[max_stuff];

void fill_structure_with_random_stuff()
{
//manually add all the strings here.
}

void print_random_background()
{
int x,yz;
x=rand()%max_stuff;
y=rand()%max_stuff;
z=rand()%max_stuff;
sprintf("On %s, at %s you %s",suff_list[x]m_date,suff_list[y].m_time,suff_list[z].message);

}

No, I really don't think that's indicative of much of anything with regard to this topic.

[edited by - bishop_pass on October 12, 2003 3:17:34 PM]

Share this post


Link to post
Share on other sites
This would be really cool. You could build real epic games that play differently every time. You could have a certain set of events of which some may or not be triggered to be included in any of the interludes dependant on a players previous actions/events triggered. In addition, you could use the players actions to build various subplots. For example, in an rpg (of any genre) you may want the character to have/make an arch-nemesis, but which npc that is isn''t decided at game design time, rather the mechanics for deciding which npc to build more deeply into the plot in this manner are dependant on the players actions. You get a kind of ''choose your own adventure'' (remember those?), only the player doesn''t know when the choices are made or how.

peace and (trance) out

Mage

Share this post


Link to post
Share on other sites
Not only did he not ask how one would implement such a thing, but it would most certainly be more involved than that pile of crap.

On topic, how is it decided when and what is interesting? Are you only able to exit the game at the end of an episode? I know only time spent playing is realtime, but does the time between sessions of play have any impact on how much time has passed in the game? Could I take a five minute break and find a year has passed? What happens if I wish to continue playing after completing an episode, does it break the realtime "rule" and just skip forward to something new? Or can I only access new situations by terminating the game for a certain time.

I think a persistant single player game could be interesting as well, though one would have to be certain nothing of too much importance happened while you were gone.



[My site|SGI STL|Bjarne FAQ|C++ FAQ Lite|MSDN|Jargon]
Ripped off from various people

[edited by - wild_pointer on October 11, 2003 12:00:16 AM]

Share this post


Link to post
Share on other sites
quote:
Original post by wild_pointer
Are you only able to exit the game at the end of an episode?
No, I don't think that restriction is necessary.
quote:

I know only time spent playing is realtime, but does the time between sessions of play have any impact on how much time has passed in the game? Could I take a five minute break and find a year has passed?
Time spent not playing should not have an effect on the quantity of gametime which elapses.
quote:

What happens if I wish to continue playing after completing an episode, does it break the realtime "rule" and just skip forward to something new? Or can I only access new situations by terminating the game for a certain time.
Kind of a tough question - but I would be inclined to think that as long as you play, the realtime rule is in effect.

[edited by - bishop_pass on October 12, 2003 2:46:14 PM]

Share this post


Link to post
Share on other sites
quote:
Original post by bishop_pass
Kind of a tough question - but I would be inclined to think that as long as you play, the realtime rule is in effect.



But then you''d get to a boring part, and you''d have to turn your game system off and on to skip to the next interesting part. Also, wouldn''t this work just as well with a human-generated storyline?

Share this post


Link to post
Share on other sites
quote:
Original post by cowsarenotevil
quote:
Original post by bishop_pass
Kind of a tough question - but I would be inclined to think that as long as you play, the realtime rule is in effect.



But then you''d get to a boring part, and you''d have to turn your game system off and on to skip to the next interesting part. Also, wouldn''t this work just as well with a human-generated storyline?

Requiring someone at the other end to constantly generate something for you doesn''t seem very wise an aspect of a game, not to mention that that person would most likely be effected by things they may have seen during that specific day etc. which may be detrimental to play.

Share this post


Link to post
Share on other sites
Actually, I have this graduate CS course titled "Knowledge representation and reasoning", and this seems very similar to the kind of stuff that I have to do for the reasoning part. Except that we code in prolog.

Remember 2 years ago when I was just getting started with programming AI in prolog and I couldn''t do tree pruning and posted here? Well, I''ve mastered that art now ^_^

Share this post


Link to post
Share on other sites
Well if you got to an end of an episode you''d get a screen going, "Congradulations you''ve finished episode: blah, do you wish to continue or save?" or something like that.

I think this sounds like a really good idea, though getting computer generated story lines may be rather hard (I know there''s AI research going on about computer generate story lines atm, I''m sure google will turn up someting).

Share this post


Link to post
Share on other sites
quote:
Original post by Raduprv
On a serious note, I was thinking of doing something like that, for the quests in my game (random quests). Then I realised that the quality of computer generated quests doesn''t even coem close to real, human generated quests, so I gave up.
Given the implementation you proposed, I could see how you would believe that. I think one of the goals here is to explore an implementation, but I think the requirement for doing so is to look at the other thread I created about fictional character histories. By creating a custom fiction generator for each type of genre (or specific game) and taking heed of knowledge and symbolic methods as well as looking at AI scripts promoted by Roger Schank (not the scripting techniques used in game programming, which are an entirely different thing altogether), one could come up with an effective generator which could improve with each revision through simple addition.

Share this post


Link to post
Share on other sites
quote:
Original post by cowsarenotevil
quote:
Original post by bishop_pass
Kind of a tough question - but I would be inclined to think that as long as you play, the realtime rule is in effect.



But then you''d get to a boring part, and you''d have to turn your game system off and on to skip to the next interesting part. Also, wouldn''t this work just as well with a human-generated storyline?
I''ve been a longtime proponent of a game intelligent enough to know what a lull is, and to generate something intense to happen. There are all kinds of intense things that a program can have waiting in the wings to throw at you, such as being mugged, a brawl breaking out (even if you''re a spectator), betting opportunities, something interesting to discover, etc. But before you get a preconceived notion of what I''m talking about, you''d have to learn about my ideas of Situation Creators, knowledge representation, etc., unless you already believe in what I''m saying.

Share this post


Link to post
Share on other sites