A game for programmers to compete against each other to show best skills for creativity, fast writing and more by implementing bot artificial intelligence to fight against other bots.
Current version will only supports C# programming language.
Bots are qualified at the start of the each round if players' implementations (assemblies) are present at the server's location from which the game server loads the assemblies and tries to create bots. Round results are accumulated at match level.
Match consists from multiple rounds. Each round bots fights against each other and gain points for destroying other bots.
Every turn each bot chooses one turn action to be performed for specified input parameters (your bot, enemies, battlefield).
A bot chooses turn action (e.g. move, attack, ...).
Turn Action | Result | Energy Cost |
---|---|---|
Move.(East, North...) | 1 place | 2 |
Attack (Max Range 5) | 0-100 damage | 5 |
Recharge.Shield | +X SP | X |
Recharge.Battery | +20 EP | 5 |
Idle | nothing | 0 |
Turn actions are ordered by the bot age:
Oldest assembly file that contains implementation of bot AI goes first, newest goes last.
Player (a programmer) implements artificial intelligence for their bot to fight against other bots to kill most of enemies.
Bot acts based on the Bot AI (implemented by a player) with following starting properties:
Max HP | Max SP | Max EP |
---|---|---|
500 | 200 | 500 |
HP = Health Points
SP = Shield Points
EP = Energy Points
A battlefield is area where bots fight against each other.
Configured battlefield size is 50 x 50
.
Be careful! Battlefield boundaries are deadly!
- Don't try to beat the game, beat enemies instead.
- Attack enemy:
return TurnAction.Attack(enemy);
- To get max attack range:
Attack.MaxRange
- Move towards enemy:
return TurnAction.Move.Towards(enemy.Position);
- Move away from enemy:
return TurnAction.Move.AwayFrom(enemy.Position);
- Move in specific direction:
return TurnAction.Move.East();
return TurnAction.Move.West();
return TurnAction.Move.South();
return TurnAction.Move.North();
return TurnAction.Move.SouthEast();
return TurnAction.Move.SouthWest();
return TurnAction.Move.NorthEast();
return TurnAction.Move.NorthWest();
- Recharge 50 shield points (energy cost 50 energy points):
return TurnAction.Recharge.Shield(50);
- Recharge battery:
return TurnAction.Recharge.Battery();
- Stay idle:
return TurnAction.Idle();
- Create new
.NET Framework Class Library
project. (Name it, e.g. CodingArena..csproj) - Manage Nu-Get Packages for this project and install latest
CodingArena.Player
package. - Implement
CodingArena.Player.Implement.IBotAI
interface and compile. - Copy project assembly to server's bot directory (Specified by Game Master).
- Wait for next game round to start.
- Repeat from step 3 to improve your bot's intelligence.
Hover mouse over the picture to see the robot model name.