Hi, I announce a new version of Dookious Team.
In this version, Dookious is capable:
* broadcasting messages about our's and enemy fire
* avoiding any bullet we know about (our bot, enemy bot we know he fired)
And NOT capable:
* coordinated shooting, moving, scanning
Pls, use Robocode ver. 1.6.1.4, the new beta is somewhat .. it dont work.
December 11, 2008
December 4, 2008
Team creation
Ok, suppose we have our bot (could be Dookious, maybe other)
Good start is with http://robowiki.net/cgi-bin/robowiki?Teams, which says about common team rules.
Let's say we have Dookious, we need to:
- ensure we shoot only at the enemy ;-)
- collision detection
- think about scanning techniques (one2one scan, one bot could continuously update all space, ...)
- modify the waves to support more than 1 opponent, and let them be shared among all of our bots (could I define the class static to share? - I can't :-( see the bottom of game physics)
- add to waves our own bullets (to avoid them)
- shoot in way to maximalize hit probability (eg shoot in a matrix pattern, or randomly distorted..)
Good start is with http://robowiki.net/cgi-bin/robowiki?Teams, which says about common team rules.
Let's say we have Dookious, we need to:
- ensure we shoot only at the enemy ;-)
- collision detection
- think about scanning techniques (one2one scan, one bot could continuously update all space, ...)
- modify the waves to support more than 1 opponent, and let them be shared among all of our bots (could I define the class static to share? - I can't :-( see the bottom of game physics)
- add to waves our own bullets (to avoid them)
- shoot in way to maximalize hit probability (eg shoot in a matrix pattern, or randomly distorted..)
Test teams
Unfortunately, robowiki is actually down, I will update this after it's up (links, stats and more teams).
abc.ShadowTeam - the TOP team in roborumble, but as I see it, it has a lot to improve (and thus we can take advantage)
wiki.twin.KomariousTeam_1.0 - I currently use these two bots, they're competitive for my edited Dookious
...
abc.ShadowTeam - the TOP team in roborumble, but as I see it, it has a lot to improve (and thus we can take advantage)
wiki.twin.KomariousTeam_1.0 - I currently use these two bots, they're competitive for my edited Dookious
...
November 25, 2008
Dookious
http://robowiki.net/cgi-bin/robowiki?Dookious
The one of the best robots at 1v1.
Really a duelist bot only, BUT - I looked at it's code and .. maybe we could transform it into a team player.
Atomicity of actions is really not his big advantage. I thought about 'hardcoded' behaviour for teams. Like avoiding each other's fire, colisions, cooperation and so on.
Dunno if is this our task?
As I said before, I don't beleive Robocode is good platform for some big planning due to lack of information about a state of world (environment).
Movement: Wave surfing
Radar: Tight lock
Aiming: GuessGun, AntiSurfer Gun
The one of the best robots at 1v1.
Really a duelist bot only, BUT - I looked at it's code and .. maybe we could transform it into a team player.
Atomicity of actions is really not his big advantage. I thought about 'hardcoded' behaviour for teams. Like avoiding each other's fire, colisions, cooperation and so on.
Dunno if is this our task?
As I said before, I don't beleive Robocode is good platform for some big planning due to lack of information about a state of world (environment).
Movement: Wave surfing
Radar: Tight lock
Aiming: GuessGun, AntiSurfer Gun
Roborumble
So, it seems that fights between bots are not as dead as I thought. Just be careful in search and you will find ... http://robowiki.net/cgi-bin/robowiki?RoboRumble!
Check page at http://robowiki.net/cgi-bin/robowiki?RoboRumble/CurrentRankings, battles are held (almost) every day.
So, problem with competitions is solved.
Check page at http://robowiki.net/cgi-bin/robowiki?RoboRumble/CurrentRankings, battles are held (almost) every day.
So, problem with competitions is solved.
November 21, 2008
Too much thinking.. (or - my sceptical view)
Okay, let's sum up:
I think, that bruteforcing all possible options is not the way... Lets say we have these few possible options per turn:
move into 6 possible places (it's too few, is it?), turn gun somewhere, shoot...
we can of course do all those thing simultaneously, so ... lets just say we have 12 options per turn. Oponent has again 12 options... Thats 24.
We should think at least 10 turns ahead...that's 24^10.... incredible.
With alfa-beta pruning, we could reduce it (with really optimistict view) twice...
NOT REALIZABLE.
Ok, anyway - we don't have a full information about the current state - we do not know, where oponent shooted for example, so we do not know, where the bullet is :-/.
So we end up with probabilities anyway.
To planning with A*
We just said, we dont have a full account of situation. So.. we can't plan where to hide! We can't plan, where to shoot (we do not know the way our opponent is moving)...
I dunno, if we knew everything about situation, we could plan really well...
There're not any obstacles, so we can't even plan how to use'em.
So, we always need those low-level things like shooting prediction, movement prediction, and even radar...
We could improve wave-surfing - to choose any point achievable instead of surfing only the wave (be always perpendicular).
I tried to invent some sort of bot my supperior asked (m. Rohlik), but after a short while I realized...
This need some more discussion, I dont think we could do such things in Robocode.
I think, that bruteforcing all possible options is not the way... Lets say we have these few possible options per turn:
move into 6 possible places (it's too few, is it?), turn gun somewhere, shoot...
we can of course do all those thing simultaneously, so ... lets just say we have 12 options per turn. Oponent has again 12 options... Thats 24.
We should think at least 10 turns ahead...that's 24^10.... incredible.
With alfa-beta pruning, we could reduce it (with really optimistict view) twice...
NOT REALIZABLE.
Ok, anyway - we don't have a full information about the current state - we do not know, where oponent shooted for example, so we do not know, where the bullet is :-/.
So we end up with probabilities anyway.
To planning with A*
We just said, we dont have a full account of situation. So.. we can't plan where to hide! We can't plan, where to shoot (we do not know the way our opponent is moving)...
I dunno, if we knew everything about situation, we could plan really well...
There're not any obstacles, so we can't even plan how to use'em.
So, we always need those low-level things like shooting prediction, movement prediction, and even radar...
We could improve wave-surfing - to choose any point achievable instead of surfing only the wave (be always perpendicular).
I tried to invent some sort of bot my supperior asked (m. Rohlik), but after a short while I realized...
This need some more discussion, I dont think we could do such things in Robocode.
November 18, 2008
Robocode repository back
Hail to the creator, the legendary Robocode repository is back up.
http://robocoderepository.com/
Feel free to share your bot :-)
http://robocoderepository.com/
Feel free to share your bot :-)
November 17, 2008
November 9, 2008
To choose a bot
can be suprisingly difficult. Providing we are to use A* algorithm to plan our actions, we basically do not need an advanced bot with super abilities.
We should be fine with following actions:
-(de)accelerate
-turn left/right
-turn gun left/right
-fire
Radar is an autonomous unit.
Why an advanced bot? We wouldnt be able to use his abilities anyway.
We should be fine with following actions:
-(de)accelerate
-turn left/right
-turn gun left/right
-fire
Radar is an autonomous unit.
Why an advanced bot? We wouldnt be able to use his abilities anyway.
Tasks
[nejvyssi priorita -- cca tyden]
- vybrat kandidaty na naseho clena tymu (modularita, atomicita akci)
- provedte vyber nekolika (cca 3-10) kvalitnich botu, kteri
se dobre umistuji v Melee zebricich (udelejte zebricek
sam, pokud to bude treba)
- uzsi vyber, prosim, komentujte; zamerte se na duvody proc
jsou boti, kteru se dostali do uzsiho vyberu vhodnejsi
pro Vasi praci nez ostatni; sekundarne lze diskutovat
targeting, movement a (pokud je) planovani/strategie
- najit testovaci tymy na internetu
- popiste v komunite bezne typy slozeni tymu (alternativy k 3v3)
- testovaci platforma (server Vas public nebo cizi public)
- vysledky testovani cizich tymu
- zebricek s Vasim komentarem
- publikujte sveho bota (zdrojaky volne nebo s heslem
- vybrat kandidaty na naseho clena tymu (modularita, atomicita akci)
- provedte vyber nekolika (cca 3-10) kvalitnich botu, kteri
se dobre umistuji v Melee zebricich (udelejte zebricek
sam, pokud to bude treba)
- uzsi vyber, prosim, komentujte; zamerte se na duvody proc
jsou boti, kteru se dostali do uzsiho vyberu vhodnejsi
pro Vasi praci nez ostatni; sekundarne lze diskutovat
targeting, movement a (pokud je) planovani/strategie
- najit testovaci tymy na internetu
- popiste v komunite bezne typy slozeni tymu (alternativy k 3v3)
- testovaci platforma (server Vas public nebo cizi public)
- vysledky testovani cizich tymu
- zebricek s Vasim komentarem
- publikujte sveho bota (zdrojaky volne nebo s heslem
November 6, 2008
Concerning use of A* in planning approach
Elementar actions put together (in chain) to achieve a goal - use of A* algorithm.
Problem: we do not have full information about the state in every moment - caused by radar (enemy can move and we do not know that) - solution: approximation of enemy path & dividing radar to its own field = move radar with different algorithm than A*
A* - movement, targeting
other - radar (scan only suitable areas, update last enemy seen, ...)
Another approach - A* for basic movement/targeting and different algorithm for precise (wave bullets, ...)
Problem: we do not have full information about the state in every moment - caused by radar (enemy can move and we do not know that) - solution: approximation of enemy path & dividing radar to its own field = move radar with different algorithm than A*
A* - movement, targeting
other - radar (scan only suitable areas, update last enemy seen, ...)
Another approach - A* for basic movement/targeting and different algorithm for precise (wave bullets, ...)
October 15, 2008
AI
Artificial Intelligence. That is a quite interesting topic and I might publish some theories at this site as well.
I am quite interested in things like human brain simulation with artificial neural networks.
This is not realizable on common HW - I made few experiment myself. I was able to simulate 0nly thousands of neurons with few tens synapses each.. That's not even a slight of which our brain is capable.
I read an interesting article in a magazine about this - about specialized processor architecture... I might post it here if I find a resource.
Or artificial environments with defined rules - you know Norns?
Life adaptation, artificial DNA - again - our computer power is too small for that at the moment.
Robocode is rather a small environment where you can play with AI.
I am quite interested in things like human brain simulation with artificial neural networks.
This is not realizable on common HW - I made few experiment myself. I was able to simulate 0nly thousands of neurons with few tens synapses each.. That's not even a slight of which our brain is capable.
I read an interesting article in a magazine about this - about specialized processor architecture... I might post it here if I find a resource.
Or artificial environments with defined rules - you know Norns?
Life adaptation, artificial DNA - again - our computer power is too small for that at the moment.
Robocode is rather a small environment where you can play with AI.
October 8, 2008
A bot
Which is a bot made of?
That is the main question in building phase.
Bot has 3 main parts:
-radar (used for determining where the other bot is)
-movement (used to avoid enemy bullets)
-targeting (used to increase the probability of hitting the oponent)
Each part is a complex piece. Basically, they are divided, but of course they need to comunicate.
More about radars
More about movement
More about targeting
That is the main question in building phase.
Bot has 3 main parts:
-radar (used for determining where the other bot is)
-movement (used to avoid enemy bullets)
-targeting (used to increase the probability of hitting the oponent)
Each part is a complex piece. Basically, they are divided, but of course they need to comunicate.
More about radars
More about movement
More about targeting
October 7, 2008
Teamwork
The main aspect of Robocode is that your bots can work as a team. This brings a complete new view to the game and, in fact, it is my main field of research in this game. It require quite a different kind of intelligence than ussual battles.
Yet, most popular type of game are common 1v1 battles.
Yet, most popular type of game are common 1v1 battles.
What is Robocode?
Robocode is a name for a fictional computer environment, where programmed bots can compete in the name of their creator on an everlasting way to a victory.
The environment basicaly consists of a 2D arena and the bots themselves - both with defined rules. It also offers an essential API. I should mention, that this API is for Java language.
The main problem in this "game" lies in an artifical intelligence you can build. With your logical and programming skills you can assemble a bot superior to others. Of course, it is always relative and you usually find a bot, which is better than yours.
When you assemble a new bot (or improve your current), you can send him to a real competition organized by authorities. This option offers direct and honest comparision between all bots available.
The environment basicaly consists of a 2D arena and the bots themselves - both with defined rules. It also offers an essential API. I should mention, that this API is for Java language.
The main problem in this "game" lies in an artifical intelligence you can build. With your logical and programming skills you can assemble a bot superior to others. Of course, it is always relative and you usually find a bot, which is better than yours.
When you assemble a new bot (or improve your current), you can send him to a real competition organized by authorities. This option offers direct and honest comparision between all bots available.
Subscribe to:
Posts (Atom)