View Full Version : Bot Ideas
ahat
Aug 11, 2006, 11:41 AM
It's been awhile, but..
Discuss.
Fawriel
Aug 11, 2006, 12:51 PM
1. Should work.
jam
Aug 11, 2006, 01:18 PM
Wait for Octopus, then discuss.
Cpp
Aug 11, 2006, 02:02 PM
Self-learning :D
FireSworD
Aug 11, 2006, 04:19 PM
Yes, nothing with specific level based limitations.
Make them smart.
Monolith
Aug 11, 2006, 06:42 PM
Bot ideas? Yes I still have a few. What about them?
blurredd
Aug 11, 2006, 08:35 PM
Bots would work a lot more effeciently if specific strategies and paths could be programmed in depending on the level. But the bots should still be able to play smart otherwise.
KRSplat
Aug 11, 2006, 11:25 PM
I want a bot that can do anything.
Xobim
Aug 12, 2006, 02:37 AM
patrols via area id...
Black Ninja
Aug 13, 2006, 08:17 PM
I've got an idea, and it's being worked on. With any luck all you sad sacks might even see it someday.
Dermo
Aug 14, 2006, 09:18 AM
maybe an auto play bot or something. Something that could make like a teamfoo level played by 4 people when you only have 2 other people in the server to make a race against the clock. Actually, that would be more of a macro but whateva.
ahat
Aug 14, 2006, 11:46 AM
Keep discussing.
ahat
Aug 17, 2006, 01:58 PM
Anything useful? Anyone?
minmay
Aug 17, 2006, 04:02 PM
How about "don't post if you have nothing to say?"
DanYjel
Aug 17, 2006, 05:35 PM
I want a bot that looks like Donatello from Ninja Turtles and with cap like Fooruman's one but with heart of... Leonardo DiCaprio!
Else, don't make bots.
R3ptile
Aug 17, 2006, 11:40 PM
Leonardo DiCaprio!
:r :r :r
DanYjel
Aug 18, 2006, 12:50 AM
:O :O :O you're vomitting into OUR forum :(
Clean it.
NovaStar
Aug 18, 2006, 04:28 AM
GET A CLOTH AND CLEAN IT UP
<uhhh>
Camou
Aug 18, 2006, 07:29 AM
Hm, choosing what kind of weapon he fires if you don't want him to pick up everything? So to practice dodging seeks and bouncys and stuff...
Xobim
Aug 18, 2006, 08:07 AM
Bots that attack annoying and spamming players.
Onag
Aug 18, 2006, 08:14 AM
I think the best solution would not include area ids, programmed paths, or anything like that.
Bots should be able to read the level data and extract the masking information. They should then keep a record of where all players are (which is obviously possible based on the JazzVCR screenies.
Rules:
1) Bots are not allowed to use player locations in their decision-making AI unless the player is in range (i.e. on the bot's "screen").
2) Bots can make assumptions about where a player is going based on his/her last "known" location and direction.
3) Bots cannot "cheat" by searching the level data for power-ups, health, etc., but they can remember locations where they see these items.
4) Bots can use a level's mask data and path-finding algorithms to figure out the best way to get to any given location.
5) I don't know. More stuff.
-Nag
Xobim
Aug 18, 2006, 08:53 AM
And won't all that calculating lag the game terribly?
ahat
Aug 18, 2006, 09:20 AM
First of all, thank you Onag for the only productive response.
Secondly, if you're not going to post anything aside from random spam, don't post at all. :)
Thirdly, it doesn't have to be a 'play bot', anything goes.
minmay
Aug 18, 2006, 09:32 AM
And won't all that calculating lag the game terribly?
No?
cooba
Aug 18, 2006, 09:35 AM
No?Or maybe yes? :H
Cpp
Aug 18, 2006, 09:49 AM
I had given bots some thought in the past. Basically what you're creating here is not all that easy to do. Making a decent AI is a very tough job as you have to consider many different possibilities the game might throw at your bot. It works pretty much the Lego's where you have to make the small parts and then put them together the way they fit to form a whole. Based on the parts I mentioned, you easily could break down some of the AI into the following sections:
Navigation
The ability to navigate through the level, remember where powerups/carrots/ammo/ctf bases/etc. are, ability to take warps as shortcuts, ability to learn how to play the level based of what actions (that the bot performed in the past) were more successful over others making the bot choose the action which has a greater chance of success over the ones with lower chance, etc.
Combat
This is where it comes to defeating the enemy. It includes the ability to choose proper weapons from proper situation, prediction of what the enemy might do next, avoidance of enemy gunfire, ability to use terrain to its advantage, observe what other 1337 players do and try to learn from them, etc.
Tactic
Having enough navigation over the level and enough combat skills does not neccessarily make bot good, such bot would still be "dumb". This is where tactic skill comes in place. Some things it includes would be the ability to find the fastest way from enemy flag base to home flag base, take decisions based on the current status of the bot and/or game (health, availavle weaponry, location, game victory conditions) - should the bot go after the enemy flag, assist the ally flag carrier, go after the enemy flag carrier or defend the base, should he search & destroy the players or look for carrots when low on health, etc.
Interface
Here is how you communicate with the bot, give him orders or at least make him try to figure out what the other players are doing so that he may enter the teamwork.
The above sections are by no means a complete list and I'm sure you could come up with a bunch more yourself and/or finetune mine, however I'm not here to make the dirty work for you, I'm simply giving you the general idea of how I imagine a good AI should be structured.
I'll give you an example of how I imagined the tactical part of the bot. Personally I would make the bot form a list of preferred actions he can do based on the current game status. Suppose your bot plays a CTF match with 3 players on red, the bot and 2 other human players on blue. The bot currently has the flag in possesion, but is very low on health and close to home base. One of the enemy players also has your flag in possesion. So now the big question...
What to do?
Status: You have enemy flag in possesion
Question: Is your team flag in base?
Answer: Yes Action: Score a point
Answer: No Action: Enemy has your flag => What to do?
Alright by this point it's clear that the bot would choose the "Enemy has your flag" part.
Status: Enemy has your flag
Option: Take best defensive action Probability: High Reason: Teammates are present. They can go after the flag carrier.
Option: Go after enemy flag carrier Probability: Low Reason: You have flag and teammates are present, unneccessary risk.So now the bot would figure that there are teammates on his side that can and will go after the enemy flag carrier. The best thing for him would be to stay home and try avoid any enemy contact. He should also try to replenish his health as seen in next status:
Status: Low on health
Option: Replenish health Probability: Vey High Reason: You have flag and are low on health.
So based on the decisions taken, the bot would make a list of all actions he can undertake and choose among those with biggest importance - this means he would do actions with greater probability more frequently than those with lower probability. For example: Collecting health over collecting ammo, staying home over going after enemy flag carrier, etc. The actions can change at any moment (take it the enemy flag carrier has fallen for example) so the bot would have to keep an eye out on the status and choose the proper action accordingly.
Here's how the final list of actions would look like:
Action: Look for health
Probability: 100%
Reason: Low on health and have flag in possesion
Action: Avoid enemy contact
Probability: 90%
Reason: Must stay alive
Action: Stay close to home base
Probability: 80%
Reason: Easier to score faster
Action: Search for ammo
Probability: 10%
Reason: Most of weapons have sufficient ammo
Action: Combat enemy players
Probability: 10%
Reason: Unneccessary risk, must stay alive
Action: Seek out and destroy the enemy flag carrier
Probability: 5%
Reason: Unneccessary risk
Action: Score a point
Probability: 0%
Reason: Impossible, enemy has flag
And after the enemy flag carrier fell:
Action: Score a point
Probability: 100%
Reason: Game win condition
Action: Avoid enemy contact
Probability: 90%
Reason: Must stay alive
Action: Stay close to home base
Probability: 90%
Reason: Easier to score faster
Action: Look for health
Probability: 60%
Reason: Low on health and have flag in possesion
Action: Search for ammo
Probability: 0%
Reason: Irrelevant
Action: Combat enemy players
Probability: 0%
Reason: Unneccessary risk, must stay alive, irrelevant
Action: Seek out and destroy the enemy flag carrier
Probability: 0%
Reason: Does not exist
That's all I have to say for now. Please note that I have written this briefly and I'm sure you could find some parts questionable, however as I stated, making a decent AI is not an easy task. If you find yourself undertaking the task to make an AI, I strongly recommend that you first build a prototype of it on the drawing board.
~Ol
blurredd
Aug 18, 2006, 08:05 PM
If you aren't doing this already, you might want to make this a group project. Others seem to really know what they are talking about, and you seem to need a lot of suggestions.
Superjazz
Aug 18, 2006, 11:58 PM
One idea could be also different AI-smartness, or difficulty better said. While in game with multiple bots all they could be set on custom difficulties, so the bots-controller(mainly considered as host) could balance teams by his favor.
The difficulty could affect several things on the AIs.
-General movement and flow over the level(lower AI-level slows down the bot.)
-About the earlier mentioned smartness to switch to a suitable ammo-type for a certain situation, as in actually smartness to search for decent ammo(Could be done with some dice-concept.)
-Smartness to actually shoot in case an opponent encounters. The bot could either shoot some even in possible regions he might be facing the opponent, or spare some important ammo also(done a lot by experienced players.) If lower AI-level, it would shoot only when it clearly notices an opponent in it's area of vision, and with worse aim perhaps.
-In team-games a bot with lower AI-level could as well limit it's team-chat(optionally), for example if the bot had the flag it could just forget reporting it's health-change unless it is requested, most likely with "h".
Then something I thought also about, was how the bot would act with it's specified character. More of floating as Jazz, better flow as Spaz. Or are the bots supposed to be only Spazzes?
However, I am not familiar with any kind of programming(yet at least.) So all I can do are some suggestions for now.
R3ptile
Aug 19, 2006, 01:49 AM
What about RF climbing and pickup timing?
NovaStar
Aug 19, 2006, 10:44 PM
And like special move selections like RF climbing as noted above?
Cpp
Aug 20, 2006, 04:27 AM
Also here's a nice history thread on this topic (please don't revive it):
http://www.jazz2online.com/jcf/showthread.php?t=5409
Black Ninja
Aug 21, 2006, 05:10 PM
I'm interested in recruiting a team of talented individuals to work on creating a successful bot for JJ2. I've got the general plans, I've got the hex addresses we'd need, and I've got a need for programmers. Please PM me if you think you have skills I'll need. Also, Neobeo, I need to talk to you about this. Please PM me when you get the chance.
vBulletin® v3.8.2, Copyright ©2000-2025, Jelsoft Enterprises Ltd.