Difference between revisions of "Basics"

From Gladiabots Wiki
Jump to: navigation, search
(Ally/enemy side)
 
(62 intermediate revisions by 7 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 ==
  
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.
+
[[File:Collection mode.png|thumb|Collection mode]]
  
== Game modes ==
+
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.
  
=== Elimination ===
+
Each map has a size of 50x50 meters.
  
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.
+
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.
  
=== Best Score ===
+
== Game modes ==
 +
''Main Page: [[Game modes]]''
  
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.
+
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.
  
== Time and Space ==
+
=== Collection ===
  
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).
+
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.
  
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.
+
=== Domination ===
  
== Bot Actions ==
+
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.
  
What happens in detail if a bot performs a given action:
+
=== Elimination ===
  
* Attacking
+
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.
** If a bot '''attacks''' another bot it aims or attacks for the whole tick. This action will be detected as '''attacking''' in the next tick.
+
* 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 ==
+
== Health, shield and regeneration ==
  
2 bots want to pick up the same resource in the very same tick - what happens?<br>
+
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.
Collision size of bots: ~0.5 Units (GFX47 could you be more precise)<br>
+
What is the distance a resource can already be taken? ~0.5 Units (GFX47 could you be more precise)<br>
+
What is the distance from base a resource can already be scored? ~0.5 Units (GFX47 could you be more precise)<br>
+
Move speed<br>
+
<br>
+
There should be a different section for this:<br>
+
<br>
+
Attack damage algorithm & Cooldown for recharging shield time to recharge shield.<br>
+

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.