Difference between revisions of "Portia"
Jump to navigation
Jump to search
m (Updated) |
(New video, updated info) |
||
Line 1: | Line 1: | ||
− | {{Youtube| | + | {{Youtube|EJPskFGvGi8}} |
{{Navbox small | {{Navbox small | ||
Line 14: | Line 14: | ||
| movement = [[Minimum Risk Movement|Minimum Risk]], [[Stop And Go]], [[Random Movement|Random]] | | movement = [[Minimum Risk Movement|Minimum Risk]], [[Stop And Go]], [[Random Movement|Random]] | ||
| released = July 2009 | | released = July 2009 | ||
− | | current_version = 1. | + | | current_version = 1.21b |
| license = closed | | license = closed | ||
− | | download_link = http://www.robocoderepository.com/ | + | | download_link = http://www.robocoderepository.com/BotSearch.jsp?botName=Portia |
| isOneOnOne = true | | isOneOnOne = true | ||
| isMelee = true | | isMelee = true | ||
Line 24: | Line 24: | ||
== Background Information == | == Background Information == | ||
− | ; What's special about it? | + | ; What's special about it for you? |
− | : Portia is my first robot | + | : |
+ | :* Portia is my first competitive public robot | ||
+ | :* Portia is my first big solo project in any language; as of writing the sourcecode spans 111 files and is 453kb in size. :) | ||
; How competitive is it? | ; How competitive is it? | ||
− | : In melee it's quite competitive. Highest ever in melee was 2nd place (under Shadow) | + | : In melee it's quite competitive. Highest ever in melee was 2nd place (under Shadow) at 13 September 2009. |
== [[Melee]] strategy == | == [[Melee]] strategy == | ||
Line 43: | Line 45: | ||
; How does it select a target to attack/avoid in [[melee]]? | ; How does it select a target to attack/avoid in [[melee]]? | ||
− | : | + | : With [[Circular Targeting|circular targeting]] it selects the closest opponent, with [[DynamicClustering|Dynamic Clustering]] the ''most hittable'' opponent. |
; What does it save between rounds and matches? | ; What does it save between rounds and matches? | ||
Line 69: | Line 71: | ||
; What's next for your robot? | ; What's next for your robot? | ||
: | : | ||
− | :* I'm thinking that, when it's down to 1 on 1, Portia could preform a lot better. The thing is that conventional "slow-learning" methods aren't very good when you're not facing the same | + | :* I'm thinking that, when it's down to 1 on 1, Portia could preform a lot better. The thing is that conventional "slow-learning" methods aren't very good when you're not facing the same |
− | |||
:* Better guessing of who's firing at Portia in melee. | :* Better guessing of who's firing at Portia in melee. | ||
:* Lobbying to get the army to develop a real tank that uses Portia's code. | :* Lobbying to get the army to develop a real tank that uses Portia's code. | ||
Line 79: | Line 80: | ||
; What it's based on | ; What it's based on | ||
− | : As of version 1.17, Portia uses [[User:Rednaxela/kD-Tree|Rednaxelas kD-tree]]. | + | : As of version 1.17, Portia uses [[User:Rednaxela/kD-Tree|Rednaxelas awesome kD-tree]] (big thanks!). |
: Furthermore, I would like to give some credits for usefull information and tools: | : Furthermore, I would like to give some credits for usefull information and tools: | ||
:* The [[Stop And Go]] was inspired by [[Coriantumr]] by [[User:Kawigi|Kawigi]]. | :* The [[Stop And Go]] was inspired by [[Coriantumr]] by [[User:Kawigi|Kawigi]]. |
Revision as of 17:07, 13 September 2009
- Sub-pages:
- Version History
Portia | |
Author(s) | Positive |
Extends | AdvancedRobot |
Targeting | Semi-Circular, GuessFactor, Dynamic Clustering |
Movement | Minimum Risk, Stop And Go, Random |
Released | July 2009 |
Current Version | 1.21b |
Code License | closed |
Download |
Background Information
- What's special about it for you?
-
- Portia is my first competitive public robot
- Portia is my first big solo project in any language; as of writing the sourcecode spans 111 files and is 453kb in size. :)
- How competitive is it?
- In melee it's quite competitive. Highest ever in melee was 2nd place (under Shadow) at 13 September 2009.
Melee strategy
- How does it move?
- For each opponent, if Portia detects an enemy energy drop, linear and/or headon shots are simulated from the guessed enemy fire turn and position. Portia tries to avoid simulated shots, and also tries to never be the closest opponent to any enemy. Portia remembers the enemy energy drops, and correlates hits to itself to them.
- How does it fire?
- Portia has different methods, which are marked by color (if you turn on Paint)
- Blue - primary gun: circular targeting
- Yellow - Dynamic Clustering
- Cyan - simple bot targeting (mainly for sample bots and bots derived from them)
- Red - Head-On Targeting (mainly for disabled bots)
- How does it select a target to attack/avoid in melee?
- With circular targeting it selects the closest opponent, with Dynamic Clustering the most hittable opponent.
- What does it save between rounds and matches?
- Between rounds, it saves general linear-targeting info. If an opponent only seems to be shooting with Head-On Targeting like HawkOnFire, it remembers that between matches.
One-on-one strategy
- How does it move in One-on-one?
- Until the end game, it first tries to use Stop And Go-like movement, and if the opponent seems to catch on it switches to Random Movement. At the end game, it will try to get very close to the opponent to give the final blow. :)
- How does it fire?
- It uses a very fast decaying patternmatching-like gun.
- What does it save between rounds and matches?
- Between rounds it saves targeting info if the match started with only one opponent. Otherwise it saves nothing. It saves nothing between matches.
Additional Information
- Where did you get the name?
- "Portia" is the name of a spider I'm somewhat fascinated with. The spider is extremely intelligent (considering its size & that it's a spider): it can hunt using a plethora of methods, and attacks and defends itself strategically. I thought that name was a great fit. :) You can read more about the spider on Wikipedia.
- Can I use your code?
- At the moment I'm keeping it closed source. Turn on paint to get an idea what it's thinking though. :)
- What's next for your robot?
-
- I'm thinking that, when it's down to 1 on 1, Portia could preform a lot better. The thing is that conventional "slow-learning" methods aren't very good when you're not facing the same
- Better guessing of who's firing at Portia in melee.
- Lobbying to get the army to develop a real tank that uses Portia's code.
- Anything interesting I hear or find out about. :)
- Does it have any White Whales?
- Diamond and Shadow in melee.
- What it's based on
- As of version 1.17, Portia uses Rednaxelas awesome kD-tree (big thanks!).
- Furthermore, I would like to give some credits for usefull information and tools:
- The Stop And Go was inspired by Coriantumr by Kawigi.
- The solo gun has really benefited from his GuessFactor Targeting Tutorial as well.
- The idea of visual danger circles comes from Shadow by ABC.
- The melee dodging is much easier to test thanks to the debugging graphics of Gladiator by KID.
- I've found Diamond by Voidious also very useful to test the solo targeting with because of its graphics, although Portia can't quite hit it yet. :)
- TronsGun page by ABC for the main ideas I used for developing the Dynamic Clustering gun.