This project contains semestral project for KIV/ISW @ Universit of West Bohemia - 2018/2019
The implementation uses the Pogamut library which provides rich API for agent controlling.
Compiled project launches with following parameters:
HubertHive.jar YEAR TEAM BOT-SKILL BOT-COUNT HOST
- YEAR - version of launching script - unused in Hubert HIve
- TEAM - (-1|TEAM_NUMBER) -1: equal distribution between teams 0 and 1 (red and blue)
- BOT-SKILL - Pogamut parameter for bot behavior: value between 1 and 10
- BOT-COUNT - amount of bots to control via this launch
- HOST - hostname of target server
The core of the project, the class cz.zcu.students.kiwi.ctf.CTFBot
is a bot controller
which contains references to various modules defined by the Pogamut library.
This project defines several modules that are accessible from the bot as well in same package.
The behavior and other agent logic is defined in the subpackage behavior
, which
contains another bot module - BehaviorManager
. From there a certain Personality is
decided which specifies individual Intents which are to be run.
If some intents require deciding according to spawned items, the bot module
CTFBotItemStatus
is used for navigation distance caching between logic cycles and
for specifying forbidden items.
The BehaviorManager
defines three resources - Navigation, Shooting and Focus, which
can be reserved for individual intents in the logic() cycle. The idea of this decision
is to protect running intents but to allow for overwriting or in future, for temporal
pausing of intents for when, for instance, bot sees own flag lying around so that
they can pause their action, pick up the flag and resume their original action.
Currently the bot implements only simple behavior including flag stealing and securing, item hunting or flag defending. The agent occasionally gets stuck at the ItemHoarding intent which is yet to be fixed.
The agent solely relies on provided library resources and few map-based tweaks are due since the generated navigation data is sometimes self-threatening.