Difference between revisions of "Basics"

From Gladiabots Wiki
Jump to: navigation, search
(Ally/enemy side)
 
(52 intermediate revisions by 6 users not shown)
Line 1: Line 1:
 +
== Basics ==
 +
 +
''Gladiabots'' is a game between two players: the {{Tooltip|blue|In training and campaign you can only play as the blue side.}} and the {{Tooltip|red|In multiplayer and sandbox you can also play as the red side.}} side. Both players assign bot classes and programs to each bot starting on their team. Once they deploy their setup for a match, it all depends on their robots and the programs to win the match by scoring the most points.
 +
 
== Maps ==
 
== Maps ==
 
[[Image:Map set your priorities.png|thumb|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 [https://en.wikipedia.org/wiki/Reflection_symmetry reflectional] or [https://en.wikipedia.org/wiki/Rotational_symmetry 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[https://forum.gladiabots.com/viewtopic.php?f=7&t=221]. 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. Each bot can shoot another bot, and 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).
+
[[File:Collection mode.png|thumb|Collection mode]]
+
 
 +
Each map contains several bot spawn points for each team. Maps also contain secondary entities, like resources, bases, force fields or health packs. The maps are procedurally (randomly) generated and have [https://en.wikipedia.org/wiki/Reflection_symmetry reflectional] or [https://en.wikipedia.org/wiki/Rotational_symmetry rotational] symmetry, so the setup is the same for both players, but mirrored. This way, the game is always balanced and fair. Bots are placed in the same order as they appear on the team setup screen.
 +
 
 +
Each map has a size of 50x50 meters.
 +
 
 +
Ally side is defined as the side on which a bot spawns, enemy side is everything else. This means that different bots in the same team can consider a different side to be the ally side.
 +
 
 
== Game modes ==
 
== Game modes ==
+
''Main Page: [[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. Out of every tick the bot could decide whether or not to attack an enemy, pick up a resource, move towards an object, flee from an object, score a resource, or even decide to do nothing. Due note that outside of a few edge cases, any bot can see what action another bot is doing, as well as decide what to do based on the distance the bot is from itself.
+
  
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
+
In all three modes, the goal is to score more points than the opponent, but they differ in how you score those points and what extra map features are available.
 +
 
 +
=== Collection ===
 +
 
 +
The objective is to gather more resources than the other team within the time limit. Resources can be gathered by capturing them up and scoring them to an allied base; each resource scores one point. Bots respawn when destroyed in this mode.
 +
 
 +
=== Domination ===
 +
 
 +
The objective is to capture and hold more bases than the other team within the time limit. A base is captured by moving a bot into short range. Points are scored if the enemy does not recapture the base or places a bot within short range. Additional points are scored for every ally within a friendly base. Bots respawn when destroyed in this mode.
 +
 
 +
=== Elimination ===
  
* If a bot decides to move to a target location that it can reach within the tick, it will move there and idle for the rest of the tick. This action will be detected as idling instead of moving.
+
The objective is to destroy more bots than the other team within the time limit. This mode has the simplest rules, but the hardest execution. A game is evaluated as a draw if no team could destroy more bots than the other team after the time limit. The shield or health state of bots is not relevant to this objective. Destroyed bots do not respawn in this mode.
** This also occurs when a bot moves to another bot. However, if the target bot continues to move, then the bot will continue towards the target bot and only be detected as idling if it is idle at the very end of the tick. For touching other bots, the closest that another bot can get is based on the collision model of the bot. 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>. Bots will not push other bots.
+
* If a bot is told to catch (or pick up) a resource, it will move to that resource until it is within 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 (otherwise known as scoring one) 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 in its hands
+
* Droping a resource doesn't have its own action to detect, and simply is detected as idle.
+
* 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.
+
* If two bots from different resources is close enough to pick up the same resource and tries to do so, neither one will do so, and will idle.
+
  
Lastly, a bot can't see the actions of what is currently happening until the beginning of the next tick.
 
 
== Health, shield and regeneration ==
 
== Health, shield and regeneration ==
 
All bots have a certain amount of health and shield. The shield takes damage before you take any damage to your health, and can regenerate after the bot isn't damaged for over 3 seconds. However, and damage taken to your health is permanent. Any bot generates its fast enough that a fully destroyed shield regenerates in 3 seconds.
 
 
There is a separate topic discussing [[bot classes]]. It contains information about health, shield and regeneration differences.
 
 
== 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
 
# They will fire a bullet or group of bullets
 
#* Each bullet will either hit with the ''attack power'' or miss completely according to the ''precision''
 
#** The bot's ''precision counter'' will increment by its ''precision value''. The precision value is determined by what range it is in at the moment the bullet is fired
 
#*** 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
 
#* They will then wait for a time period between shots if they have another shot to take during the attack cycle, and repeat this step. The total time spent shooting all bullets is their full attack cycle.
 
# continue with 1.
 
  
There is an older separate topic discussing [[bot shooting mechanics]].
+
Based on the bot class all bots have a certain amount of [[Bot_classes#Health.2C_shield_and_regeneration|health]] and [[Bot_classes#Health.2C_shield_and_regeneration|shield]]. 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.

Latest revision as of 10:31, 19 March 2023

Basics

Gladiabots is a game between two players: the blue and the red side. Both players assign bot classes and programs to each bot starting on their team. Once they deploy their setup for a match, it all depends on their robots and the programs to win the match by scoring the most points.

Maps

Collection mode

Each map contains several bot spawn points for each team. Maps also contain secondary entities, like resources, bases, force fields or health packs. The maps are procedurally (randomly) generated and have reflectional or rotational symmetry, so the setup is the same for both players, but mirrored. This way, the game is always balanced and fair. Bots are placed in the same order as they appear on the team setup screen.

Each map has a size of 50x50 meters.

Ally side is defined as the side on which a bot spawns, enemy side is everything else. This means that different bots in the same team can consider a different side to be the ally side.

Game modes

Main Page: Game modes

In all three modes, the goal is to score more points than the opponent, but they differ in how you score those points and what extra map features are available.

Collection

The objective is to gather more resources than the other team within the time limit. Resources can be gathered by capturing them up and scoring them to an allied base; each resource scores one point. Bots respawn when destroyed in this mode.

Domination

The objective is to capture and hold more bases than the other team within the time limit. A base is captured by moving a bot into short range. Points are scored if the enemy does not recapture the base or places a bot within short range. Additional points are scored for every ally within a friendly base. Bots respawn when destroyed in this mode.

Elimination

The objective is to destroy more bots than the other team within the time limit. This mode has the simplest rules, but the hardest execution. A game is evaluated as a draw if no team could destroy more bots than the other team after the time limit. The shield or health state of bots is not relevant to this objective. Destroyed bots do not respawn in this mode.

Health, shield and regeneration

Based on the bot class all bots have a certain amount of health and shield. 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.