Aller au contenu

Photo

UoA's Scriptease


  • Veuillez vous connecter pour répondre
38 réponses à ce sujet

#1
Rolo Kipp

Rolo Kipp
  • Members
  • 2 788 messages
 <grabs his head with both hands...>

Almost two years ago I got ahold of some of the AI papers coming out of the University of Alberta. I was totally off-grid then and couldn't *do* anything but dream. But, man! They sure inspired me.

Recently, while looking for the link to share with someone, I revisited the Scriptease site. They haven't stood still.

They have some good stuff there! I especially like the possibilities inherent in a synergy between their ALeRT-AM learning AI

U of A Abstract 
Our goal is to provide learning mechanisms to game agents so they are capable of adapting to new behaviors based on the actions of other agents. We introduce a new on-line reinforcement learning (RL) algorithm, ALeRT-AM, that includes an agent-modeling mechanism. We implemented this algorithm in BioWare Corp.’s role-playing game, Neverwinter Nights to evaluate its effectiveness in a real game.  Our experiments compare agents who use ALeRTAM with agents that use the non-agent modeling ALeRT RL algorithm and two other non-RL algorithms.  We show that an ALeRT-AM agent is able to rapidly learn a winning strategy against other agents in a combat scenario and to adapt to changes in the environment.


and the Behavior-MultiQueue system.

U of A
A movie clip (www.cs.ualberta.ca/~script/movies/tavern.mov) shows a tavern scene with one owner, two servers, and eighteen patrons. This scene runs in game at more than 30 frames per second, despite the high activity in the scene. We have run this scene for days without any noticeable stalling of behaviors or NPCs who stop performing their designated behaviors. This illustrates that the multi-queue approach is both efficient and robust enough for commercial computer games.


(Note: Their ALeRT-AM AI can achieve 80-90% wins vs. NwN scripted AI. Interesting, no?)

Is anyone here mucking about with Scriptease? Can I get some other viewpoints not tinted with these rosy glasses? :-)

<...to keep it from exploding>

Modifié par Rolo Kipp, 09 octobre 2011 - 09:34 .


#2
Rolo Kipp

Rolo Kipp
  • Members
  • 2 788 messages
<waffling...>

Full disclosure, though. Because Scriptease uses JRE 6u7 (hard to find, but not impossible) I never installed it. I'm far more interested in the ideas than the tool. And would rather not risk my only connection with older JRE libraries :-(

But the screenies of Scriptease2 Alpha look pretty tasty.
Posted Image
Soon as I get a new laptop (or fix one from the pile in storage) I'd planned to use this as a server, anyway.  I'll try it out then.

<...to C his A>

Modifié par Rolo Kipp, 09 octobre 2011 - 08:05 .


#3
Lightfoot8

Lightfoot8
  • Members
  • 2 535 messages

U of A
A movie clip (www.cs.ualberta.ca/~script/movies/tavern.mov) shows a tavern scene with one owner, two servers

 

And how did they pull that off?   An area running on two servers?  

  We have run this scene for days without any noticeable stalling of behaviors or NPCs who stop performing their designated behaviors. This illustrates that the multi-queue approach is both efficient and robust enough for commercial computer games.


I do not see enough information here to suport there conclusion.   If they had a server running with only one area in it. with 18 NPC.   Yea there is no case for lag.   Now, I would be more interested if they where running a module with several areas and a few PC's poping in and out.

**********
I have never really looked ar scriptease. I figured it was just another script generator.   There where a bunch of college students posting questions on the boards, awhile back. they all seemed to be using this link: http://aigamedev.com...es/bt-overview/  as the basis for what they where tring to do.

#4
Failed.Bard

Failed.Bard
  • Members
  • 774 messages
That's interesting, nonetheless, Rolo, especially with using it NWN as a basis for pursuing AI and behavioural research. If I'd known about it last week I'd have been tempted to swing by the university while I was in Edmonton anyways. If I get a chance to pop in and talk to them about it when I'm back in Edmonton next week I'll post about it.

#5
Rolo Kipp

Rolo Kipp
  • Members
  • 2 788 messages
<grinning like...>

Lightfoot8 wrote...

U of A
A movie clip (www.cs.ualberta.ca/~script/movies/tavern.mov) shows a tavern scene with one owner, two servers

 

And how did they pull that off?   An area running on two servers? 

Nah, two servers running on one area ;-) No tips, though.  There should be tips.

  We have run this scene for days without any noticeable stalling of behaviors or NPCs who stop performing their designated behaviors. This illustrates that the multi-queue approach is both efficient and robust enough for commercial computer games.

I do not see enough information here to suport there conclusion.   If they had a server running with only one area in it. with 18 NPC.   Yea there is no case for lag.   Now, I would be more interested if they where running a module with several areas and a few PC's poping in and out.

Actually, they were talking about the AI getting hung up, not the processing/memory of the server. But, yeah, I'd like to see a lot more done with this... in fact, I intend to :-)

**********
I have never really looked ar scriptease. I figured it was just another script generator.   There where a bunch of college students posting questions on the boards, awhile back. they all seemed to be using this link: http://aigamedev.com...es/bt-overview/  as the basis for what they where tring to do.

Hmmm, that article really pushes behavior trees. The UoA Behavior multi-queues seem (reading the publications) to have several distinct advantages over BTs.  Not the least of which is that behaviors are interruptible and *resumable*.  Patron talking to patron about the weather, interrupts to order a beer, then interrupts the *waiting for the beer* to resume convo with patron until he interrupts convo to pay for beer... etc. Guard begins to warn PC that he is getting too close, interrupts his warning to attack when PC equips weapon... Etc.

Basically pre-emptive multi-threading behaviors.  

I like that.  And since the roles are collections of behaviors and behaviors are collections of tasks, that gives us descreet objects for defining higher-level actions and also gives us the handle (tasks) to use in learning behaviors.

Don't know how robust Scriptease is (though I really hope SE2 is *not* based on an insecure JRE :-P ) but they've been using it for a long time and producing some pretty nifty things :-)
Edit: and it's regularly updated, latest is Fall 2011 release...

<...a mad hatter>

Modifié par Rolo Kipp, 09 octobre 2011 - 09:13 .


#6
Rolo Kipp

Rolo Kipp
  • Members
  • 2 788 messages
<brightens up...>

Failed.Bard wrote...
 ...
If I get a chance to pop in and talk to them about it when I'm back in Edmonton next week I'll post about it.

Coolness! Thx, FB!

See if they need beta-testers for Scriptease 2 :-)

<...like the Sun>

Modifié par Rolo Kipp, 09 octobre 2011 - 09:02 .


#7
OldTimeRadio

OldTimeRadio
  • Members
  • 1 400 messages
Whoa!  Nice find, Rolo!

#8
Rolo Kipp

Rolo Kipp
  • Members
  • 2 788 messages
<nodding...>

OldTimeRadio wrote...
Whoa!  Nice find, Rolo!

Yeah, ya gotta keep a close eye on them professers.  They's doin' all *kindsa* sneaky things!

And not tellin' *me* about any of it!
(or the Vault... Scriptease has been updated constantly, but the Vault still has 2005 version and points to dead links :-/ )

<...with a finger alongside his nose and a slow wink>

#9
Lightfoot8

Lightfoot8
  • Members
  • 2 535 messages

Rolo Kipp wrote...
Hmmm, that article really pushes behavior trees. The UoA Behavior multi-queues seem (reading the publications) to have several distinct advantages over BTs.  Not the least of which is that behaviors are interruptible and *resumable*.  Patron talking to patron about the weather, interrupts to order a beer, then interrupts the *waiting for the beer* to resume convo with patron until he interrupts convo to pay for beer... etc. Guard begins to warn PC that he is getting too close, interrupts his warning to attack when PC equips weapon... Etc.

Basically pre-emptive multi-threading behaviors.  

I like that.  And since the roles are collections of behaviors and behaviors are collections of tasks, that gives us descreet objects for defining higher-level actions and also gives us the handle (tasks) to use in learning behaviors.


I was not saying thy where the same. just that it is not the first time this has come up.   I also did not relize that the Article  that I linked could not be fully viewed without logging into there web site.  The last time I looked at it you did not have to log into there site.  It is a shame for it is a good atricle.   It covers BT's FMS and HFSM pretty well if memory serves me correctly.    Still your pre-emptive multi-threading behaviors are based or rather an extention of the BT theory.   Here is a quote from the PDF that you linked. 

In this paper, we describe how a behavior multi-queue
architecture can be used to support our four behavior
architectural requirements: responsive, interruptible,
resumable, and collaborative, and how the architecture
connects to ScriptEase (www.cs.ualberta.ca/~script) to
support generative behaviors. Our architecture can be used
to augment FSMs, HSMs, scripts, BTs, or HTNs.



#10
Rolo Kipp

Rolo Kipp
  • Members
  • 2 788 messages
<shaking his head...>

Lightfoot8 wrote...
I was not saying thy where the same. just that it is not the first time this has come up.   I also did not relize that the Article  that I linked could not be fully viewed without logging into there web site.  The last time I looked at it you did not have to log into there site.  It is a shame for it is a good atricle.   It covers BT's FMS and HFSM pretty well if memory serves me correctly.    Still your pre-emptive multi-threading behaviors are based or rather an extention of the BT theory.   Here is a quote from the PDF that you linked. 
...

Right, at least as I understand it :-) The BMq is an extension of BT. Wasn't trying to dis that article, just noting that it didn't address (what I read) that fifth requirement - resuming where the NPC left off. 

Been reading several other pdfs on AI today.
Lot of things buzzing in my head <lotsa room in there, Boss> You saying it's empty or I got a big head, bird? <...> Humph.

<...trying to get the bugs out>

#11
Lightfoot8

Lightfoot8
  • Members
  • 2 535 messages
*grumbles* I guess Im just grumpy today. <Thats an understatment..> ahh, Shut up. *sits back down grumbling to himself*

#12
Squatting Monk

Squatting Monk
  • Members
  • 444 messages
I've tried using ScriptEase. Followed all the tutorials and everything, but it never saves any of the changes to the module. I even launch the program as an administrator and make sure I've got permissions for my NWN folder set right. Could it be because I have a newer version of Java, ya think?

#13
Rolo Kipp

Rolo Kipp
  • Members
  • 2 788 messages
<looking concerned...>

Squatting Monk wrote...
I've tried using ScriptEase. Followed all the tutorials and everything, but it never saves any of the changes to the module.
...
Could it be because I have a newer version of Java, ya think?

They *do* say it won't work for any JRE version but 6u1 - 6u7...

Sure hope Scriptease 2 is built for the future ;-/

<...and not even faking it>

#14
henesua

henesua
  • Members
  • 3 858 messages
If the app doesn't work you can always abstract out what their ides are and reapply them yourself with your own custom scripts. I imagine you'd need to create a framework of scripts for this, and put hooks in the bioware scripts to call them.

#15
Rolo Kipp

Rolo Kipp
  • Members
  • 2 788 messages
<holding up a thumb...>

henesua wrote...
If the app doesn't work you can always abstract out what their ides are and reapply them yourself with your own custom scripts. I imagine you'd need to create a framework of scripts for this, and put hooks in the bioware scripts to call them.

Yup. I'm really talking about two different topics in this post; Scriptease visual script generator and what the U of A has done with it.  The papers are incredibly (to me) exciting, but there is no code/script anywhere I can find it.

But then, the framework for behavior, learning, relationships, etc. are what I want to develop :-P My original idea (based on some of the stuff being done with the game of Life) was to use Finite State Machines.  BTs & BMqs are both very new to me and very exciting. But I'm going to explore both of them.  I really think, to get the kind of responsive, evolutionary and emergant behavior I want, that each NPC will need to be a variant of a FSM, modified by BMq or BT. It is the interactions, after all, that bring things to life :-)

So I hope Scriptease2 will run on my laptop and I hope I can get deeper into the stuff U of A is doing :-)

<...and squinting at the nearly empty canvas>

Modifié par Rolo Kipp, 11 octobre 2011 - 06:45 .


#16
Squatting Monk

Squatting Monk
  • Members
  • 444 messages
Yeah, I've been wanting to look at the way they structure their AI code. It sounds rather similar to MemeticAI, which I've been tinkering with and trying to update. I was wondering if I could glean something from seeing their AI in action.

Thanks, RK. I must've missed where they said which versions of JRE it works with.

#17
QlippothVI

QlippothVI
  • Members
  • 109 messages
Any contact info for those projects you could try?

#18
Rolo Kipp

Rolo Kipp
  • Members
  • 2 788 messages
<trying to connect...>

QlippothVI wrote...
Any contact info for those projects you could try?

Well, I received an email response from Duane Szafron, who was listed on the "participants" page, and was co-author of several of those papers that have me so hot & bothered <yes?> What? <you called?> No. <but I heard...> I said 'hot & *bothered*'. <oh, sorry. Carry on.>

I'm hoping more comes out of it, but we'll see.

<...the dots>

#19
QlippothVI

QlippothVI
  • Members
  • 109 messages
*Crosses his fingers*

#20
Fester Pot

Fester Pot
  • Members
  • 1 391 messages
MemeticAI - haven't heard that in a long time!

Thought this might be useful for some.

FP!

Modifié par Fester Pot, 11 octobre 2011 - 11:49 .


#21
Squatting Monk

Squatting Monk
  • Members
  • 444 messages
Thanks, FP. I'd seen that before but lost it. That's one of the few genuinely useful papers they have on the subject. Most of the other stuff says something to the effect of "A concurrency control model is important, so we made an awesome one." Grr...

#22
Beerfish

Beerfish
  • Members
  • 23 825 messages
I work at the U of A and one of the Scriptease dudes was at the pre dragon age toolset conferences. Very nice guy. Link below to a site I accessed via the U of A web site.

Scriptease site

I'm no scripter but I can poke around for contacts at the U of A if you wish.

#23
Rolo Kipp

Rolo Kipp
  • Members
  • 2 788 messages
<buying Beerfish a drink...>

Beerfish wrote...
I'm no scripter but I can poke around for contacts at the U of A if you wish.

Oh, how I wish! :-)
See if you can find out something about Scriptease 2.
And the scripts.
And people who might not know this forum exists who might want to participate :-)

From Duane's email, I don't think they know NwN's community is still producing :-/ And he dropped a hint that they've been using Scriptease 2... So perhaps it's out but never released outside their courses. I don't know.

<...with a wooden silver>

#24
Failed.Bard

Failed.Bard
  • Members
  • 774 messages
I didn't manage to make it down there.

I did come up with an idea for evolving behavioural patterns based on NPC perceptions and gossip though, that I'll make up the framework for this week-end.
The string parsing needed for the gossip handling will be a pain, but everything else is just variable state manipulation, which is easy.

#25
Rolo Kipp

Rolo Kipp
  • Members
  • 2 788 messages
<coc... *roostering*...>

I'm quite interested. :-)
One of the systems I'd like to integrate into Amethyst is a bardic network that records PCs deeds (and even lets them give input, though that input is subject to review). The bard's tales will, in turn, establish initial (low value) relationships of variable weight (persistence) in NPCs that do not already have a relationship with PC.

As Rob Bartel pointed out, one of the challenges of CRPGs is "Tracking Giants" - recognizing and responding to PCs actions and behavior.

So, yeah. I'm pretty interested :-) 
Edit: Having a PC walk into a tavern and having the patrons hush and start whispering that "*She* is the one who took down the Wight Dwarf..." and some brave peasant screwing up his courage to buy her a drink... that would be pretty cool ;-)

<...an ear>

Modifié par Rolo Kipp, 21 octobre 2011 - 03:00 .