Issues with your account? Bug us in the Discord!

B5:ITF Dynamic Campaign

1235711

Comments

  • RandyRandy Master Storyteller
    When they're off-stage they don't need AI all of the time. Their AI could be turned off and on by the drama machine, as needed.

    For instance, say X's last motivation was to walk to the store. Once the AI has created this motivation and X is walking to the store, the AI can be shut off. Making X move from point A to point B isn't expensive in overhead. It's just x,y,z coordinates programmed to follow a path. This NPC's AI won't have to be switched on again until the drama machine decides to set it up for it's next appearance on stage, or as a reaction to some change in the environment, etc., after which it can be switched off again until needed.

    I like to go back to real-life situations to help figure things like this out. How many of us switch our brains to neutral when we're simply walking down a sidewalk to someplace we've been to a thousand times before? Not much need for AI during the walk.
  • BigglesBiggles <font color=#AAFFAA>The Man Without a Face</font>
    I think I see your point. But would the drama-engine controlled people work? Just out of curiosity...
    How is it usually done?

    ------------------
    [b][url="http://www.minbari.co.uk/log12.2263/"]Required reading[/url][/b]
    Never eat anything bigger than your own head.
    The Balance provides. The Balance protects.

    "Nonono...Is not [i]Great[/i] Machine. Is...[i]Not[/i]-so-Great Machine. It make good snow cone though." - Zathras
  • RandyRandy Master Storyteller
    If there was a "usually", we wouldn't be having our epic dialogue. [img]http://216.15.145.59/mainforums/smile.gif[/img]

    AFAIK we're charting new territory.

    I would approach it like a hierarchy. The “drama engine” is like a director whose job it is to manage, on the macro level, the development of the dramatic situation.

    Part of this director’s job is to decide when to tell players what to do, and when to let players improvise.

    If the dramatic situation calls for a specific character to do a specific thing, then the director says “Do this” – and that’s what happens.

    But the director may also say to the actor “This is what I want to happen. But you decide how to do it.” In this case the character takes direction on a macro level, but the character’s own AI decides how to get the job done.

    Or the director may say, “I think that given X parameters you should just improvise”. In this case the AI for the specific character is on it’s own, and can do can whatever it can, given that character’s overall goal, abilities, daily schedule, and other real-time parameters given by the director.

    So the drama engine doesn’t run AI’s for each character. Instead it manages a group of AI’s, deciding when to move them around while not engaging the AI, or give them direction and let the AI decide how to do it, or just let the AI loose, given parameters within which to act.

    The joy of this idea is that the drama engine can give a character minimum direction, and then move on to another chore, while the AI for the character does it's own thing, given its parameters.

    This frees up the drama engine, but of course, going further up the hierarchy, there is a game engine that must decide how to manage giving CPU time to the various lower hierarchy engines that are clamoring for computing time.

    A simplified look at the hierarchy would be:

    Game engine - drama engine - character AI's, plus various input and feedback loops.

    Easier said than done, of course, and I'm no programmer. It's just a strategy for building the engine. I my mind, at least, it seems like programming can benefit from a clear hierarchal structure already outlined, before beginning the actual programming, even if the structure has to be changed along the way. At least, my limited understanding of object oriented programmer, makes this so to me.




    [This message has been edited by Randy (edited 10-22-2001).]
  • GrantNZGrantNZ Earthforce Officer
    [quote]One big problem has just occured to me now: How to implement this game world, which seems to require a large number of NPCs, on a current computer? That would be far far too much AI going at once. Maybe most of the NPCs would not have their own AI, but would instead be controlled almost directly by the drama engine. Only key NPCs would then have their own AI, and would just be given goals by the drama engine. Then their AI would take over to achieve those goals.[/quote]

    Randy answered this perfectly. I'll just add that most AI is really rather fast to compute. Slow AI generally occurs when there's a huge space to search, such as in pathfinding. A trained NN or GA doesn't take that long to evaluate. (Training, on the other hand, can take ages.)

    [quote]I like to go back to real-life situations to help figure things like this out. How many of us switch our brains to neutral when we're simply walking down a sidewalk to someplace we've been to a thousand times before? Not much need for AI during the walk.[/quote]

    Hmm. Some people think I have artificial intelligence all the time. [img]http://216.15.145.59/mainforums/wink.gif[/img]

    [quote]But would the drama-engine controlled people work?[/quote]

    Again answered well by Randy.

    My drama engine will probably be implemented by directly adjusting NPCs. (Either changing their attributes or forcing a certain plan on them. In horribly scripted cases the engine could use the NPC as a puppet. Remember how we talked about having input as a module so that it could be performed by either the player or the AI? Let the drama perform it too - instant puppet.)

    [quote]How is it usually done?[/quote]

    Cut scenes. Scripted dialogue, possibly branching. Cheating (e.g. making an entity invulnerable to ensure it remains in the game world for later dramatic scenes). i.e. Entirely non-interactively. [img]http://216.15.145.59/mainforums/frown.gif[/img]

    [quote]...and I'm no programmer.[/quote]

    What are you then? [img]http://216.15.145.59/mainforums/smile.gif[/img] Ahh: Designer/ Writer/Director/Video DP. (DP?) [i]*Grant learns to read profiles.*[/i]
  • RandyRandy Master Storyteller
    DP = Director of Photography - or in my case, mostly videography. [img]http://216.15.145.59/mainforums/smile.gif[/img]

    ...and freshman student of Java, gopher herder, friend of the greatest cat in the world and, of course, cosmic warrior. [img]http://216.15.145.59/mainforums/biggrin.gif[/img]


    [This message has been edited by Randy (edited 10-23-2001).]
  • BigglesBiggles <font color=#AAFFAA>The Man Without a Face</font>
    You forgot Hero to over 2000 people. [img]http://216.15.145.59/mainforums/smile.gif[/img]

    [quote]If there was a "usually", we wouldn't be having our epic dialogue.[/quote]

    Point. [img]http://216.15.145.59/mainforums/smile.gif[/img]

    [quote]I would approach it like a hierarchy. The “drama engine” is like a director whose job it is to manage, on the macro level, the development of the dramatic situation.[/quote]

    That is indeed a good answer and makes perfect sense. I suppose that way you would be able to decide just how much of the action gets controlled at each point in time, and how much freedom different characters have. For example, if the player is walking through a village center and the engine wants to push them to one side or another (yes I know we've had this example, but it is a good place to demonstrate things), it could take control of someone in the village who was part of one faction, say for example the Bad GuysTM, and have him/her do something like attack the player or attack someone in the village who was part of the opposite side. Or it could tell that character to achieve that goal in the vicinity of the player and let the character go at it. Etc.

    [quote]My drama engine will probably be implemented by directly adjusting NPCs. (Either changing their attributes or forcing a certain plan on them. In horribly scripted cases the engine could use the NPC as a puppet. Remember how we talked about having input as a module so that it could be performed by either the player or the AI? Let the drama perform it too - instant puppet.)[/quote]

    I can see that Randy's heirarchical model would implement that very easily. The drama engine would simply tell the character that they have to perform these specific actions with no freewill, switching off the character's AI.

    [quote]Cut scenes. Scripted dialogue, possibly branching. Cheating (e.g. making an entity invulnerable to ensure it remains in the game world for later dramatic scenes). i.e. Entirely non-interactively.[/quote]

    I actually meant how are the random people in a game world controlled. Think Baldur's Gate: There are people all over the place who do no more than perform a daily task and respond in some way when you say hello to them. How would they fit into a drama engine? In the simple method they would have their own AI which quite simply gives a response when you say hello. But that would provide for a rather lifeless game world. It would be like living in a world of statues. Given that a game world is going to be quite large (personally, I would like to have the entire world as one level, but I'm not sure computers could handle that), there are going to be thousands of people spread over the world. That's a lot of statues.
    Now we can assume that all major characters in the game are going to be continually performing, no matter where the player is in the world at that point in time. This means there will be things like a legion of Bad GuyTM troops attacking a village and killing everyone in it on the other side of the world to the player's current position. The player would hear about it a week later through rumours and news. But that means that all characters, even non-major ones, would have to be active all the time in order to respond to events happening in the world. That's a lot of AI.
    I get the feeling that none of that made sense. Oh well. Comments anyway...

    ------------------
    [b][url="http://www.minbari.co.uk/log12.2263/"]Required reading[/url][/b]
    Never eat anything bigger than your own head.
    The Balance provides. The Balance protects.

    "Nonono...Is not [i]Great[/i] Machine. Is...[i]Not[/i]-so-Great Machine. It make good snow cone though." - Zathras

    [This message has been edited by Biggles (edited 10-23-2001).]
  • Drazi GuyDrazi Guy Elite Ranger
    Excuse me for butting in to a conversation about something I have absolutely no experience in, but I had a thought [img]http://216.15.145.59/mainforums/smile.gif[/img]

    Biggles, in response to that whole village attack thing, the AI wouldn't necessarily need to run all the time. The system could just do something like set a timer as to how long news would take to filter to each city/village at the time of an attack or other newsworthy event, and not calculate that city's people's responses until such time as they would actually know about it. So it wouldn't be something running in the background, just a time based trigger.

    As for making all the thousands of NPC's interesting, if you think of real life that is a bit of a moot point. Anyone you walk up to randomly on the street and start chatting with is very likely to give you a strange look and try to walk away. So any NPC you just randomly walk up to should have the same type of responses.

    However, you could integrate something where if you were to keep trying to talk to certain NPC's, they start building up personality routines and get more interesting to talk to as you know them better, same as in real life [img]http://216.15.145.59/mainforums/smile.gif[/img]

    That's my pearl of wisdom...

    ------------------
    One ring to rule them all, one ring to find them.
    One ring to bring them all, and in the darkness bind them.
  • BigglesBiggles <font color=#AAFFAA>The Man Without a Face</font>
    That's true. Some kind of dynamic AI which would build up with more interested shown in the character by the person. Then most of the characters could start at the basic level, maybe with a few key things to say like rumours to spread. If the player begins to show more interest in a character it would build up more AI and respond better until the point where it can join the player in their quest.

    ------------------
    [b][url="http://www.minbari.co.uk/log12.2263/"]Required reading[/url][/b]
    Never eat anything bigger than your own head.
    The Balance provides. The Balance protects.

    "Nonono...Is not [i]Great[/i] Machine. Is...[i]Not[/i]-so-Great Machine. It make good snow cone though." - Zathras
  • Look what you did when I was gone! [img]http://216.15.145.59/mainforums/mad.gif[/img] It's going to take me another week just to catch up on this thread!

    [img]http://216.15.145.59/mainforums/wink.gif[/img]
  • JackNJackN <font color=#99FF99>Lightwave Alien</font>
    No it's not John...

    [img]http://216.15.145.59/mainforums/wink.gif[/img]

    Just start from here...

    heh heh

    [img]http://216.15.145.59/mainforums/biggrin.gif[/img]
  • RandyRandy Master Storyteller
    [quote]Originally posted by Biggles:
    [b]You forgot Hero to over 2000 people. [img]http://216.15.145.59/mainforums/smile.gif[/img]


    [/b][/quote]

    [img]http://216.15.145.59/mainforums/redface.gif[/img] You may want to be more discerning about who you choose for heroes. [img]http://216.15.145.59/mainforums/smile.gif[/img]
  • GrantNZGrantNZ Earthforce Officer
    [quote]DP = Director of Photography - or in my case, mostly videography.[/quote]

    Ohh, nifty. [img]http://216.15.145.59/mainforums/smile.gif[/img]

    [quote]Think Baldur's Gate: There are people all over the place who do no more than perform a daily task and respond in some way when you say hello to them.[/quote]

    Most of them don't even have a daily task.

    [quote]How would they fit into a drama engine? In the simple method they would have their own AI which quite simply gives a response when you say hello.[/quote]

    Excuse me, I'm going to have one of my bouts of extremely severe opinion. This usually happens when I'm tired (as I am). Don't take offense.

    What is dramatically significant about several thousand people? Think of dramatic representations of wars. They involve thousands of people, but the protagonist only has dramatic contact with a few. Let the rest be governed by a large simulation that governs more by probabilities than by direct AI control of each person. Most "men on the street" react in a very similar way to most stimuli. If the player prods a random person too much, it might be worth morphing him/her into an NPC with his own AI, but only then.

    The Nomad Soul does a reasonable job of it. (For current technology - by which I mean game technology, not hardware tech.) The streets are filled with people and cars moving around, mainly in a somewhat orderly pattern if you look that hard, but most people on the streets do that anyway. It only fails when you try to talk to someone; most give a very simple response.

    [quote]This means there will be things like a legion of Bad GuyTM troops attacking a village and killing everyone in it on the other side of the world to the player's current position.[/quote]

    Create a probability model of battle. Let the results (wreckage, death) show in the game world however you have to. There's no need to simulate every soldier and civilian running around, just do some simple math. The experience doesn't need perfectly accurately simulated battles when the experiencer isn't there to experience it.

    (This is all a bit similar to Drazi Guy's post - Hi Drazy Guy!)

    [quote]Then most of the characters could start at the basic level, maybe with a few key things to say like rumours to spread.[/quote]

    No. Please. [b]No.[/b] I do [b]not[/b] walk up to people on the street and hear rumours. If I engage them in a long conversation about [i]*insert topic*[/i], they [i]might[/i] tell me a rumour about it. But that's more of an NPC interaction than a man-on-the-street conversation.

    [quote]Look what you did when I was gone![/quote]

    Sorry. But we're not gonna clean up the mess. [img]http://216.15.145.59/mainforums/tongue.gif[/img] Welcome back John. [img]http://216.15.145.59/mainforums/smile.gif[/img]



    [This message has been edited by GrantNZ (edited 10-24-2001).]
  • BigglesBiggles <font color=#AAFFAA>The Man Without a Face</font>
    Guess the hot topic is back to AI again, huh? [img]http://216.15.145.59/mainforums/wink.gif[/img]


    Grant: All such obvious points. I should have thought of those. Damn exams and study are screwing with my thinking processes.

    Randy: Anyone who sticks so diligently to something like B5:ITF for so long is a hero to me.

    John: It won't take you long if you don't think about it. But then, where is the point? Besides, we want comments on every single post. [img]http://216.15.145.59/mainforums/biggrin.gif[/img]

    ------------------
    [b][url="http://www.minbari.co.uk/log12.2263/"]Required reading[/url][/b]
    Never eat anything bigger than your own head.
    The Balance provides. The Balance protects.

    "Nonono...Is not [i]Great[/i] Machine. Is...[i]Not[/i]-so-Great Machine. It make good snow cone though." - Zathras
  • RandyRandy Master Storyteller
    I like the idea of a general engine taking care of the masses - no need for each to have an AI - most of the time.

    But you know, there will be those who stop people on the street in an interactive experience just to push the boundaries to see how far they can go. For these people, how about a generalized, roaming AI sub-system that is not attached to any particular NPC, but which is available to the drama engine to assign to a non-specific and unimportant NPC when the player/ experiencer decides to see how far he can go with a randomly chosen NPC? In other words, this randomly chosen NPC doesn't get brains until someone engages it in a conversation that goes beyond it's own modest library of responses. (Responses like "Why are you talking to me? Do I know you?" and "Get away from me, you freak").
  • BigglesBiggles <font color=#AAFFAA>The Man Without a Face</font>
    A sort of "on-reqest realism" engine? I like that idea to.

    ------------------
    [b][url="http://www.minbari.co.uk/log12.2263/"]Required reading[/url][/b]
    Never eat anything bigger than your own head.
    The Balance provides. The Balance protects.

    "Nonono...Is not [i]Great[/i] Machine. Is...[i]Not[/i]-so-Great Machine. It make good snow cone though." - Zathras
  • GrantNZGrantNZ Earthforce Officer
    [quote]For these people, how about a generalized, roaming AI sub-system that is not attached to any particular NPC, but which is available to the drama engine to assign to a non-specific and unimportant NPC when the player/ experiencer decides to see how far he can go with a randomly chosen NPC?[/quote]

    I contend that if the experiencer is prodding an NPC that much, then that NPC isn't non-specific and unimportant.

    That's something I'm focusing [i]very[/i] much on in my engine - determining what is important to the player, in terms of NPCs and theme. I want to be able to recreate scenes like Star Wars' Mos Eisly (dammit, I'm sure I've spelt that wrong) bar scene, where the experiencer may have to ask a lot of people about certain things before finding what he's looking for. (Transport or otherwise.) I want a room filled with individual interesting people, but of course I don't want the overhead. So most NPCs there will be cardboard cutouts governed by just a few variables (race, profession, amiability) until the player wants to talk more than a couple of phrases.

    [i]Edit: Added this paragraph after a little thought:[/i]
    It may be best to have different NPC capabilities for different areas. For example, a "generalised bar patron" would have the attributes needed to act believably in a bar. (Race, profession, amiability as above, but also specialised things like enjoys_bar_music, drinks_a_lot, meets_contacts.) It's more work (people on the street would have a different set of basic behaviours, such as heading_home, heading_to_work...), but would create a more believable experience than just having generic NPCs standing in a bar.

    Once prodded enough, the NPC has a full character generated for him/her/it, including his skills, personality, background. They can then talk to the experiencer on a detailed level. This generation can be biased by the drama engine - if the player requires transport and he's been searching diligently, a character may well be pushed towards being a smuggler with a furball as a copilot.

    If an NPC is "no longer needed" (i.e. the experiencer doesn't form any great friendship or contract, and the NPC leaves the bar (or the experiencer leaves!)) then that NPC can be deleted to save on processing/memory. It's simply a case of letting NPCs fall out of scope when they're no longer contactable.

    [i]Second edit (I should really stop thinking...):[/i]
    An ironic/forshadowing/other-cool-terms capable drama system might keep an NPC in scope even if the experiencer has only slight interest in the NPC. The experiencer (I wish we had a shorter term for that) might briefly meet a bounty hunter in a bar, only to find that that he's hunted by said bountier later on in the story.

    Of course, being an experiencer-based experience, the experiencer [i]*gasp*[/i] might just leave the bar and try elsewhere. [img]http://216.15.145.59/mainforums/wink.gif[/img]


    [This message has been edited by GrantNZ (edited 10-24-2001).]

    [This message has been edited by GrantNZ (edited 10-24-2001).]
  • RickRick Sector 14 Studios
    My goodness. Look what happens when I'm uncharacteristically ignorant for a few weeks---We get the whole ITF AI manual [img]http://216.15.145.59/mainforums/smile.gif[/img]

    This was one of the best parts of the design, but it certainly wasn't the only one. I'm not sure if the multithreading aspects (and the solutions to some complex problems it gave) has been discussed yet, but, after having gone through "The Dan Foy Crash Course in ITF-ology", it's plain to see that many companies should have started with this a long time ago. Case-in-point: Any FPS right now sure could use the scalar architecture to properly throttle the sim vs the framerate.

    I won't pretend to be an expert in any of this, so I'll just toss that out there and Let John, Randy, and (hopefully) Dan pop in on it, if it's of any interest to people.

    I do feel obliged to respond to a few of the older posts, though [img]http://216.15.145.59/mainforums/wink.gif[/img]

    [quote]Randy Wrote:
    "Yes. As a matter of fact Chris and I have sent a few emails back and forth and I have been invited to his yearly gathering up in Oregon, but so far haven't been able to attend. I think that he and his group will come up with the beginnings of a new kind of entertainment. Do you regularly go to his Website? ( [url="http://www.erasmatazz.com/"]http://www.erasmatazz.com/[/url] ). His transcripts of the yearly gatherings are a fascinating look into the debate about which direction the interactive storytelling evolution/ revolution should take."[/quote]

    So now that everyone knows this, it's everyone's duty to place severe peer pressure on Randy to go to this gathering this year [img]http://216.15.145.59/mainforums/wink.gif[/img] ...

    FYI: Those of you that DON'T remember Chris Crawford may remember Mindscape's "Balance of Power", one of the finest sims of it's time. Check it out on mobygames.

    [quote] John Walker Wrote:
    Look what you did when I was gone! It's going to take me another week just to catch up on this thread! [/quote]

    You're not fooling me, John! You printed it out and took it to the restroom like I do when I'm at work [img]http://216.15.145.59/mainforums/wink.gif[/img]

    Also, john, for flowcharts, I'd reccommend MS Visio2000. It's simply the best flowcharting software out there. On top of that, a trainee and two chimpanzees can work it, so a first-class code groker like you shouldn't have a hitch with it [img]http://216.15.145.59/mainforums/wink.gif[/img] I think MS busted a few of the smartshapes after they bought ShapeWare (the original developers of the product), but, overall, Visio2000 is pretty darn sweet. I've used Visio since v1.0 in '93. All those flowcharts I did in the ITF package were done with it.

    -R.
  • GrantNZGrantNZ Earthforce Officer
    I have only one thing to say.

    [i]*Views profile for Rick.*[/i]

    "Total Posts: 666"

    [img]http://216.15.145.59/mainforums/robot.gif[/img]
  • BigglesBiggles <font color=#AAFFAA>The Man Without a Face</font>
    Grant: Rick is the guy who did all the business stuff for the Save B5:ITF effort and Sector 14 Studios. He sort of appeared out of nowhere not long after the cancellation. [img]http://216.15.145.59/mainforums/smile.gif[/img]

    [quote]It may be best to have different NPC capabilities for different areas. For example, a "generalised bar patron" would have the attributes needed to act believably in a bar. (Race, profession, amiability as above, but also specialised things like enjoys_bar_music, drinks_a_lot, meets_contacts.) It's more work (people on the street would have a different set of basic behaviours, such as heading_home, heading_to_work...), but would create a more believable experience than just having generic NPCs standing in a bar.

    Once prodded enough, the NPC has a full character generated for him/her/it, including his skills, personality, background. They can then talk to the experiencer on a detailed level. This generation can be biased by the drama engine - if the player requires transport and he's been searching diligently, a character may well be pushed towards being a smuggler with a furball as a copilot.[/quote]

    I like the idea of differnt cardboard cut-outs for different areas. That would give a range of different character types who congregate together. However, how long would it take to generate a full character, including background, for one of these NPCs? If you go around a full bar room prodding everyone, you might end up with quite some time spent generating these characters and then running them all while the player is there.

    [quote]experiencer (I wish we had a shorter term for that)[/quote]

    I've just been using "player" because it is much easier to type. When I say player I actually mean experiencer. [img]http://216.15.145.59/mainforums/smile.gif[/img]


    Rick:

    [quote]This was one of the best parts of the design, but it certainly wasn't the only one. I'm not sure if the multithreading aspects (and the solutions to some complex problems it gave) has been discussed yet, but, after having gone through "The Dan Foy Crash Course in ITF-ology", it's plain to see that many companies should have started with this a long time ago. Case-in-point: Any FPS right now sure could use the scalar architecture to properly throttle the sim vs the framerate.

    I won't pretend to be an expert in any of this, so I'll just toss that out there and Let John, Randy, and (hopefully) Dan pop in on it, if it's of any interest to people.[/quote]

    We still need to clear up a few implementation issues for drama engines first. [img]http://216.15.145.59/mainforums/smile.gif[/img] Implementation is always something I'm very interested in. If I don't know how to implement one part of a design, I won't design anymore until I either change that part or figure out how to implement it. Bit of a failing there I guess.

    [quote]FYI: Those of you that DON'T remember Chris Crawford may remember Mindscape's "Balance of Power", one of the finest sims of it's time. Check it out on mobygames.[/quote]

    Never actually played it, but I do recall hearing quite a bit about it many times in the past.

    [quote]Also, john, for flowcharts, I'd reccommend MS Visio2000. It's simply the best flowcharting software out there. On top of that, a trainee and two chimpanzees can work it, so a first-class code groker like you shouldn't have a hitch with it I think MS busted a few of the smartshapes after they bought ShapeWare (the original developers of the product), but, overall, Visio2000 is pretty darn sweet. I've used Visio since v1.0 in '93. All those flowcharts I did in the ITF package were done with it.[/quote]

    Been using that ever since I discovered it on the university network 2 years ago. It's so useful for flowcharts for things like Software Design project reports!

    ------------------
    [b][url="http://www.minbari.co.uk/log12.2263/"]Required reading[/url][/b]
    Never eat anything bigger than your own head.
    The Balance provides. The Balance protects.

    "Nonono...Is not [i]Great[/i] Machine. Is...[i]Not[/i]-so-Great Machine. It make good snow cone though." - Zathras
  • GrantNZGrantNZ Earthforce Officer
    [quote]Rick is the guy who did all the business stuff for the Save B5:ITF effort and Sector 14 Studios.[/quote]

    Ahh righty, cool. [img]http://216.15.145.59/mainforums/smile.gif[/img] Hi Rick! Mind if I call you Devil-Guy, for obvious reasons? [img]http://216.15.145.59/mainforums/wink.gif[/img]

    [quote]However, how long would it take to generate a full character, including background, for one of these NPCs?[/quote]

    It's potentially as short as generating a random number for each attribute. Background can similarly be simplified to "was once a used-ship salesman, then became a smuggler." If more detail is needed, the drama engine could produce that on the fly. (Keeping the AI/characters/drama modular.)

    [quote]If you go around a full bar room prodding everyone, you might end up with quite some time spent generating these characters and then running them all while the player is there.[/quote]

    The longest AI task I can forsee in my engines (as they stand currently) is planning. Complex planning only needs to be done if the NPC will play a major part in the story, and needs to have a sensible plan of action for the next few game days. Most NPCs in a bar won't end up being this complex. Most will talk with the plexer (player-experiencer? [img]http://216.15.145.59/mainforums/smile.gif[/img] ) and then go back to drinking.

    Three more things: [i]Edit: Added a fourth.[/i]
    [list][*]NPC planning can't really be simplified without hurting the experience, so if it does hog CPU time, we'll need to find other ways around it.
    [*]Planning or other AI decisions normally only need to be made when the NPC has finished an action. Even if there's a major disturbance or distraction in the bar, it's normally a simple case of "make NPCs look at action." If all NPCs need a complex plan to deal with the circumstance (and this will be rare), a small number could be calculated per frame, blaming NPC reaction speeds/dexterity for the delay in planning some NPCs.
    [*] Thirty people in a bar is much easier than twenty thousand in a villiage.
    [*] In any RPG context, the player often spends a lot of time deciding what to say. That gives a lot of AI time.[/list]

    [quote]Implementation is always something I'm very interested in. If I don't know how to implement one part of a design, I won't design anymore until I either change that part or figure out how to implement it. Bit of a failing there I guess.[/quote]

    Then I fail too. Production on my game has completely halted, because I can't think of a nice way to smooth mesh joints. There's a lot of things I could be doing instead, but that one process has eluded me, so I'm not doing anything.

    [i]*Yawn*[/i] I'm still tired even after ten hours sleep. Although I did have a rather interesting dream, a surprisingly realistic one (compared to [i]most[/i] dreams) where I was in the old War of the Worlds movie. Weird. [img]http://216.15.145.59/mainforums/smile.gif[/img]


    [This message has been edited by GrantNZ (edited 10-25-2001).]
  • BigglesBiggles <font color=#AAFFAA>The Man Without a Face</font>
    We'll go with plexer. [img]http://216.15.145.59/mainforums/smile.gif[/img]

    [quote]It's potentially as short as generating a random number for each attribute. Background can similarly be simplified to "was once a used-ship salesman, then became a smuggler." If more detail is needed, the drama engine could produce that on the fly. (Keeping the AI/characters/drama modular.)[/quote]

    I guess each cut-out type would have certain boundaries within which the attributes can be set. That way you won't end up with a Lady hanging around with some farm-hands in the local pub. [img]http://216.15.145.59/mainforums/smile.gif[/img]

    [quote]NPC planning can't really be simplified without hurting the experience, so if it does hog CPU time, we'll need to find other ways around it.[/quote]

    "Loading, please wait..." ? Nah, I want to have no loads in my game if possible.

    [quote]Planning or other AI decisions normally only need to be made when the NPC has finished an action. Even if there's a major disturbance or distraction in the bar, it's normally a simple case of "make NPCs look at action." If all NPCs need a complex plan to deal with the circumstance (and this will be rare), a small number could be calculated per frame, blaming NPC reaction speeds/dexterity for the delay in planning some NPCs.[/quote]

    This would work rather well if you organise it so NPCs closer to the plexer get priority in planning. It would be difficult to implement though, and you might end up with things like a backlog of planning to be done because one character close to the plexer keeps needing to do more and more planning, meaning those on the other side of the world can't decide what to do.

    [quote]Thirty people in a bar is much easier than twenty thousand in a villiage.[/quote]

    You're going to have the same problem with Mos Eisly (sp?). How are we going to get around that one? We could make most of the characters non-interactible after a certain point, make them just run away or something. But that would hurt the experience.

    [quote]Then I fail too. Production on my game has completely halted, because I can't think of a nice way to smooth mesh joints. There's a lot of things I could be doing instead, but that one process has eluded me, so I'm not doing anything.[/quote]

    I'm happy to report my Object Converter is coming along nicely at this early stage. I can fully parse Lightwave objects now. Personally, I'm leaving animation until after the car-racer is done. And it's unlikely I'll do joint smoothing for some time after that. [img]http://216.15.145.59/mainforums/smile.gif[/img]

    ------------------
    [b][url="http://www.minbari.co.uk/log12.2263/"]Required reading[/url][/b]
    Never eat anything bigger than your own head.
    The Balance provides. The Balance protects.

    "Nonono...Is not [i]Great[/i] Machine. Is...[i]Not[/i]-so-Great Machine. It make good snow cone though." - Zathras
  • GrantNZGrantNZ Earthforce Officer
    [quote]I guess each cut-out type would have certain boundaries within which the attributes can be set. That way you won't end up with a Lady hanging around with some farm-hands in the local pub.[/quote]

    Exactly. It can get a bit more complex though.

    Let's say the plexor (or "plexer"? I reckon "plexor" sounds more natural) prods a mean looking well-armed (and legged) cutout, who turns out to be a bounty hunter. (Mean + Well Armed => { Bounty Hunter, Body Guard, Mercenary, ... } and the computer rolled Bounty Hunter.) If that bounty hunter was in the bar on the mission of "meet contact," then the drama engine should decide if the contact is currently in the bar or not. If it is, then another cutout that fits the description of a contact could be elevated to NPC status, and might come over to find out why his bounty hunter is talking to someone he doesn't recognise. Et cetera.

    Of course this can provide ambiant atmosphere too. If bounty hunter and bounty target cutouts are created in the same bar, the plexor could end up involved in a nice little conflict.

    [quote]"Loading, please wait..." ? Nah, I want to have no loads in my game if possible.[/quote]

    Agreed. I was thinking more along the lines of forcing a simple cinematic scene while the AI beavers away in the background to get things done. Or performing some dedicated AI cycles between each line of dialogue. Things like that - barely noticable but very useful.

    [quote]This would work rather well if you organise it so NPCs closer to the plexer get priority in planning. It would be difficult to implement though, and you might end up with things like a backlog of planning to be done because one character close to the plexer keeps needing to do more and more planning, meaning those on the other side of the world can't decide what to do.[/quote]

    I would contend the difficult-to-implement part. It'll be no more difficult than everything else. [img]http://216.15.145.59/mainforums/wink.gif[/img] This would be a situation for "good enough" planning, which gets a fast but short term plan for an NPC, and if it turns out to work against the NPC's goal in the long run, put it down to NPC panic.

    I still don't believe the AI will have too much trouble coping, seeing as most nearby people will be acting on cutout AI.

    [quote]You're going to have the same problem with Mos Eisly (sp?). How are we going to get around that one? We could make most of the characters non-interactible after a certain point, make them just run away or something. But that would hurt the experience.[/quote]

    People will be entering and leaving the bar all the time. If there are too many detailed characters, have some of them leave. Bear in mind that even detailed characters can run on cutout AI unless their future becomes important to the drama. There was only about fifty people at most in the Mos Eisly bar. It would take a lot of detailed talking on the behalf of the plexor for that many detailed NPCs to be created. (In that time, a lot of the early NPCs would have left the bar anyway.) And finally, especially in the level of NPC detail that a first meeting requires, it wouldn't take much memory to store.

    I made a [i]very[/i] rough estimate once for the memory requirements of a bunch of detailed NPCs once. Two hundred NPCs each had about fifty different attributes, an average of two memories for each attribute, and knew (i.e. had opinions, feelings and memories) about twenty people. I estimated about 20Mb of memory. (Not counting AI plans.) That's two hundred people with enough detail to talk to you for hours about the people they know, recent activities that mattered to them, and how they feel about themselves. That level of detail would really only be needed by main NPCs in the drama.

    It should be mentioned that with current technology, we really can't expect a hugely increased gameplay/drama system and retain the graphical complexity we're used to. John mentioned he had about 20% (I think?) CPU time to allocate to AI, including what I'm calling "cutout" AI. I think we'll need at least 50% to achieve anything special, with the memory resources that go with it.

    [quote]I'm happy to report my Object Converter is coming along nicely at this early stage. I can fully parse Lightwave objects now. Personally, I'm leaving animation until after the car-racer is done. And it's unlikely I'll do joint smoothing for some time after that.[/quote]

    Yay. [img]http://216.15.145.59/mainforums/biggrin.gif[/img]

    I went and had a thought about my joint smoothing stuff, and I think I've got a system that would work to some extent, although it needs refining. The trouble is, Baldur's Gate II is too addictive. [img]http://216.15.145.59/mainforums/wink.gif[/img]
  • RickRick Sector 14 Studios
    GrantNZ:

    No worries, but it says 667 now.

    Big B:

    [quote]Never actually played it, but I do recall hearing quite a bit about it many times in the past.[/quote]

    Ahh...well that really shows my age now, doesn't it? [img]http://216.15.145.59/mainforums/wink.gif[/img] Dare I mention that I cut my gaming teeth on Adventure and Zork? Probably not. (D'oh.)

    As for the multithreading...no worries. That part gets more...involved.

    I think I still have a huge flowchart somewhere that Dan, Randy and I put together of how all the elements of the engine fed into each other. Perhaps I should dig that up...

    ...(sound of reams of paper being shuffled with occasional littering of profanity in a vorlonic accent)...

    Hmmn. This may take a while...

    -R.

    ------------------
    [i]"...Never start a fight...but [b]always[/b] finish it."[/i]

    [This message has been edited by Rick (edited 10-26-2001).]
  • bobobobo (A monkey)
    I think I speak for all of us lurkers when I say "We'll wait!"

    ------------------
    bobo
    <*>
    B5:ITF
  • BigglesBiggles <font color=#AAFFAA>The Man Without a Face</font>
    [quote]Agreed. I was thinking more along the lines of forcing a simple cinematic scene while the AI beavers away in the background to get things done. Or performing some dedicated AI cycles between each line of dialogue. Things like that - barely noticable but very useful.[/quote]

    So what, are you going to have a bunch of predefined cinematics that have no meaning and can just be shoved in when the computer needs time to think? That would interrupt the flow of the story far too much. The AI between lines of dialogue would be far better.
    What is needed is a multithreaded engine where the AI trundles away in one thread while the rest of the game goes in the other. That way, as the game engine needs more power it can get it by lowering the priority of the AI and drama engines. Then when the game engine has less to do, just pump up the AI and drama again. Never leave the CPU with empty clock cycles. They have cooling fans for a reason.

    [quote]People will be entering and leaving the bar all the time. If there are too many detailed characters, have some of them leave. Bear in mind that even detailed characters can run on cutout AI unless their future becomes important to the drama. There was only about fifty people at most in the Mos Eisly bar. It would take a lot of detailed talking on the behalf of the plexor for that many detailed NPCs to be created. (In that time, a lot of the early NPCs would have left the bar anyway.) And finally, especially in the level of NPC detail that a first meeting requires, it wouldn't take much memory to store.[/quote]

    You missed my point. I meant outside the bar, in the town. A town the size of Mos Eisly, a space port no less, would look rather empty and lifeless with 200 people in it.

    [quote]It should be mentioned that with current technology, we really can't expect a hugely increased gameplay/drama system and retain the graphical complexity we're used to. John mentioned he had about 20% (I think?) CPU time to allocate to AI, including what I'm calling "cutout" AI. I think we'll need at least 50% to achieve anything special, with the memory resources that go with it.[/quote]

    I contest that. The whole big thing of T&L GPUs is that they free up the CPU for tasks like AI. B5:ITF would have benefitted greatly from T&L. I think that in coming years, in fact even now, it is possible to offload a large amount of the graphics to the video card and thus have much greater time for AI. We also have sound cards starting to appear with APUs onboard (nForce and Creative Audigey). How long before we have the bulk of the CPU for AI, or even a separate AIPU?

    [quote]Bobo:

    I think I speak for all of us lurkers when I say "We'll wait!"[/quote]

    You could be waiting some time. Just out of curiosty, who is actually reading this thread here (apart from the four or five of us providing the entertainment)?

    ------------------
    [b][url="http://www.minbari.co.uk/log12.2263/"]Required reading[/url][/b]
    Never eat anything bigger than your own head.
    The Balance provides. The Balance protects.

    "Nonono...Is not [i]Great[/i] Machine. Is...[i]Not[/i]-so-Great Machine. It make good snow cone though." - Zathras
  • Or even multithread it so that people with SMP systems(like mine)can really use the drama,graphics and AI engines to their fullest capabilities all the time.... [img]http://216.15.145.59/mainforums/smile.gif[/img].


    Evil laughter.... [img]http://216.15.145.59/mainforums/wink.gif[/img].
  • GrantNZGrantNZ Earthforce Officer
    [quote]So what, are you going to have a bunch of predefined cinematics that have no meaning and can just be shoved in when the computer needs time to think?[/quote]

    Of course not, that'd just be silly.

    But tell me, do you think we can accomplish interactive drama without cinematography? And do you think AI is limited to character actions? AI is also going to be needed for the storywriting and directing. To avoid that is to screw up interactivity.

    We have been focusing on character AI a lot recently. Maybe we should branch the discussion to the techniques of implementing intelligent and interactive drama and presentation too.

    For an example of non-meaningless cinamatics: Back to the Mos Eisly bar. Luke and Obi-Wan meet Han Solo for the first time. There's a shot of one or two seconds which is nothing but Luke and Obi-Wan joining Han at the table - setting the scene and introducing us to Han. In a game that would [i]not[/i] be interactive, but could be referred to as "cinematic." It gives a good second or two for the engine to roll Han's character.

    Similarly when a special event happens, show some cinematic shots of people reacting, such as Greedo's shot on Han, or Obi-Wan's slice of the thug. A couple of shots of people looking at the action could relieve the pressure on the engines, letting the main NPCs plan or whatever.

    Anyway, enough meaningless predefined examples, my brain engine is back with us now. [img]http://216.15.145.59/mainforums/wink.gif[/img]

    [quote]That would interrupt the flow of the story far too much.[/quote]

    I contend the opposite. Per the examples above.

    [quote]What is needed is a multithreaded engine[/quote]

    Disagreed. There are other ways to accomplish the goals. Multi-threading is just one possibility and has associated benefits and costs.

    [quote]That way, as the game engine needs more power it can get it by lowering the priority of the AI and drama engines.[/quote]

    Leaving a stagnant AI and story? So if something major and pretty happens in the vicinity of a lot of NPCs, they'll stand by dumbly until the frame rate rises again and all their plans are made? I contend the opposite - frame rate may have to be sacrificed or other pausing techniques used (e.g. cinematics) to keep the integrity of the storyline and characters.

    [quote]leave the CPU with empty clock cycles. They have cooling fans for a reason.[/quote]

    [i]*Grin*[/i]

    Hoping to have the CPU fully occupied at all times is futile. Any game fluctuates in CPU demands depending on the action.

    Although I can think of one application for spare CPU - checking millions of story possibilities for ones that make sense or work well or whatever. But does this mean the people with less powerful PCs will have a lowered story experience? I don't like the sound of that.

    [quote]You missed my point. I meant outside the bar, in the town. A town the size of Mos Eisly, a space port no less, would look rather empty and lifeless with 200 people in it.[/quote]

    Head into a city centre and look around. There will be perhaps a couple of hundred people who would be considered cutouts with regards to your life. Try prodding some and see how many truely important people you can create around you... and notice how many move on before you can create many more. Most people, everywhere, will remain in cutout status for most of the time. That's not a big AI demand.

    [quote]The whole big thing of T&L GPUs is that they free up the CPU for tasks like AI.[/quote]

    I agree, but there's a limit (currently) to how much load they can take off. And with an intensely interactive game, there must be sacrifice.

    Sure, in the future, we will probably be able to upload the whole program to the GPU to compute for us. But that's the future. I'm never saying that things won't be better then. For now though, don't look for the prettiest graphics.

    Gotta run, out for dinner tonight.
  • BigglesBiggles <font color=#AAFFAA>The Man Without a Face</font>
    [quote]Leaving a stagnant AI and story? So if something major and pretty happens in the vicinity of a lot of NPCs, they'll stand by dumbly until the frame rate rises again and all their plans are made? I contend the opposite - frame rate may have to be sacrificed or other pausing techniques used (e.g. cinematics) to keep the integrity of the storyline and characters.[/quote]

    I [b]never[/b] said that framerate was more important. The idea is that you can easily give priority to the task which requires more power at the time. If the story reaches a complex part, give the AI more time to work. If the story is trundling along happily with nothing major happening (eg the plexor is taking a stroll around their house), up the framerate a bit.

    [quote]We have been focusing on character AI a lot recently. Maybe we should branch the discussion to the techniques of implementing intelligent and interactive drama and presentation too.[/quote]

    Probably a good idea. We need to think about how the drama engine would work and where everything would fit.

    How would a drama engine be implemented? I think it would probably be a form of AI, heavily directed towards developing character goals and generating events. The AI would operate within boundaries to prevent the story getting out of hand or going away from the designers vision [b]too[/b] much.
    As for presentation: I think as much time spent with the character as possible. Cinematics would be used whenever an important event is taking place somewhere the character is not, for example a meeting of the enemy or something. You need to be able to develope the enemy as bad (or at least bad from the plexor's point of view) not just from first hand experience. The plexor may not run into any really bad guys for quite some time.

    ------------------
    [b][url="http://www.minbari.co.uk/log12.2263/"]Required reading[/url][/b]
    Never eat anything bigger than your own head.
    The Balance provides. The Balance protects.

    "Nonono...Is not [i]Great[/i] Machine. Is...[i]Not[/i]-so-Great Machine. It make good snow cone though." - Zathras
  • bobobobo (A monkey)
    [quote]
    Just out of curiosty, who is actually reading this thread here (apart from the four or five of us providing the entertainment)?
    [/quote]
    bobo, present and accounted for.. Any others care to step forward?

    [quote]
    The AI would operate within boundaries to prevent the story getting out of hand or going away from the designers vision too much
    [/quote]
    So we need not only a director AI, but a [b]producer[/b] AI, too? [img]http://216.15.145.59/mainforums/biggrin.gif[/img] Where does the gaffer AI come into play, setting the lighting levels to heighten the dramatic effect? [img]http://216.15.145.59/mainforums/biggrin.gif[/img]

    RE: Cinematics, I assume your not talking about cut-scenes with prerendered video, but scripted action with the ingame player models (a Tomb Raider 4 type scene where the in-game models are controlled, vs an Independence War cutscene with highly detailed CGI characters and models)? Unless you could finely direct the characters to their markings, including the plexor, a cut-scene would destroy the illusion.

    For that matter, can you include the plexor in any controlled movement and not destroy the illusion? Or can you only control the NPCs?


    ------------------
    bobo
    <*>
    B5:ITF
  • BigglesBiggles <font color=#AAFFAA>The Man Without a Face</font>
    If the plexor is witnessing the cutscene, then they may see it first hand or they may see it from a third person point of view. How often do you imagine watching yourself do something?
    If they are watching first hand then the engine would have to give them control. If they want to run away, they can. But then the only way to find out what happened would be to ask other people who were witnesses.
    I don't think that cutscenes of events happening elsewhere where the plexor is not present would destroy the illusion. Remember, the most important part of the illusion is the experience of the story. As long as the cutscenes advance the story, they should be OK.

    ------------------
    [b][url="http://www.minbari.co.uk/log12.2263/"]Required reading[/url][/b]
    Never eat anything bigger than your own head.
    The Balance provides. The Balance protects.

    "Nonono...Is not [i]Great[/i] Machine. Is...[i]Not[/i]-so-Great Machine. It make good snow cone though." - Zathras
Sign In or Register to comment.