Player Vs Player
by Mohammad · in Game Design and Creative Issues · 02/22/2008 (9:59 am) · 6 replies
I was thinking if it was possible of creating a bot which can copy the player's actions and then the player can go against the bot. So it would be like the player playing against himself. So the bot would attack when you would attack and it would find the right time to attack you to get damage. The bot would use the same tactics as you.
#2
I don't doubt that this bot also used a bit of normal navigation networking, but I do recall that it took quite a bit of play time for the bot to learn to function reasonably on a new map. It's been a long time since I've seen this in action, so I may not recall how it worked correctly.
There are several problems with making this work out.. the first is quite obvious, which is that the player is being recorded fighting a moving target at a specific location, and the tactic it uses there might not be viable in a different location or vs. a different enemy.
Certain common FPS strategies such as circle strafing would be easily recorded and re-used, however the bot would have to make adjustments for the surroundings; it doesn't make sense to just replay the same sequence of movements if the combat is taking place in a small room. This means that the bot would also have to record information about the surroundings the event took place in, such as the size of the space, general terrain orientation, etc.
Realistically, the only simple way I see to handle this is to record actions on a place-by-place basis. Let's use a Counter-Strike example:
In Office, the long hall is a frequent sniper camp spot. Common strategies for taking out these guys involve heavily flashing the hall and rushing or using counter-snipers to pick off the camping snipers. Smoke can also be used combined with a solid rush.
If you played out this scenario, rushing the long hall and killing the snipers, this event could be recorded by the bot and replayed whenever the bot was near the long hall. It would, however, be completely useless in any other location.
In reality I don't see this as a viable way to handle AI in an FPS, but you never said you were creating FPS enemy AI. In a fighting game, where the environments are simple, this might be more viable. This might also work well for a racing game; have a very good player run the track several times and use this data for the AI opponents.
If you just want the bot to mirror your actions, on the other hand, that's pretty easy, but remember what professor Farnsworth said: "Perfectly symmetrical violence never solved anything." :D
02/22/2008 (3:09 pm)
Sounds like he's referring to a bot that records your actions and reuses them at the correct time. I believe that such a bot was once available for Quake (woo, that's going way back).. instead of the standard set of pre-set nodes, or the more modern approach of having the bot process the entire level for assault/defense/cover points on the first startup, it would record player actions and extrapolate strategies from them.I don't doubt that this bot also used a bit of normal navigation networking, but I do recall that it took quite a bit of play time for the bot to learn to function reasonably on a new map. It's been a long time since I've seen this in action, so I may not recall how it worked correctly.
There are several problems with making this work out.. the first is quite obvious, which is that the player is being recorded fighting a moving target at a specific location, and the tactic it uses there might not be viable in a different location or vs. a different enemy.
Certain common FPS strategies such as circle strafing would be easily recorded and re-used, however the bot would have to make adjustments for the surroundings; it doesn't make sense to just replay the same sequence of movements if the combat is taking place in a small room. This means that the bot would also have to record information about the surroundings the event took place in, such as the size of the space, general terrain orientation, etc.
Realistically, the only simple way I see to handle this is to record actions on a place-by-place basis. Let's use a Counter-Strike example:
In Office, the long hall is a frequent sniper camp spot. Common strategies for taking out these guys involve heavily flashing the hall and rushing or using counter-snipers to pick off the camping snipers. Smoke can also be used combined with a solid rush.
If you played out this scenario, rushing the long hall and killing the snipers, this event could be recorded by the bot and replayed whenever the bot was near the long hall. It would, however, be completely useless in any other location.
In reality I don't see this as a viable way to handle AI in an FPS, but you never said you were creating FPS enemy AI. In a fighting game, where the environments are simple, this might be more viable. This might also work well for a racing game; have a very good player run the track several times and use this data for the AI opponents.
If you just want the bot to mirror your actions, on the other hand, that's pretty easy, but remember what professor Farnsworth said: "Perfectly symmetrical violence never solved anything." :D
#3
@ Jason
I was thinking of copying the style of play.
@ Henry
I wanted to create a bot for a fps that would mimic your style of play so for example if you are against someone and you are on low health you would attack and collect health at the same time. That is the type of action I would like my bot to have. Also you would choose the correct weapon for the correct environment like if you were at close cambat you would use a minigun but if you are far away from the target you would use the sniper gun. I would like the bot to do that. Basically if you look at the bots point of view when in combat what would you do in the same situation the bots is in. Thats what I would like to create if its possible.
02/23/2008 (3:49 pm)
Thanks for the replies.@ Jason
I was thinking of copying the style of play.
@ Henry
I wanted to create a bot for a fps that would mimic your style of play so for example if you are against someone and you are on low health you would attack and collect health at the same time. That is the type of action I would like my bot to have. Also you would choose the correct weapon for the correct environment like if you were at close cambat you would use a minigun but if you are far away from the target you would use the sniper gun. I would like the bot to do that. Basically if you look at the bots point of view when in combat what would you do in the same situation the bots is in. Thats what I would like to create if its possible.
#4
02/25/2008 (6:36 am)
I think I know where you're going with this. Rather than try to mimic the player, you might be better off by collecting some simple statistics on the player. Things to note are their favorite areas of the maps, favorite weapons, items, and then give the bot AI a preference for going to those areas or using those items.
#5
05/27/2008 (12:15 pm)
Sorta like Perfect Dark sims?
#6
www.mindspring.com/~win32ch/Reaper.htm
The reaper bot was a really facinating bot to play with back when we all had but 1 current-gen fps to play with, and that was Quake. So I know I personally spent hours with the reapers. My friends and I would all run around with reapers seperately to develope different learned behaviors then pit them against each other. Fun times...
05/27/2008 (1:50 pm)
The Quake bot that Henry is refering to I believe to be the ReaperBot. The author never released the source to it AFAIK, but here's a handy link with info on the bot, where to get it, and how to decompile it's binary and get readable source.www.mindspring.com/~win32ch/Reaper.htm
The reaper bot was a really facinating bot to play with back when we all had but 1 current-gen fps to play with, and that was Quake. So I know I personally spent hours with the reapers. My friends and I would all run around with reapers seperately to develope different learned behaviors then pit them against each other. Fun times...
Torque 3D Owner Jason Ravencroft
Do you mean that it would mimic you in real time or that it would mimic your style of play?