Advertisement

Creating a free form experience...character interaction...

Started by November 19, 2003 05:49 PM
13 comments, last by Ivyn 21 years ago
Lately I''ve been dwelling on the prospect of a free form game. I''ll explain what I mean. First of all, I use the term ''game'' lightly for lack of anything better. Maybe I should say ''interactive experience''. Reading through the two recent threads started by bishop_pass -- the ones about generating character histories and a program to fabricate and articulate a plausible interlude -- have been very enjoyable for me and helped boost my excitement about the prospects for this project. Almost all of the aspects discussed within those threads are of some relevance here. It''s a sweet coincidence that we both be contemplating rather similar ideas at the same time. Or the grace of God. One thing I did not see discussed, which is one of the pinnacles of my idea, is character interaction. I''ll get to that later, let me begin with quickly over viewing the overall product... It will be a mostly text-driven game -- I think this will allow for more focus on the game dynamics and for a bigger, deeper world featuring a plethora of distinct objects, characters, creatures...etc. without worrying about too much graphical representation. No saying where this could possibly be taken in the future, but anyway... You take on the role of a character, this character could be customized or generated, that isn''t very relevant ATM. From here you are in complete control of the way you play your character. You are free to go where you wish; build relationships with whomever you wish, and become what you want. Unlike most typical games, you will not be forced to complete pre-set quests nor does making a mishap mean reloading. There are going to be foils to your character, roadblocks along the way, people who will try to hinder you and vice-versa. It is your aims and ambitions that will make the story. Persisting through your mistakes is what makes it so interesting and unpredictable. Furthermore, instead of a world full of static, pre-scripted NPCs, each person is well rounded with a personality, memories (On a technical level I would assume that there is only so much data that can be stored for each individual character. I''d like to get your thoughts on this as well.) and they each make decisions just like real people based on many factors such as past experiences, influences, morals, way of life...etc. These NPCs are generated by the computer based on a library of ''possibilities''. I should stress that everything pertaining to the world will be specified by us (humans) and not generated by the computer. I guess you could say what we are doing is basically training the computer to take what we teach it and create something with it. It gets complex because each NPC has a history, relationships with other NPCs and as time passes they each make decisions that effect their future and those around them. Now for interaction, we obviously need some kind of communication between the user and NPCs. Simply choosing sentences from a list is not going to work. I propose a typed system where you can type something to the characters, much like chatting and they can recognize keywords, understand their meaning and respond to them. Another interesting prospect, and perhaps unavoidable, is NPCs chatting with each other, in front of the user. I know intelligent simulations that allow you to talk to a computerized agent are constantly being researched and some already exist. To the best of my knowledge, such as thing has never been attempted in a game. Tell me if I’m wrong. Also, I’d be happy to see any information pertaining to this issue if anybody knows of any links. I think I''ll stop here and ask for your thoughts on the idea so far. I know it’s a very long post I just hope I’ve given a good enough description to put an image in your minds of what I am proposing. Please post your thoughts, suggestions…etc. Do you think it would be possible or make for an enjoyable playing experience? Any tips on how you would go about creating such a thing? Any links to information on something similar? -- Ivyn --
-- Ivyn --
I think to making it enjoyable would likely take you closer to The Sims route. Specifically, the player would need to to know what they were accomplishing, and why people reacted the way they did. The Sims had several layers of feedback and stats to accomplish this.

While I agree that this is a noble untertaking, I would suggest tackling a smaller domain first. Pick a subset... such as a dinner party try to simulate it. Focus on all of the events and relationships that happen there, perhaps starting out with a set of actions, cause and effect chains, etc -- not to drive your app, but to explore the possibility space and to make sure it is something that seems reasonable to tackle.
Advertisement
try to find about a text game called galatea, there is no npc/npc interaction but they are gone far

i myself do something like you tell, but for convenient purpose i have let the character interact trough action only (as a language) with the player while they chat between them (typing bother me a lot a phrase building as well, mostly becuase my native language (french) is not the less complicated, good for art and bureaucratic but bad for programmation, too many exception and wacky rule)

then i have worked on a simulation of npc with emotion and appraisal of other

>>>>>>>>>>>>>>>
be good
be evil
but do it WELL
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>be goodbe evilbut do it WELL>>>>>>>>>>>>>>>
I really like your train of thought and I hope to comment and discuss it with you further when I am allowed more time tomorrow or so.

I think you would also be interested in this thread. (I''m not saying it''s the answer but more of another interesting read to get those creative juices flowing. That aside, I also agree that you may want to experiment with a smaller domain, whether it be the dinner party or even one of the two specific domains bishop outlined rather well in his threads. I''d be interested to see where you get wherever you go.

Also, you may want to check out this thread (at least the second half) in which he gave me a few good book recommendations. I''ve read 2 of the 5 I bought from his responses to me and I must say some would definitely interest you. Cheers and good luck with your endeavor.
I''m doing something similar, so similar that there is room to share common code(if anyone, including myself, is so inclined to share).

quote: I should stress that everything pertaining to the world will be specified by us (humans) and not generated by the computer. I guess you could say what we are doing is basically training the computer to take what we teach it and create something with it.

Could you clarify this? If the game is to allow such a free style of play, what are we to specify?
Sorry, I probably didn't word that very well.

I was referring to things like the world setting and the base objects/creatures that make it up. We can't rely on the computer to come up with these things for us. I was thinking in terms of building a database of all the possible 'objects' and their possible interactions.

Even when we consider the character generator, wouldn't we need to specify a template with all the properties that make up a person, both behavioral and physical? As well as create a list of possibilities; whether the person is timid or brash, tall or skinny, has long shiny hair, is beautiful.. rugged... These can be random or based on several influential factors.

Perhaps an old man carries a deep gash across his face from an encounter with a knife weilding jackass when he was younger. For the program to create this instance, let's say somewhere in our database we have a knife object. We have to specify the effects of the object interacting with other objects like inflicting damage. A knife can be used to carve a piece of wood, slice a steak, or in this scenario as an assault weapon.

That's how I figured it anyway. :D
You said you were working on a similar project, have far have you come along? I'm interested to know more about that and how you've dealt with some of these issues. And what programming language are you using?

-- Ivyn --

[edited by - Ivyn on November 20, 2003 4:19:13 PM]
-- Ivyn --
Advertisement
Good suggestion BrianL . I most likey will start with a 'smaller domain' once I actually get down and begin putting some of this into works.
Right now I'm just looking for some more information, suggestions, and to see if anyone else was attempting something similar.

So far the replies have been quite helpful. Neoshaman , I would very much like to see some of your work if you don't mind.
Those threads were also helpful kordova , I will definitely look into getting my hands on some of the books by Roger Schank.

-- Ivyn --

[edited by - Ivyn on November 20, 2003 4:15:56 PM]
-- Ivyn --
quote: Original post by Ivyn
Even when we consider the character generator, wouldn''t we need to specify a template with all the properties that make up a person, both behavioral and physical? As well as create a list of possibilities; whether the person is timid or brash, tall or skinny, has long shiny hair, is beautiful.. rugged... These can be random or based on several influential factors.

Perhaps an old man carries a deep gash across his face from an encounter with a knife weilding jackass when he was younger. For the program to create this instance, let''s say somewhere in our database we have a knife object. We have to specify the effects of the object interacting with other objects like inflicting damage. A knife can be used to carve a piece of wood, slice a steak, or in this scenario as an assault weapon.

That to some extent defines what/the capabilities of the system I was working with in the Using Lisp... thread, of which I''m going to be working with more shortly.

quote: Original post by Ivyn
You said you were working on a similar project, have far have you come along? I''m interested to know more about that and how you''ve dealt with some of these issues. And what programming language are you using?

I know that that wasn''t aimed my way but I''m obviously using Lisp for my own, though I''m also sort of writing a Lisp interpreter so that I could realistically tie it in to C++ as I''m much more comfortable in that language. Realistically though, I''d like to hone my general Lisp skills more so that''ll probably be on the backburner for a while. I''ll probably add more to this thread later once I get past school junk tomorrow.
Interesting how there are two threads here that both link to each other. Anyways, while I love the concept of a world that open, what kind of gameplay does it lead to? If it simulates everything, does it play like real life? Eat, sleep, work, talk, and have a little fun? If you can go around and do anything, what actually happens? Never minding any difficulties in implementation, what happens beyond a social simulator? If I want a social simulator, I can go talk to my friends.

Please don''t take this in at all the wrong way. I''m not bashing the idea, in fact I think it''s great and I''ve though about it a fair bit. I''ve never really thought about it in such a large scope and I''m wondering where you see it leading.

tj963
tj963
all IM Extremely HO - I''ll remove the E when I get a degree.

quote: Original post by Ivyn
Sorry, I probably didn''t word that very well.

I was referring to things like the world setting and the base objects/creatures that make it up. We can''t rely on the computer to come up with these things for us. I was thinking in terms of building a database of all the possible ''objects'' and their possible interactions.

Even when we consider the character generator, wouldn''t we need to specify a template with all the properties that make up a person, both behavioral and physical? As well as create a list of possibilities; whether the person is timid or brash, tall or skinny, has long shiny hair, is beautiful.. rugged... These can be random or based on several influential factors.

Perhaps an old man carries a deep gash across his face from an encounter with a knife weilding jackass when he was younger. For the program to create this instance, let''s say somewhere in our database we have a knife object. We have to specify the effects of the object interacting with other objects like inflicting damage. A knife can be used to carve a piece of wood, slice a steak, or in this scenario as an assault weapon.

That''s how I figured it anyway. :D
You said you were working on a similar project, have far have you come along? I''m interested to know more about that and how you''ve dealt with some of these issues. And what programming language are you using?

-- Ivyn --

[edited by - Ivyn on November 20, 2003 4:19:13 PM]

That''s how I figured it, yeah, although I also have the job of coming up with a way to modify an object''s mesh cause mine is an action-RPG. I probably should start with text-only. The other systems will be hopefully be games on their own before integration.

My method of dealing with objects and interaction is to simulate them physically as much as possible. For instance, while I have seen posts about similar object systems, I can only remember about seeing some that went about it by listing everything that object can do. This may have been presented already but my idea is that the ''cut'' and ''stab'' function would be attached to a knife object as well as the polygons which do this effect. Every other object includes things that would determine if it can be cut, like hardness.

While the computer won''t create all the things, I would hope that such a game world will allow the creation for entirely new items.

My method, any method, of building such a mind, however, is too long to go into in a post. All I can say is read. Now then, what to read? As far as implementing a system goes, read programming books, including those on programming an AI. To create the system is the hard part, any programmer can implement it afterward, if poorly. I think you should read psychology. I think the focus is on simulating a mind, not any particular process within it.

The processes which are key, however, I think are:
1) personality/belief change over time in a realistic fashion - otherwise characters and situations become static, boring, and ''stiff''
2) deep seated fears and other emotions and experiences which produce quirks and affect decisions - see my thread called ''like little action figures'' in ''Game Design'' for a good example of what I mean - or like how stereotypes get started(cause they''re sometimes true) - or, and I can''t believe I finally have an excuse to tell these stories
a)in a class at community college, there was a woman in her late 20s, early 30s who wanted to become a teacher; I correctly guessed that she didn''t have children
b)in another class I met a guy who had never had rice pudding, now I correctly guessed something about him, but I think it''ll be a better demonstration of what I''m talking about if everyone tries to guess(he was not allergic)

Here''s why #2 is so important and why an obvious feature in a *text-driven* social simulator has been left out of my key processes. We absolutely need language processing, so why did I not list it? Because language is subtle. I call #2, "revealing emotions", cause it will be hard for you and even harder for me(cause I have polygonal characters) to show character emotion in a naturally recognized manner(thank god for emoticons and Japanese animation). Also, for my connotation, ''showing'' an emotion is visual, while ''revealing'' an emotion could be visual but could also be done by the *decisions* made by a character. Back on my topic, I think the key to really having characters come alive is to make sure that characters speak differently.

See, I could just throw in random synonyms to make sure the player doesn''t get tired of seeing the same thing over and over. I could limit the synonyms a character uses to make them seem more real, but that doesn''t tell me anything about the speaker''s personality. After all, having NPCs with complex and deep personalities does us little good if the player is unable to discover them.

quote: Original post by tj963
Interesting how there are two threads here that both link to each other. Anyways, while I love the concept of a world that open, what kind of gameplay does it lead to? If it simulates everything, does it play like real life? Eat, sleep, work, talk, and have a little fun? If you can go around and do anything, what actually happens? Never minding any difficulties in implementation, what happens beyond a social simulator? If I want a social simulator, I can go talk to my friends.

Please don''t take this in at all the wrong way. I''m not bashing the idea, in fact I think it''s great and I''ve though about it a fair bit. I''ve never really thought about it in such a large scope and I''m wondering where you see it leading.

tj963


The difference for me is that there''s a goal, cause I''m making a game. As far as RL goes, I figure just automate anything that isn''t interesting(like mine is an RPG so traveling takes place automatically unless you get set upon by bandits or find something shiny).

This topic is closed to new replies.

Advertisement