Embedding an intelligent assistant into real-time strategy.
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?
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.
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.
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!
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!
amazing work :)
I hope you make this technology available to others.
Once again great stuff.
I hope you make this technology available to others.
Once again great stuff.
-www.freewebs.com/tm1rbrt -> check out my gameboy emulator ( worklog updated regularly )
(Insert Clippy joke here.)
--AnkhSVN - A Visual Studio .NET Addin for the Subversion version control system.[Project site] [IRC channel] [Blog]
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.
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.
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.
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
Just some questions from a curious mind :)
-Limb
-Limb
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.
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement