Okay, well I tried my *stoopid* bot against some of the other ones (not all) and it wins about 50/50. Again, it is sooo stupid becase:
1. no pathfinding..
2. no grednades (yet)...
3. faulty ob-collision stuff
it is version 0.4 though!! And if you're using non-v.4 on a v.4 arena, press F10 to skip the long wait (or it might just be my computer..)
err...well I can't get it to upload prop..do it later.
EDIT: got it to work... get Mushu2.zip here!
and...well... I spent some time (well, maybe a lot of time) upgrading it so it *should* be *somewhat* competitive! Enjoy!
-------
[edited by - Mushu on October 20, 2003 3:42:26 AM]
Post your latest bots!
I have not done anything on my bot for about a week due to other commitments, and hence I don't think I am going to be able to finish him in time. I think he will just get scrapped. He was only a debug version, and I was in teh process of making a navigation system for him. My major problem was the time allowance... my system was too complex and would go over. Anyway, in case anyone cares I'll tell you all what he WOULD be able to do if I finished him, and how he did it.
His behaviour was based entirely about one trait. He would try and get into grenade firing range behind the enemy.
He had a 2 part mapping method, which would store info based on an estimate of his coordinates in the map, which would be refined based on this info... he would then update his predicted coordinates and orientation based on what he could see. This meant the map info was very stable, even if he walked into walls and obstacles for a long time. The map he generated contained all obstacles and walls. This part was completed.
His route finding was based on the map. Essentially he would generate a Delaunay triangulation of the map, and from this triangulation check the exits of each edge to see if he could fit through, if so, that was added to his path network. To make a route to a location, he would (weighted) breadth first search the network from his triangle to the destination. This was carried out per frame (could be improved on, but no time).
His senses were all completely indirect. He never directly used the info on what he saw, he would only ever use that to update the map (and enemy/player location info) then do all other calculations (routing etc) via the generated map.
His movement was simply to follow the path defined by the route to the destination triangle, and then to reach the point behind the enemy.
He would, in addition to a required target location, try to always face the location of the enemy bot. This would allow him to see the enemy as early as possible. This was implemented by using (as appropriate) combinations of all movement modes, with no thought for speed (so at some points he would purely strafe and turn).
Based on what he saw of the enemy, he would decide if the enemy could see him.
The enemy prediction was as follows... he would track the enemies location for several frames, and use his final destination to decide what combination of turn, strafe and move was being used at present (as opposed to using a spline). This would be predicted into the future (based on range from destination) to give an estimate of where he is at any time. When the enemy was within a specified range.
When the enemy was not in view, he would continue to follow the predicted enemy (hopefully until he saw the real one)
If not visible to the enemy, he would fire a grenade at a specified angle (I made a cubic approximation of angle vs range) to intersect and detonate on the enemies predicted location. No grenades would mean he used his rifle.
If he is visible to the enemy, he would use the same method, but fire bullets at the enemy (while still navigating to behind the enemy).
Between these two actions, I hoped he would be able to move continuously and hence not require any explicit defense.
No ammo collection ability was even considered, as I hoped they would be dead by then.
Anyway, this bot was/will not be completed for the competition, so I thought I might as well tell you guys what I did in the hope it might give someone a good idea .
I have never programmed AI before, so what do you all think of my setup? Do you think it would have worked, and if not, why not? If you would like any more info or more specific info about how he works (I don't think I'll post source, in case I decide to reuse him in another contest in some form) I will be more than happy to tell you how I did all the bits of him, and any technical info you might want about him.
Hope someone gets something out of this. bye for now
EDIT: A bit of info I thought I should have put in
[edited by - dmounty on October 21, 2003 4:04:21 PM]
His behaviour was based entirely about one trait. He would try and get into grenade firing range behind the enemy.
He had a 2 part mapping method, which would store info based on an estimate of his coordinates in the map, which would be refined based on this info... he would then update his predicted coordinates and orientation based on what he could see. This meant the map info was very stable, even if he walked into walls and obstacles for a long time. The map he generated contained all obstacles and walls. This part was completed.
His route finding was based on the map. Essentially he would generate a Delaunay triangulation of the map, and from this triangulation check the exits of each edge to see if he could fit through, if so, that was added to his path network. To make a route to a location, he would (weighted) breadth first search the network from his triangle to the destination. This was carried out per frame (could be improved on, but no time).
His senses were all completely indirect. He never directly used the info on what he saw, he would only ever use that to update the map (and enemy/player location info) then do all other calculations (routing etc) via the generated map.
His movement was simply to follow the path defined by the route to the destination triangle, and then to reach the point behind the enemy.
He would, in addition to a required target location, try to always face the location of the enemy bot. This would allow him to see the enemy as early as possible. This was implemented by using (as appropriate) combinations of all movement modes, with no thought for speed (so at some points he would purely strafe and turn).
Based on what he saw of the enemy, he would decide if the enemy could see him.
The enemy prediction was as follows... he would track the enemies location for several frames, and use his final destination to decide what combination of turn, strafe and move was being used at present (as opposed to using a spline). This would be predicted into the future (based on range from destination) to give an estimate of where he is at any time. When the enemy was within a specified range.
When the enemy was not in view, he would continue to follow the predicted enemy (hopefully until he saw the real one)
If not visible to the enemy, he would fire a grenade at a specified angle (I made a cubic approximation of angle vs range) to intersect and detonate on the enemies predicted location. No grenades would mean he used his rifle.
If he is visible to the enemy, he would use the same method, but fire bullets at the enemy (while still navigating to behind the enemy).
Between these two actions, I hoped he would be able to move continuously and hence not require any explicit defense.
No ammo collection ability was even considered, as I hoped they would be dead by then.
Anyway, this bot was/will not be completed for the competition, so I thought I might as well tell you guys what I did in the hope it might give someone a good idea .
I have never programmed AI before, so what do you all think of my setup? Do you think it would have worked, and if not, why not? If you would like any more info or more specific info about how he works (I don't think I'll post source, in case I decide to reuse him in another contest in some form) I will be more than happy to tell you how I did all the bits of him, and any technical info you might want about him.
Hope someone gets something out of this. bye for now
EDIT: A bit of info I thought I should have put in
[edited by - dmounty on October 21, 2003 4:04:21 PM]
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement