Difference between revisions of "Basics"

From Gladiabots Wiki
Jump to: navigation, search
(Bot Actions)
Line 15: Line 15:
 
== Time and Space ==
 
== Time and Space ==
  
Each map has a size of 50x50 units. Each bot can shoot another bot up to the distance of 15 units. This distance is divided in short range (up to 3 units), medium range (3 to 8 units) and long range (up to 8 to 15 units).
+
Each map has a size of 50x50 units. Each bot can shoot another bot up to the distance of 15 units. This distance is divided in short range (up to 3 units), medium range (3 to 8 units) and long range (8 to 15 units).
  
 
Each second of the game time is divided in 4 ticks each with a duration of 250 milliseconds. At the beginning of a tick each bot uses its program to ''think'' what the next action should be. Then it executes this action for the duration of the tick. As the current time limit is 5 minutes in normal speed, the whole game lasts 1200 ticks.
 
Each second of the game time is divided in 4 ticks each with a duration of 250 milliseconds. At the beginning of a tick each bot uses its program to ''think'' what the next action should be. Then it executes this action for the duration of the tick. As the current time limit is 5 minutes in normal speed, the whole game lasts 1200 ticks.
 
== Rough thoughts ==
 
  
 
== Bot Actions ==
 
== Bot Actions ==
  
=== Idle ===
+
What happens in detail if a bot performs a given action:
  
If a bot idles one tick it doesn't move.
+
* Moving and fleeing
 +
** If a bot '''moves''' to a target location that is '''within the range''' accessible by the current tick, then it moves there and idles for the rest of the tick. This action will be detected as '''idling''' in the next tick.
 +
** If a bot '''moves''' to a target location that is '''out of the range''' accessible by the current tick, then it moves as far as it could in the current tick. This action will be detected as '''moving''' in the next tick.
 +
** If a bot '''flees''', then it flees as far as it could in the current tick. If the bot leaves the map by fleeing it will explode. This action will be detected as '''fleeing''' in the next tick.
 +
** If two bots come to close to each other when one or both of them are moving or fleeing, they collide and get pushed away from each other.
 +
* Catch resource, secure resource, drop resource
 +
** If a bot '''catches a resource''' that is '''within the range''' accessible by the current tick, then it moves there, picks up the resource and idles for the rest of the tick. This action will be detected as '''idling''' in the next tick.
 +
** If a bot '''catches a resource''' that is '''out of the range''' accessible by the current tick, then it moves as far as it could in the current tick. This action will be detected as '''moving to a resource''' in the next tick.
 +
** If a bot '''secures a resource''' to a base that is '''within the range''' accessible by the current tick, then it moves there, scores the resource and idles for the rest of the tick. This action will be detected as '''idling''' in the next tick.
 +
** If a bot '''secures a resource''' to a base that is '''out of the range''' accessible by the current tick, then it moves as far as it could in the current tick. This action will be detected as '''moving to base''' in the next tick.
 +
** If a bot '''drops a resource''' doesn't move for the whole tick. This action will be detected as '''idling''' in the next tick.
 +
* Idle, tag, team tag
 +
** If a bot '''idles''', tags or team tags it doesn't move for the whole tick. This action will be detected as '''idling''' in the next tick.
  
Moving or Fleeing, Idle
+
== Rough thoughts ==
Catch Resource, Secure Resource, Drop,
+
Attacking
+
Picking
+
Delivering
+
Tag or team tag
+
 
+
collisions while moving / Collision size.
+
2 bots want to pick up the same resource
+
 
+
 
+
if I pick up a resource
+
or deliver a resource
+
 
+
If you score a resource before the end of a tick, your bot will go into idle and will be read by other bots as idle for thst tick.
+
 
+
If I could move 100 units and the resource / base is only 50 units away. What happens if I pick up or deliver a resource. 0.125 seconds moving + 0.125 seconds  idling? What does the enemy see? Move or idle?
+
The opponent sees idle in this case and you should move for around 65.2 ms and idle in until the full 125 ms has passed
+
 
+
 
+
 
+
Moving
+
If I drop a resource, is the whole tick wasted?
+
Resources collect / drop - does it spend a whole tick? Yes
+
What is the distance a resource can be taken already? Requires testing (or ask gfx)
+
 
+
Move speed
+
 
+
 
+
 
+
\*should be a different section for this\*
+
  
Attack damage algorithm Cooldown for recharging shield time to recharge shield.
+
Attacking<br>
 +
Collision size of bots<br>
 +
2 bots want to pick up the same resource<br>
 +
What is the distance a resource can be taken already? Requires testing (or ask gfx)<br>
 +
Move speed<br>
 +
<br>
 +
There should be a different section for this:<br>
 +
<br>
 +
Attack damage algorithm<br>
 +
Cooldown for recharging shield time to recharge shield.<br>

Revision as of 17:10, 27 August 2017

Maps

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.

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.

Time and Space

Each map has a size of 50x50 units. Each bot can shoot another bot up to the distance of 15 units. This distance is divided in short range (up to 3 units), medium range (3 to 8 units) and long range (8 to 15 units).

Each second of the game time is divided in 4 ticks each with a duration of 250 milliseconds. At the beginning of a tick each bot uses its program to think what the next action should be. Then it executes this action for the duration of the tick. As the current time limit is 5 minutes in normal speed, the whole game lasts 1200 ticks.

Bot Actions

What happens in detail if a bot performs a given action:

  • Moving and fleeing
    • If a bot moves to a target location that is within the range accessible by the current tick, then it moves there and idles for the rest of the tick. This action will be detected as idling in the next tick.
    • If a bot moves to a target location that is out of the range accessible by the current tick, then it moves as far as it could in the current tick. This action will be detected as moving in the next tick.
    • If a bot flees, then it flees as far as it could in the current tick. If the bot leaves the map by fleeing it will explode. This action will be detected as fleeing in the next tick.
    • If two bots come to close to each other when one or both of them are moving or fleeing, they collide and get pushed away from each other.
  • Catch resource, secure resource, drop resource
    • If a bot catches a resource that is within the range accessible by the current tick, then it moves there, picks up the resource and idles for the rest of the tick. This action will be detected as idling in the next tick.
    • If a bot catches a resource that is out of the range accessible by the current tick, then it moves as far as it could in the current tick. This action will be detected as moving to a resource in the next tick.
    • If a bot secures a resource to a base that is within the range accessible by the current tick, then it moves there, scores the resource and idles for the rest of the tick. This action will be detected as idling in the next tick.
    • If a bot secures a resource to a base that is out of the range accessible by the current tick, then it moves as far as it could in the current tick. This action will be detected as moving to base in the next tick.
    • If a bot drops a resource doesn't move for the whole tick. This action will be detected as idling in the next tick.
  • Idle, tag, team tag
    • If a bot idles, tags or team tags it doesn't move for the whole tick. This action will be detected as idling in the next tick.

Rough thoughts

Attacking
Collision size of bots
2 bots want to pick up the same resource
What is the distance a resource can be taken already? Requires testing (or ask gfx)
Move speed

There should be a different section for this:

Attack damage algorithm
Cooldown for recharging shield time to recharge shield.