Difference between revisions of "Basics"

From Gladiabots Wiki
Jump to: navigation, search
Line 21: Line 21:
 
During each second, there are 4 cycles (or ticks) where the bot decides its next action. Once the bot has decided its action, it will execute this action for the entire duration of the tick. In every tick the bot can decide whether or not to attack an enemy, move towards an object, flee from an object, catch a resource (or pick up a resource), drop a resource, secure a resource (or score a resource), tag an object, teamtag an object or even decide to do nothing. Outside of a few edge cases, a bot can detect and use the action another bot or itself was doing in the previous tick to make its decision.
 
During each second, there are 4 cycles (or ticks) where the bot decides its next action. Once the bot has decided its action, it will execute this action for the entire duration of the tick. In every tick the bot can decide whether or not to attack an enemy, move towards an object, flee from an object, catch a resource (or pick up a resource), drop a resource, secure a resource (or score a resource), tag an object, teamtag an object or even decide to do nothing. Outside of a few edge cases, a bot can detect and use the action another bot or itself was doing in the previous tick to make its decision.
  
However, there are some edge case actions that doesn't follow the conventional logic of the actions: (whether it is detecting actions or executing them)
+
However, there are some edge cases that doesn't follow the conventional logic of the actions: (whether it is detecting actions or executing them)
  
* In the very first tick of the game all other bots are detected as idling.
+
* In the very first tick of the game all bots are detected as idling.
 
* If a bot is moving to an object that it can reach within the current tick, it will move there and idle for the rest of the tick. This action will be detected as idling instead of moving.
 
* If a bot is moving to an object that it can reach within the current tick, it will move there and idle for the rest of the tick. This action will be detected as idling instead of moving.
* The closest 2 bots can get to each other is restricted by the collision model. The collision model of a bot is a circle with a radius of ~0.5 meters <span style="color:red">(GFX47 could you be more precise? Are there differences between SN, SG, AS and MG?)</span>
+
* The closest 2 bots can get to each other is restricted by the collision model. The collision model of a bot is a circle with a radius of ~0.5 meters <code><span style="color:red">GFX47 could you be more precise? Are there differences between SN, SG, AS and MG?</span></code>
 
** If one bot moves to another bot and touches it, it will not push the other bot. It will be detected as idle by other bots.
 
** If one bot moves to another bot and touches it, it will not push the other bot. It will be detected as idle by other bots.
* If one bot tries to pass another bot at a very small distance, the two bots will collide and get pushed away from each other.
+
** If one bot tries to pass another bot at a very small distance, the two bots will collide and get pushed away from each other.
 
* If a bot is catching a resource, it will move to that resource until it is within the range where it then picks up the resource and goes into idle. While moving to the resource, it will be detected as moving to the resource. However, on the tick that it picks up the resource, it will be detected as idle unless it picks up the resource at the very end of a tick.
 
* If a bot is catching a resource, it will move to that resource until it is within the range where it then picks up the resource and goes into idle. While moving to the resource, it will be detected as moving to the resource. However, on the tick that it picks up the resource, it will be detected as idle unless it picks up the resource at the very end of a tick.
 
* Securing a resource follows similar rules to catching a resource, with the difference being that it moves to the base instead of a resource. Also, a bot will refuse to secure a resource if it doesn't have a resource picked up already.
 
* Securing a resource follows similar rules to catching a resource, with the difference being that it moves to the base instead of a resource. Also, a bot will refuse to secure a resource if it doesn't have a resource picked up already.
* Both catching and securing a resource can be done ~0.5 meters <span style="color:red">(GFX47 could you be more precise?)</span> away from the resource or base.
+
* Both catching and securing a resource can be done ~0.5 meters <code><span style="color:red">GFX47 could you be more precise?</span></code> away from the resource or base.
 
* If two bots from different teams are close enough to pick up the same resource and try to do so, neither one will do so, and they will idle instead.
 
* If two bots from different teams are close enough to pick up the same resource and try to do so, neither one will do so, and they will idle instead.
 
* The actions dropping a resource, tagging an object or teamtagging an object don't have their own action to detect, and simply are detected as idle.
 
* The actions dropping a resource, tagging an object or teamtagging an object don't have their own action to detect, and simply are detected as idle.
Line 38: Line 38:
 
Although the bot classes have very different shooting behavior, they all share the same shooting process:
 
Although the bot classes have very different shooting behavior, they all share the same shooting process:
  
# The bot will start aiming for the time of their aiming duration.
+
# The bot will start aiming for the time of their [[Bot_classes#Shooting_stats|aiming duration]].
# They will fire a bullet or group of bullets.
+
# They will fire a bullet or group of bullets according to the [[Bot_classes#Shooting_stats|bullet configuration]].
#* Each bullet will either hit with the ''attack power'' or miss completely according to the ''precision''.
+
#* Each bullet will either hit with the [[Bot_classes#Shooting_stats|attack power]] or miss completely according to the ''precision''.
#** The bots ''precision counter'' will increment by its ''precision value''. The precision value is determined by what range the target is in at the moment the bullet is fired. If the target is out of range, the precision value is 0.
+
#** The bots <code>precision counter</code> will increment by its precision value. The [[Bot_classes#Shooting_stats|precision value]] is determined by what range the target is in at the moment the bullet is fired. If the target is out of range, the precision value is 0.
#*** If the ''precision counter'' is greater or equal to 100 the bullet will hit and the ''precision counter'' will be decremented by 100. Otherwise the bullet will miss.
+
#** If the <code>precision counter</code> is greater or equal to 100 the bullet will hit and the <code>precision counter</code> will be decremented by 100. Otherwise the bullet will miss.
#* If they have another shot to take during the attack cycle, they will then wait for the time between shots and repeat step 2. The total time spent shooting all bullets is the attack duration.
+
#* If they have another shot to take during the attack cycle, they will then wait for the [[Bot_classes#Shooting_stats|time between shots]] and repeat step 2. The total time spent shooting all bullets is the [[Bot_classes#Shooting_stats|attack duration]].
 
# continue with 1.
 
# continue with 1.
  
 
== Health, shield, regeneration and bot stats ==
 
== Health, shield, regeneration and bot stats ==
  
All bots have a certain amount of health visualized by the blue or red bar and shield visualized by the white bar. The shield absorbs damage before you take any damage to your health, and can regenerate after the bot isn't damaged for over 3 seconds. Any damage taken to your health is permanent. A fully destroyed shield regenerates in 3 seconds for any bot.
+
All bots have a certain amount of [[Bot_classes#Health.2C_shield_and_regeneration|health]] visualized by the blue or red bar and [[Bot_classes#Health.2C_shield_and_regeneration|shield]] visualized by the white bar. The shield absorbs damage before you take any damage to your health, and can regenerate after the bot isn't damaged for over 3 seconds. Any damage taken to your health is permanent. A fully destroyed shield regenerates in 3 seconds for any bot.
 
+
There is a separate topic discussing [[bot classes]]. It contains information about movement speed, health, shield, regeneration and shooting stats differences.
+
  
 
== Rough thoughts ==
 
== Rough thoughts ==
Line 66: Line 64:
 
https://docs.google.com/spreadsheets/d/1aj34msKKZ8hRhZLtluq4TDM6eG7M2pcCeDfc5s1drKc/edit?usp=sharing <br>
 
https://docs.google.com/spreadsheets/d/1aj34msKKZ8hRhZLtluq4TDM6eG7M2pcCeDfc5s1drKc/edit?usp=sharing <br>
 
https://forum.gladiabots.com/viewtopic.php?f=8&t=17&start=40#p4679 <br>
 
https://forum.gladiabots.com/viewtopic.php?f=8&t=17&start=40#p4679 <br>
<br>
 
gfx<br>
 
https://forum.gladiabots.com/viewtopic.php?f=8&t=17&start=20#p4584 <br>
 
 
<br>
 
<br>
 
https://forum.gladiabots.com/viewtopic.php?f=6&t=225&view=unread#unread <br>
 
https://forum.gladiabots.com/viewtopic.php?f=6&t=225&view=unread#unread <br>
 
https://forum.gladiabots.com/viewtopic.php?f=8&t=545 <br>
 
https://forum.gladiabots.com/viewtopic.php?f=8&t=545 <br>

Revision as of 02:39, 31 August 2017

Maps

Best score map SET YOUR PRIORITIES

Each map contains one or more bot starting positions for each team. Optionally maps can contain team bases and resources. Normally the same amount of bot starting positions and team bases are used for each team and the map objects have usually reflectional or rotational symmetry. Two starting positions or team bases that are symmetric belong to different teams. There exists an instantiation order for the bot starting positions rarely used in the game[1]. Only a subset of all maps is used for ranked multiplayer.

Each map has a size of 50x50 meters. If a bot touches the borders of a map, it will explode. When shooting a bot is able to hit another bot up to a distance of 15 meters. This distance is divided in short range (up to 3 meters), medium range (3 to 8 meters) and long range (8 to 15 meters).

Game modes

Elimination

The objective is to destroy more bots from the other team within the time limit. Bots can be destroyed by shooting them until they lost their shield and health or pushing them to the map borders. A game is evaluated as a draw if no team could destroy more bots after the time limit. The shield or health state of bots is not relevant to this objective.

Best score

The objective is to gather more resources than the other team within the time limit. Resources can be gathered by picking them up and moving them to an allied base. A game is evaluated as a draw if no team could gather more resources after the time limit. Neither the shield or health state of bots nor the count of remaining bots is relevant to this objective.

Bot Actions

During each second, there are 4 cycles (or ticks) where the bot decides its next action. Once the bot has decided its action, it will execute this action for the entire duration of the tick. In every tick the bot can decide whether or not to attack an enemy, move towards an object, flee from an object, catch a resource (or pick up a resource), drop a resource, secure a resource (or score a resource), tag an object, teamtag an object or even decide to do nothing. Outside of a few edge cases, a bot can detect and use the action another bot or itself was doing in the previous tick to make its decision.

However, there are some edge cases that doesn't follow the conventional logic of the actions: (whether it is detecting actions or executing them)

  • In the very first tick of the game all bots are detected as idling.
  • If a bot is moving to an object that it can reach within the current tick, it will move there and idle for the rest of the tick. This action will be detected as idling instead of moving.
  • The closest 2 bots can get to each other is restricted by the collision model. The collision model of a bot is a circle with a radius of ~0.5 meters GFX47 could you be more precise? Are there differences between SN, SG, AS and MG?
    • If one bot moves to another bot and touches it, it will not push the other bot. It will be detected as idle by other bots.
    • If one bot tries to pass another bot at a very small distance, the two bots will collide and get pushed away from each other.
  • If a bot is catching a resource, it will move to that resource until it is within the range where it then picks up the resource and goes into idle. While moving to the resource, it will be detected as moving to the resource. However, on the tick that it picks up the resource, it will be detected as idle unless it picks up the resource at the very end of a tick.
  • Securing a resource follows similar rules to catching a resource, with the difference being that it moves to the base instead of a resource. Also, a bot will refuse to secure a resource if it doesn't have a resource picked up already.
  • Both catching and securing a resource can be done ~0.5 meters GFX47 could you be more precise? away from the resource or base.
  • If two bots from different teams are close enough to pick up the same resource and try to do so, neither one will do so, and they will idle instead.
  • The actions dropping a resource, tagging an object or teamtagging an object don't have their own action to detect, and simply are detected as idle.

Shooting process

Although the bot classes have very different shooting behavior, they all share the same shooting process:

  1. The bot will start aiming for the time of their aiming duration.
  2. They will fire a bullet or group of bullets according to the bullet configuration.
    • Each bullet will either hit with the attack power or miss completely according to the precision.
      • The bots precision counter will increment by its precision value. The precision value is determined by what range the target is in at the moment the bullet is fired. If the target is out of range, the precision value is 0.
      • If the precision counter is greater or equal to 100 the bullet will hit and the precision counter will be decremented by 100. Otherwise the bullet will miss.
    • If they have another shot to take during the attack cycle, they will then wait for the time between shots and repeat step 2. The total time spent shooting all bullets is the attack duration.
  3. continue with 1.

Health, shield, regeneration and bot stats

All bots have a certain amount of health visualized by the blue or red bar and shield visualized by the white bar. The shield absorbs damage before you take any damage to your health, and can regenerate after the bot isn't damaged for over 3 seconds. Any damage taken to your health is permanent. A fully destroyed shield regenerates in 3 seconds for any bot.

Rough thoughts

Is there a different precision value used when shooting from mid of short and mid range
Explain Sniper misses
How fast do bullets travel in the air
Diagrams

sethcohn
http://bit.ly/GladiabotsAttackChart
https://forum.gladiabots.com/viewtopic.php?f=8&t=17&start=20#p4643

mcompany
https://docs.google.com/spreadsheets/d/1aj34msKKZ8hRhZLtluq4TDM6eG7M2pcCeDfc5s1drKc/edit?usp=sharing
https://forum.gladiabots.com/viewtopic.php?f=8&t=17&start=40#p4679

https://forum.gladiabots.com/viewtopic.php?f=6&t=225&view=unread#unread
https://forum.gladiabots.com/viewtopic.php?f=8&t=545