• Advertisement
Sign in to follow this  

Embedding an intelligent assistant into real-time strategy.

This topic is 4240 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

I recently finished my Ph.D. dissertation work in building intelligent agents with greater conversational capabilities. In performing this work I embedded an intelligent assistant into a Stratagus, an open-source real-time strategy game. The result was an interface that allowed me to give commands, objectives, questions and so forth to an artificial intelligence entity that would then perform all of the micro-managing within the game. I have a video demonstration avaialble at http://blog.assistiveintelligence.com/2006/06/demonstration-available.html and would love to have feedback on the technology. Please keep in mind that this particular demonstration was to show the conversational capabilities and not how much cooler the game could be. therefore, there is disagreement and negotiation, as well as the agent not knowing how to perform certain actions in an effort to demonstrate a more diverse conversation. What do you guys think about the demo? What other genre's of games could this technology apply to?

Share this post


Link to post
Share on other sites
Advertisement
Oooh, very cool. :D

I'm having a hard time thinking of games it *wouldn't* apply to.
In FPS games, you could use it for teammates and such. In turnbased strategy games, you could do much the same as in your example, let the AI handle city management and stuff. In a RPG, it could even help keep track of quests and the world map, helping you figure out where you should go next and such.

Share this post


Link to post
Share on other sites
Pfff, wow, that looked great, if I may start with a comment though, the text is really hard to read, is it possible to make it bigger?

I'm just a hobbiest programmer who enjoys playing RTS games very, very much (Total War Series, Cossacks series, Stronghold, Take Command series) and I must say, I would love to see something like this implemented into those games.

I can just picture it, me, the general in Rome: Total War speaking to my subordinates the captains and giving orders (attack, attack right flank, defend that position, defend that position at all costs, retreat, retreat to this certain position, ...) I mean, it would increase the immersion during battle immensely, I could also see a kind of messenger riding up and down during the Napoleonic War or American Civil War bringing messages too and from a general with orders that have to be obeyed but(and this is the fun part, where the captain (in this case, your AI) could advise or ignore certain orders or change them accordingly the enemies counter moves.

Like for instance, you gave orders to attack the right flank, but, your captain( your AI) saw that the enemy AI was strengtening that flank, he could then send for instance a messenger back to tell this and ask for confirmation of that order.

This would be a gods gift if you would have like 40.000 troops and you could have like 5 groups of units of which four had a leader of it's own, controlled by AI and you could give orders.

I can't wait to see this being developed further, I'll surely advertise this on several game forums so others can see what you have created.

One thing that allways seem to be missing is this kind of AI, I really hope you will continue this development and wish you the best of luck with it!

Share this post


Link to post
Share on other sites
amazing work :)

I hope you make this technology available to others.

Once again great stuff.

Share this post


Link to post
Share on other sites
That is very impressive. I think the more slow-moving RTS games are definitely the best sort of target for this sort of technology. Turn-based games would benefit too, although I think people prefer to do their own micromanagement there, with there being no time pressure. It would also work well for the Sim City style of game which is obviously quite similar to an RTS. I think some of the technology shown could make for an interesting NPC companion in an RPG.

Share this post


Link to post
Share on other sites
Thank you all for your comments on my work. It is nice to know that people have the time to look at my work and provide feedback.

What I wanted to do was provide an example of task-oriented communication that would really start to get people to think about what was possible in today's games. From orders given to companions or subordinates, to the ability to immerse a player further into a story or character.

I really want to keep developing this technology and hope that someone can pick it up and use it in their games. Now that I'm done with my PhD, I think I might have to find a job and pay off some of those school loans. But that dream of programming long hours in some-one's basement (or garage) is still in the twinkle of my eye.

As for the clippy reference. Yes, there will have to be a lot of fiddling to figure out exactly how much interaction there should be and to scale it accordingly.

As for the text being small. The small and medium versions have captions, the large does not. Captions really help and the full-screen resolution is overkill in getting the point across.

As for the FPS. For a while I have been hearing about the added abilities of computer controlled teammates in first-person shooters and always cringe slightly on how they have the player control these comrades. I always hang on every word explaining the expanded capabilities hoping to hear of technology like this being introduced, but am always disappointed. However, there are a lot of technology hurtles to overcome before this can really be adopted into the main stream.

Share this post


Link to post
Share on other sites
Out of curiosity, How much of a affect does this have on CPU/Game Performance? Is it something that can be added to mostly any game that doesnt drag performance down with it? Also, How hard would you say this was for you to develope? Is the amount of research into a system like this what could be what is prohibiting it from being implemented into most games?

Just some questions from a curious mind :)

-Limb

Share this post


Link to post
Share on other sites
Quote:
Original post by ibelimb
Out of curiosity, How much of a affect does this have on CPU/Game Performance? Is it something that can be added to mostly any game that doesnt drag performance down with it? Also, How hard would you say this was for you to develope? Is the amount of research into a system like this what could be what is prohibiting it from being implemented into most games?

Just some questions from a curious mind :)

-Limb


I would say that the conversational modeling aspect has very little influence on game performance. The translation into the conversational model depends on the amount of vocabulary you allow your player to express. However, I believe that most scenarios would have a well defined but brief vocabluary and would thus be very little performance loss.

The only other factor would have to be the amount of reasoning an agent is allowed to have. How many variables in the game are they allowed to reason over and how much power are they allowed to use for such things as planning and learning. For carrying out simple instructions and answering simple questions, this would be no impact. For planning out huge plans based on player's objectives and environment variables, this has a potential to bottle-neck a system in poor implementations of reasoning. Cacheing and spacing the algorithm over varying cycles should reduce this impact. It would depend entirely on the role of the agent within the game as well as the game itself, but unfortunately I can't really define the performance hit because I'm not sure of the terminology, and it is fairly subjective; but perhaps, 'minimal' would be suitable.

To me, games are simple enough that the only time you really have to worry about AI is with overly complex environments, such as planning the exact shortest path across thousands of nodes or when the AI is embedded into thousands of entities.

As far as the research. This demonstration was not the focus of my dissertation but a side effect. One of the things my dissertation work created was a theory and methodology for building such systems, independent of the experience of implementors. Following the methodology and given the proper tools, anyone should be able to add this type of technology to their game.

The hinderance of adoption of this technology into most games has to be the development of the parsers capable of taking the complexity of the language medium (text, gesture or spoken) into a machine readable form. The more you allow your player's to say, the more complicated this system will have to be. For example, a lot of the early text-based adventure games were successful because they limited the vocabulary of players to under 1000 words.

I am hoping that a group or company can be created to do a lot of this vocabulary work and add it as a tool, so that would drastically reduce the implementation costs and time for each developer, and would greatly improve the adoption. Furthermore, the framework from the dissertation provides separation between the vocabulary, parsing, dialogue modeling and the agent in such a way that each component can be developed independently. Much like the DirectX abstraction, an agent-based AI entity can be added and versioned as well as a dialogue front-end.

I hope this starts to answer your questions.

Share this post


Link to post
Share on other sites
This is so amazing that it's just very hard to belive is true. I probably won't buy into this until I play with it :)

Share this post


Link to post
Share on other sites
Quote:
Original post by AIResearcher
The hinderance of adoption of this technology into most games has to be the development of the parsers capable of taking the complexity of the language medium (text, gesture or spoken) into a machine readable form.


By this, do you mean the semantic interpretation? I was thinking that the actual language side of things is quite simple. It's the planning and querying for more information that seemed like it might be the bottleneck. Obviously the semantics need customising on a per-game basis.

Share this post


Link to post
Share on other sites
Quote:
Original post by Kylotan
Quote:
Original post by AIResearcher
The hinderance of adoption of this technology into most games has to be the development of the parsers capable of taking the complexity of the language medium (text, gesture or spoken) into a machine readable form.


By this, do you mean the semantic interpretation? I was thinking that the actual language side of things is quite simple. It's the planning and querying for more information that seemed like it might be the bottleneck. Obviously the semantics need customising on a per-game basis.


We may have a miscommunication of terms. The hinderance of adoption would be the limiting factor in game developers accepting this technology and adding it into their own games. The way the human interacted with the agent and what was expressible and what was not. The bottleneck, to me, refers to the processing power taken from the game, which would indeed be the higher-order reasoning of the agent.

As for a discussion of the hinderance caused by language:

From the planning, querying and execution side; once you build atomic actions and elements (such as characters and objects), you can use a standard reasoning engine to build procedures, tasks, and higher-order queries.

On the other side, you can easily build a simple grammar (language) capable of executing commands and simple queries.

It's the expansion of capabilities on either side that allow interaction to go from simple command and control to more expressive statements, such as proposals and mutual planning, discussion over what do to next, emotional stimulous and response, etc...

These are abstracted above the game itself, but yet do have to have some internal model as well as the language recognition to understand exactly when a player is communicating something such as proposing an objective. To me, standard communication policies and structured protocols can handle the address of a proposal and subsequent accept, reject or counter. What is difficult is allowing the various ways that it can be triggered. For example, a proposal could be, "How about we X", "Let's X", "I think we should X", etc...

But perhaps this is allowing too much expression in the language. If one were to limit the expression of a proposal to a single utterance or simple set of utterances, or perhaps even a gui component such as a menu; then the hinderance to adoption would be in the acceptance of that interface.

Share this post


Link to post
Share on other sites
I was blown away by this. I absolutely *must* play a game with this in it.

I would be absolutely thrilled if you could give me (and everyone else on this forum) a donwload to the game you were playing (with the AI assistant in it, of course). Even if it's still in a 'raw' form (not that it looked that way in the video), it would be incredible to play, at least from a technology perspective. Even if I have to type in a "specialized language", I would love to try it out.

Share this post


Link to post
Share on other sites
That is a really cool demo! About time a real AI helps the player manage its base. I have a lot of questions !
On your blog, you say :
Quote:

It is important to realize that the text being entered has been parsed into a specialized language. This means what you see typed has to be encoded by hand, by a human, in order for the agent to understand it.

Does it mean that the questions printed on the screen is not really what was typed ? Which I would understand as it is not very interesting in this situation to type a whole sentence.
And if you really do some NLP parsing, have encoded a few hundred sentence templates that would be common in a RTS game ?
This demo is neat, but after having seen a lot of chatbot sample discussion, you would understand that I am cautious :-) What kind of mistakes can your system do ? Can you list the vocabulary it can understand ?

Can you give some projects that inspired you ? It sort of reminds me of SHRDLU...
What language did you use for tha AI ? Did you code your own inference engine ? Did you use one ?

PS : I am really curious, but I would understand that you have some technical secrets you don't want to share ;-)

Share this post


Link to post
Share on other sites
Quote:
Original post by Ezbez
I was blown away by this. I absolutely *must* play a game with this in it.

I would be absolutely thrilled if you could give me (and everyone else on this forum) a donwload to the game you were playing (with the AI assistant in it, of course). Even if it's still in a 'raw' form (not that it looked that way in the video), it would be incredible to play, at least from a technology perspective. Even if I have to type in a "specialized language", I would love to try it out.


Now that I have successfully defended my dissertation and turned in the final proof, I hope to work towards debugging some of the problems with distribution as well as work toward a front-end NLP parser and release a demo to the gaming community.

Along those lines, If I work both on the technology as well as its implementation within specific games, I will spread myself to thin. I aim to complete a demonstration version of Stratagus / Battle of Survival. However, I am hoping that some of you will want to see this technology for your own game. I would like to hear your game concept, how you hope to incorporate this technology, and any possible screenshots or previous video game experience you have had. Please email me at John@AssistiveIntelligence.net.

Currently, the technology has been developed for a Windows 32-bit platform. However, the code itself is not too dependent on platform specific code, and other platforms may also be viable. However, I currently intend to try to commercialize the technology, and because it is so young, am not inclined at this time to open-source it.

Quote:
Original post by owl
This is so amazing that it's just very hard to belive is true. I probably won't buy into this until I play with it :)


I can understand your reservations and the term 'vaporware' comes to mind with this type of demonstration. All I can offer is that my dissertation committee has seen enough to grant me approval. I hope to release a demonstration version to the gaming community as soon as I can. There are some distribution and packaging issues to overcome, and I would also like to put a nice parser on the front-end.

Share this post


Link to post
Share on other sites
Quote:
Original post by Yvanhoe
That is a really cool demo! About time a real AI helps the player manage its base. I have a lot of questions !
On your blog, you say :
Quote:

It is important to realize that the text being entered has been parsed into a specialized language. This means what you see typed has to be encoded by hand, by a human, in order for the agent to understand it.

Does it mean that the questions printed on the screen is not really what was typed ? Which I would understand as it is not very interesting in this situation to type a whole sentence.
And if you really do some NLP parsing, have encoded a few hundred sentence templates that would be common in a RTS game ?
This demo is neat, but after having seen a lot of chatbot sample discussion, you would understand that I am cautious :-) What kind of mistakes can your system do ? Can you list the vocabulary it can understand ?

Can you give some projects that inspired you ? It sort of reminds me of SHRDLU...
What language did you use for tha AI ? Did you code your own inference engine ? Did you use one ?

PS : I am really curious, but I would understand that you have some technical secrets you don't want to share ;-)


The questions on the screen are hand-coded into a specific internal representation. Later this afternoon, I will be posting a small brief on my blog (http://blog.assistiveintelligence.com) explaining exactly how the process works and providing a script of the demonstration, including the internal representation and some of the processing rules and mechanisms internal to the assistant.

As for inspiration. I developed a mud a while back (based on ROM 2.4) that tried to give creatures the conversational capabilities similar to those found in Ultima V. Keyword driven conversations. That was my initial inspiration into this field. From there, I learned a lot about linguistics, dialogue management, intelligent agents and saw a lot of the state of the art like, TRAINS or COLLAGEN.

The reasoning behind the agent is based on CLIPS / JESS rule-style, but I had to build a limited version of it to overcome the limitation of not being able to nest DEFTEMPLATEs. I limit the actual expressiveness of each rule, so that a protocol modeling system (based on Prioritized Hierarchical Coloured Petri-Nets) can be used to model the individual rules and provide an engineering methodology toward constructing these rules and their resultant conversation models.

There is a separation between the Agent's reasoning and the Conversational Systems's reasoning, they use differen't engines, both just simple ones made from scratch in C++ code.

I hope to post more details on my blog in the aforementioned post.

Share this post


Link to post
Share on other sites
From what I understand, you are typing the commands in by hand to the ai. From the gaming perspective, it seems like the next step might be a voice interface, which at least takes away the step of trying to type while playing.

Share this post


Link to post
Share on other sites
Well it definately has potential with even just giving orders. If you can be doing one thing by hand and given the ai orders to handle something else (like building the squad and grouping them for you).

Share this post


Link to post
Share on other sites
That is the coolest use of a intelegent agent. Expecially if it can remember different ideas from one run to the next.
Including ways of diferentiating plans so far as to not be confused between them (ie be able to 'rush' or 'tech)
It would be really nice if this ever got incorporated into other games.

Share this post


Link to post
Share on other sites
Amazing. You've done some really awesome work. Working for someone else might pay the bills but I think the potential for greater gain would be to turn this into a product.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement