My thesis work: Managing actions through automated planning
-
- Posts: 42
- Joined: Wed Feb 18, 2009 5:26 am
My thesis work: Managing actions through automated planning
The goal of this work is to design and implement an agent which generates hints for a player in first person shooter game. The agent is a computer-controlled character which collaborates with the player to achieve the goal of the game. Such agent uses state of the art reasoning techniques from the area of artificial intelligence planning in order to come up with the content of the instructions. Moreover, it applies techniques from the area of natural language generation to generate the hints. As a result the instructions are both causally appropriate at the point in which they are uttered and relevant to the goal of the game.
The game scenario, called Igor, was developed by me using Irrlicht engine and Irrwizard framework. Extensions are implemented in C++.
As in most FPS games the player is situated in a 3D world where he can perform several actions such as walk, jump, climb stairs, shoot and pick up different items which have different effects. The goal of the game is to kill a creature that is wandering in the 3D world. The creature cannot be killed only by shooting at it because it has a self healing mechanism that needs to be turned off first by dis-activating a series of power rays in a given order.
The agent knows which is the right sequence of rays as well as the position
of each of these rays. It is also able to recognize other items (such as poison
or health) and is aware of their effect. All this information is stored in the
specification that is sent to the planner and the planner returns a sequence of
actions that, if executed in the current state of the game, would achieve the
goal of the game.
You can see a video demostration at
http://www.youtube.com/watch?v=9DzZBXRBgVI
http://www.youtube.com/watch?v=TH-d7iDq-AE
The game scenario, called Igor, was developed by me using Irrlicht engine and Irrwizard framework. Extensions are implemented in C++.
As in most FPS games the player is situated in a 3D world where he can perform several actions such as walk, jump, climb stairs, shoot and pick up different items which have different effects. The goal of the game is to kill a creature that is wandering in the 3D world. The creature cannot be killed only by shooting at it because it has a self healing mechanism that needs to be turned off first by dis-activating a series of power rays in a given order.
The agent knows which is the right sequence of rays as well as the position
of each of these rays. It is also able to recognize other items (such as poison
or health) and is aware of their effect. All this information is stored in the
specification that is sent to the planner and the planner returns a sequence of
actions that, if executed in the current state of the game, would achieve the
goal of the game.
You can see a video demostration at
http://www.youtube.com/watch?v=9DzZBXRBgVI
http://www.youtube.com/watch?v=TH-d7iDq-AE
Last edited by Nikko_Bertoa on Wed Dec 01, 2010 3:50 am, edited 1 time in total.
-
- Posts: 125
- Joined: Thu Dec 11, 2008 9:50 pm
- Location: Wisconsin
- Contact:
Very cool. Just don't let the Call of Duty team get a hold of it, otherwise the shooter generation will become even more dumbed down than it already is..
Honestly though, it is very cool. This could be great for use in early-game tutorials in particular. Reminds me of the introductory tutorial of Splinter Cell in a way ("climb the ladder", "slide down the pole", etc.).
Honestly though, it is very cool. This could be great for use in early-game tutorials in particular. Reminds me of the introductory tutorial of Splinter Cell in a way ("climb the ladder", "slide down the pole", etc.).
-
- Posts: 42
- Joined: Wed Feb 18, 2009 5:26 am
-
- Posts: 42
- Joined: Wed Feb 18, 2009 5:26 am
What happens if the player doesn't follow the instructions but for example collects the ray in a wrong order or gets killed by poison?
IRC: #irrlicht on irc.libera.chat
Code snippet repository: https://github.com/mzeilfelder/irr-playground-micha
Free racer made with Irrlicht: http://www.irrgheist.com/hcraftsource.htm
Code snippet repository: https://github.com/mzeilfelder/irr-playground-micha
Free racer made with Irrlicht: http://www.irrgheist.com/hcraftsource.htm
-
- Posts: 42
- Joined: Wed Feb 18, 2009 5:26 am
-
- Posts: 222
- Joined: Mon Jan 19, 2009 10:03 pm
- Location: Miami, Florida
- Contact:
nice, maybe this could be turned into a cool game by adapting the AI so it can be an assistant or team member that actually moves around and talks to the player.
anyways nice job with this, it did seem to get really confusing though when the text moved too fast in the beginning, I think the AI shouldn't tell you EVERYTHING. instead of "turn left ... see those stairs? ... go down the stairs"
it could say something like "take the stairs behind you". That way the player won't feel like he's not smart enough to find the stairs by himself
anyways nice job with this, it did seem to get really confusing though when the text moved too fast in the beginning, I think the AI shouldn't tell you EVERYTHING. instead of "turn left ... see those stairs? ... go down the stairs"
it could say something like "take the stairs behind you". That way the player won't feel like he's not smart enough to find the stairs by himself
-
- Posts: 42
- Joined: Wed Feb 18, 2009 5:26 am
@grumpymonkey:
Thanks for your comments!!!
Thanks for your comments!!!
I agree, this can be an excellent application of this work.nice, maybe this could be turned into a cool game by adapting the AI so it can be an assistant or team member that actually moves around and talks to the player.
This is an important observation. We need to define the granularity of instructions. Later we will evaluate the system with a lot of people and analyze the results to improve that.anyways nice job with this, it did seem to get really confusing though when the text moved too fast in the beginning, I think the AI shouldn't tell you EVERYTHING. instead of "turn left ... see those stairs? ... go down the stairs"
it could say something like "take the stairs behind you". That way the player won't feel like he's not smart enough to find the stairs by himself
-
- Posts: 42
- Joined: Wed Feb 18, 2009 5:26 am