This game is a programming game, so bots are coded (in the assembler language) to fight in the arena. The simulation follows some rules described below.
Bots are like a vehicle and are ruled by physics laws.
Bots know their position in the arena with r/o vars bPosX and bPosY. Of course you can't change these values, it's the simulation which compute them with bot's speed and direction.
A bot drives at a speed between 0 m/s and 50 m/s (ie 180 km/h)
Bots accelerate or deccelerate at an acceleration of 10 m/s2. So going from 0 m/s to 50 m/s takes 5 seconds.
Bot chooses to drive at a direction (given in degree, [0 to 360[). But again, bot can't turn immediatly. There is a turning speed given by the formula :
turning speed (deg/s) = (rBotDirSpeedMaxCoef / ( bRealSpeed + rBotDirSpeedMinCoef ) )
For example, at 50 m/s, a bot turns at 33.33 deg/s. (It takes 3s to turn 90 deg)
and at 10 m/s, a bot turns at 100deg/s. (It takes 0.9s to turn 90 deg)
Bots have a gun, which can fire at up to 700 m, in any direction. But bots can't fire more than 1 bullet per second. They must wait a reload time of 1s to fire again
Bots take damage when they are hit by a bullet. When damage goes over 100%, bots die.
A scanner is used to detect other bots in the arena. You choose to scan in any direction, with a given precision (0 to 20 degrees). If some bots are in the range of 0 m to 900 m in the area scanned, you get the distance of the nearest bot. Beware, ennemies and friends are detected the same way !
Same team's bots can share information by sending radio message. There is 4 channels (0 to 3).
A message sent is up to 16 values length (number of maximum writes to a channel between its opening and closing)
Bots have a buffer of 256 values on each channel when listening, so several messages can be queued. If a bot doesn't read its messages and the buffer become full, it losts the first values received and will have incompletes messages.
Bullets when fired travel to their target at a speed of 300 m/s (ie 1080 km/h)
When a bullet explode, bots take damage according to their distance to the center of explosion:
- below 5 m, bots take 10% damage
- below 20 m, bots take 5% damage
- below 40 m, bots take 3% damage
The arena is a square of 1024m x 1024m, surroundedby walls.
It's composed with walls, water, holes ... and your bot must be aware of the ground :
- When a bot hit a wall, its speed reduce to half speed and it takes damages. Damages are given by the formula : bRealSpeed x rWallDamageCoef
- When a bot goes into water, its speed reduced at a rate of 2% each 20ms.
- If a bot fall into a hole, it simply dies ... avoid this !
Matches are simples. A match stop when only one team is alive or if time limit is reached (5 min)